当前位置: 首页 > news >正文

DNS:互联网域名系统的核心

什么是 DNS?

DNS(Domain Name System,域名系统)是互联网的一项基础服务,它负责将人类容易记忆的域名(如 www.example.com)转换成计算机可以识别的 IP 地址(如 192.0.2.1)。计算机和服务器通过 IP 地址相互通信,而人类用户则通过域名来访问网站或在线服务。DNS 就是负责这两者之间的转换。

DNS 运行在 UDP 53 端口上,基于应用层实现。这使得 DNS 查询能够快速完成,因为 UDP 是一种无连接协议,不需要建立和维护连接,适合短时间内的查询请求。

DNS 的层次结构

DNS 的结构像一棵倒置的树,具有不同级别的域名。最顶层是根域名服务器,然后向下逐级分配到各类顶级域(TLD)、二级域以及更下层的域。

顶级域(TLD)

顶级域名是 DNS 层级结构中的最高级别。例如:

  • .com:商用域名
  • .edu:教育机构域名
  • .org:非营利组织域名
  • .cn:中国的国家代码顶级域(ccTLD)
  • .us:美国的国家代码顶级域
  • .jp:日本的国家代码顶级域

国家代码顶级域(ccTLD)代表特定国家或地区,例如 .cn 表示中国,.us 表示美国。

二级域

在顶级域之下可以有二级域,具体的域名结构可以继续细分。例如:

  • .com.cn.edu.cn.org.cn:这是中国的二级域,允许中国的教育、商业机构注册对应的域名。

abcd.rds.volces.com:3306 为例,这是一条复杂的域名,其中 volces.com 属于顶级域名 .com,而 rds.volces.com 是它的子域(通常表示某种服务,如数据库服务)。

DNS 服务器的分类

DNS 查询的整个过程依赖多个不同类型的 DNS 服务器。

  1. 根域名服务器:全球只有 13 个逻辑根域名服务器,它们存储了有关顶级域名服务器(如 .com.org 等)的信息。当 DNS 查询没有命中缓存时,本地 DNS 服务器会向根域名服务器发送请求,从根域名服务器开始查询,逐步获取到需要的 IP 地址。

  2. 本地 DNS 服务器(ISP 提供的):

    • LocalNameServerDefault DNS Server:这是离用户最近的 DNS 服务器。通常每个 ISP(互联网服务提供商)都维护一个本地 DNS 服务器,当用户发起 DNS 请求时,首先会向本地 DNS 服务器查询。
    • 本地 DNS 服务器不仅加速了查询速度,而且提供了域名缓存功能,通过设置缓存的 TTL(生存时间),可以在一定时间内保存之前查询的结果,减少重复查询的时间,提高性能和一致性。
  3. 权威 DNS 服务器:如果本地 DNS 服务器没有所需的记录,它会继续向上查询,比如询问根域名服务器,获取顶级域的权威 DNS 服务器,再递归地找到特定域名的权威 DNS 服务器,直到最终获得 IP 地址。

DNS 查询过程:递归与迭代查询
递归查询:

递归查询是 DNS 服务器代替客户端发起的一系列查询。客户端只需要向 DNS 服务器发起一个请求,DNS 服务器则代表客户端继续查询直到找到最终的结果。客户端一次只需发送一个请求,DNS 服务器则负责与其他服务器通信。

  1. 客户端向本地 DNS 服务器请求 www.ustc.edu.cn
  2. 本地 DNS 服务器将负责查询的整个过程:先向根服务器询问 .cn 顶级域的权威服务器,再向 .cn 顶级域服务器询问 .edu.cn 的权威服务器,最后从 .edu.cn 服务器获取到 ustc.edu.cn 的权威服务器地址。
  3. 本地 DNS 服务器得到最终结果后,将 IP 地址返回给客户端。
迭代查询:

在迭代查询中,DNS 服务器不会替客户端进行所有查询。相反,DNS 服务器返回下一级权威服务器的地址,客户端再自行向该服务器发出下一个请求。迭代查询更加灵活,但客户端需要多次发送请求。

  1. 客户端先向本地 DNS 服务器请求 www.ustc.edu.cn
  2. 本地 DNS 服务器询问根域名服务器,根域名服务器返回 .cn 顶级域的权威服务器。
  3. 客户端向 .cn 服务器询问 .edu.cn 的权威服务器,.edu.cn 服务器返回 ustc.edu.cn 的权威服务器。
  4. 客户端最终得到目标 IP 地址。

递归查询通常更快,因为 DNS 服务器会代替客户端完成所有查询,但迭代查询允许客户端更多控制。

DNS 报文格式

DNS 查询和响应的报文格式是一样的,主要包括以下字段:

  • Header(头部):包含了查询 ID、查询类型、是否为响应以及错误码等信息。
  • Question(问题):描述查询的域名以及希望获取的记录类型(如 A 记录、MX 记录等)。
  • Answer(回答):如果这是一个响应报文,回答段包含所查询域名的 IP 地址等信息。
  • Authority(授权):描述权威 DNS 服务器的信息。
  • Additional(附加信息):可以包含更多的辅助信息。
DNS 缓存与性能优化

DNS 查询过程中,本地 DNS 服务器扮演了至关重要的角色。为了减少向根服务器发起的请求次数,本地 DNS 服务器通常会缓存查询结果,通过设置 TTL(生存时间),可以将域名的解析结果保留一段时间,避免频繁重复查询。

DNS 的安全性挑战

DNS 是互联网的基础服务之一,但它也面临一些安全性问题:

  1. DNS 欺骗(DNS Spoofing):攻击者通过伪造 DNS 响应,将用户引导至恶意网站。
  2. DDoS 攻击:通过向 DNS 服务器发送大量请求,导致服务器过载,无法正常提供服务。
  3. DNS 劫持:某些 ISP 可能会劫持用户的 DNS 请求,将其重定向到广告页面或其他不相关的内容。

相关文章:

DNS:互联网域名系统的核心

什么是 DNS? DNS(Domain Name System,域名系统)是互联网的一项基础服务,它负责将人类容易记忆的域名(如 www.example.com)转换成计算机可以识别的 IP 地址(如 192.0.2.1&#xff09…...

小猿口算炸鱼脚本

目录 写在前面: 一、关于小猿口算: 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享: 补充:软件包下载 写在前面: 最近小猿口算已经被不少大学生攻占,小学生直呼有挂。原本是以为大学生都打着本…...

浅谈云原生--微服务、CICD、Serverless、服务网格

往期推荐 浅学React和JSX-CSDN博客 一文搞懂大数据流式计算引擎Flink【万字详解,史上最全】-CSDN博客 一文入门大数据准流式计算引擎Spark【万字详解,全网最新】_大数据 spark-CSDN博客 目录 1. 云原生概念和特点 2. 常见云模式 3. 云对外提供服务的…...

android app执行shell命令视频课程补充android 10/11适配-千里马android

(https://blog.csdn.net/learnframework/article/details/120103471) https://blog.csdn.net/learnframework/article/details/120103471 hi,有学员在学习跨进程通信专题课程时候,在实战app执行一个shell命令的项目时候,对课程本身的android …...

C++笔记-UTF8和UTF8-dom的区别

在文件格式上,UTF-8 和 UTF-8-BOM 是两种不同的编码方式,其中 UTF-8-BOM 包含字节顺序标记(BOM),而 UTF-8 则不包含。 UTF-8: UTF-8 是一种以字节为单位的可变长度字符编码,常用于以字节为单位…...

“探索Adobe Photoshop 2024:订阅方案、成本效益分析及在线替代品“

设计师们对Adobe Photoshop这款业界领先的图像编辑软件肯定不会陌生。如果你正考虑加入Photoshop的用户行列,可能会对其价格感到好奇。Photoshop的价值在于其强大的功能,而它的价格也反映了这一点。下面,我们就来详细了解一下Adobe Photoshop…...

网页复制粘贴助手,Chrome网页复制插件(谷歌浏览器复制插件)

一款解决网页限制复制问题的插件,当你遇到限制复制粘贴和右键的网页是不是很头痛?安装这个插件后,点下插件按钮就能解决了 碰到这种情况 也是非常头疼 chrome拓展-chrome插件-强制复制 当我们浏览网页的时候,看到感兴趣的内容就…...

【C++刷题】力扣-#118-杨辉三角

题目描述 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它正上方两个数的和。 示例 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]]题解 这个问题…...

Linux下的环境变量

目录 1.引言 1.1bash的部分工作 1.2main函数也有参数 1.3我们可以通过给main函数传入不同的参数,让同一份代码实现不同的功能 1.4先认识一个环境变量PATH,帮助Linux找到指令程序的地址 2.环境变量 2.1环境变量的概念 2.2见见其他的环境变量 2…...

Edge论文的创新点

创新点及其来源 1. 从灰度边缘重建RGB图像的方法(EdgRec) 基于的方法:传统的重建方法,如使用自动编码器或生成模型来重建正常样本的图像,并通过对原始图像和重建图像的比较来检测异常。 重建过程: 训练阶…...

‌ComfyUI 高级实战:实现华为手机的AI消除功能

大家好,我是每天分享AI应用的萤火君! 不知道大家是否还记得华为 Pura 70的「AI消除」事件,当时使用 华为Pura 70 系列手机的智能消除功能时,该功能可以被用来消除照片中女性胸口处的衣物,这一功能曾引发广泛的关注和伦…...

我记得我曾喜欢过冬天

写在前面 1316 字 | 感触 | 世界 | 情感 | 体验 | 经历 | 想法 | 认知 正文 晚上出门,起电单车,很冷。冻得有些发抖。下车,我第一时间和珍发了消息。 我说,居然在四川感受到了哈尔滨的温度。 哈尔滨的夏天很热,但哈尔…...

最新夜间数据集发布LoLI-Street: 33000帧数据,涵盖19000个目标

最新夜间数据集发布LoLI-Street: 33000帧数据,涵盖19000个目标 Abstract 低光照图像增强(LLIE)对于许多计算机视觉任务至关重要,包括目标检测、跟踪、分割和场景理解。尽管已有大量研究致力于提高在低光照条件下捕捉的低质量图像…...

反向传播算法与随机搜索算法的比较

反向传播算法与随机搜索算法的比较 在这篇文章中,我们将通过一个简单的线性回归问题来比较反向传播算法和随机搜索算法的性能。我们将使用Python代码来实现这两种算法,并可视化它们的梯度下降过程。 反向传播算法 反向传播算法是深度学习和神经网络训…...

【PDF文件】默认被某种软件打开,如何进行修改?

当有时下载某种软件后,电脑中的PDF文件就默认由该种软件打开,每次需要右键选择打开方式才能选择需要的其他软件打开。如下图所示。 修改方法: (1)点击电脑的“设置”,选择应用 (2)…...

Kaggle Python练习:字符串和字典(Exercise: Strings and Dictionaries)

文章目录 问题:搜索特定单词并定位思路代码实现官方代码代码解析 更进一步 问题:搜索特定单词并定位 一位研究人员收集了数千篇新闻文章。但她想将注意力集中在包含特定单词的文章上。完成以下功能以帮助她过滤文章列表。 您的函数应满足以下条件&…...

React(四) 事件总线,setState的原理,PureComponent优化React性能,ref获取类组件与函数组件

文章目录 一、全局事件总线二、setState的原理1. 为什么要使用setState修改数据2. setState的三种用法(1) 基本使用(2) 传入回调函数(3) setState是一个异步调用 3. setState为什么要设置成异步 二、PureComponent优化性能1. React的diff算法以及Key的优化(扩展)(1) diff算法(2…...

Java学习-JVM

目录 1. 基本常识 1.1 JVM是什么 1.2 JVM架构图 1.3 Java技术体系 1.4 Java与JVM的关系 2. 类加载系统 2.1 类加载器种类 2.2 执行顺序 2.3 类加载四个时机 2.4 生命周期 2.5 类加载途径 2.6 双亲委派模型 3. 运行时数据区 3.1 运行时数据区构成 3.2 堆 3.3 栈…...

leed认证分几个级别

LEED(Leadership in Energy and Environmental Design)认证是一个评估建筑项目可持续性的严格框架,其级别主要分为以下四个: LEED认证(Certified):这是最低级别的认证,要求建筑项目…...

3.C++经典实例-计算一个数的阶乘

阶乘(factorial)是‌基斯顿卡曼于1808年发明的运算符号,用于表示一个正整数n的所有小于及等于该数的正整数的积。自然数n的阶乘写作n!。例如,5的阶乘表示为5! 1 2 3 4 5 120。 阶乘在数学和计算机科学中有广泛的应用。例如…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...