Skip to content

DNS 域名系统

考情分析

DNS 在 408 中是应用层的重要考点。选择题常考递归查询与迭代查询的区别、域名层次结构、各级 DNS 服务器的作用。偶尔在大题中结合网络层一起考查。

考频:★★★★

DNS 的功能

DNS(Domain Name System,域名系统)的核心功能是域名到 IP 地址的映射。人类习惯用域名(如 www.example.com)来访问网站,但网络通信需要 IP 地址。DNS 就是这个翻译系统。

DNS 是一个分布式数据库,没有一台服务器存储了所有的域名映射。整个域名空间被划分成若干区域,由不同的 DNS 服务器负责管理。

DNS 使用 UDP 端口 53(查询),也使用 TCP 端口 53(区域传送和大响应)。

域名的层次结构

域名采用层次树状结构,从右往左级别递减。

. (根)
├── com (顶级域)
│   ├── example (二级域)
│   │   └── www (主机名)
│   └── google
│       └── mail
├── cn (国家顶级域)
│   ├── edu
│   │   └── pku
│   └── com
├── org
└── net

完整的域名格式:主机名.二级域名.顶级域名.根域名

例如 www.pku.edu.cn.(最后的点表示根域名,通常省略)。

顶级域名(TLD)分类

类型示例说明
通用顶级域名.com, .org, .net, .edu按用途分类
国家/地区顶级域名.cn, .us, .jp, .uk按国家/地区分类
基础设施域名.arpa反向域名解析

DNS 服务器层次

DNS 服务器分为四个层次:

根域名服务器

全球共 13 组根域名服务器(A~M),它们知道所有顶级域名服务器的地址。任何本地 DNS 服务器只要找不到映射,最终都可以向根域名服务器求助。

顶级域名服务器(TLD 服务器)

负责管理在该顶级域名下注册的所有二级域名。比如 .com 的 TLD 服务器知道所有 xxx.com 域名对应的权威 DNS 服务器地址。

权威域名服务器

负责管理某个具体区域的域名映射。比如 example.com 的权威 DNS 服务器知道 www.example.com、mail.example.com 等的 IP 地址。

本地域名服务器

不在上述层次之中,但非常重要。当主机发起 DNS 查询时,首先发给本地 DNS 服务器(通常由 ISP 提供或手动配置)。本地 DNS 服务器相当于一个代理,帮主机去查询。

域名解析过程

域名解析有两种查询方式:递归查询迭代查询。实际中通常是混合使用——主机到本地 DNS 服务器之间用递归查询,本地 DNS 服务器到其他 DNS 服务器之间用迭代查询。

递归查询

查询方向:主机 → 本地 DNS 服务器

主机向本地 DNS 服务器发出查询,如果本地 DNS 服务器没有缓存,它会替主机去查,最终把结果返回给主机。主机只需要发一个请求,等一个结果。

迭代查询

查询方向:本地 DNS 服务器 → 根/TLD/权威 DNS 服务器

本地 DNS 服务器向根 DNS 服务器查询,根 DNS 服务器不会替它去查,而是告诉它应该去问谁(返回下一级 DNS 服务器的地址)。本地 DNS 服务器再去问下一级,如此反复。

完整的解析流程

以查询 www.example.com 为例:

整个过程中,主机只和本地 DNS 服务器通信一次(递归),本地 DNS 服务器和其他服务器之间通信多次(迭代)。

递归查询 vs 迭代查询对比

对比项递归查询迭代查询
谁负责继续查被查的服务器(帮你查到底)查询方自己(你自己去问下一个)
负担被查服务器负担重查询方负担重
使用场景主机 → 本地 DNS本地 DNS → 其他 DNS

DNS 缓存

为了减少查询次数和提高速度,DNS 服务器和主机都会缓存查询结果。

  • 本地 DNS 服务器收到响应后,会缓存该映射
  • 下次再有相同查询时,直接从缓存中返回
  • 缓存有生存时间(TTL),过期后自动删除

DNS 缓存显著减少了对根和 TLD 服务器的查询压力。实际中,大部分查询都能在本地 DNS 服务器的缓存中命中。

资源记录类型

DNS 中的每条记录称为资源记录(Resource Record, RR),格式为:(域名, TTL, 类别, 类型, 值)。

常见的记录类型:

类型含义示例
A域名 → IPv4 地址www.example.com → 93.184.216.34
AAAA域名 → IPv6 地址www.example.com → 2606:2800:...
CNAME域名的别名blog.example.com → www.example.com
MX邮件交换记录example.com → mail.example.com (优先级 10)
NS域的权威 DNS 服务器example.com → ns1.example.com
PTRIP 地址 → 域名(反向解析)93.184.216.34 → www.example.com

A 记录是最常见的,408 选择题中"域名解析"默认就是在查 A 记录。

交互可视化

加载可视化中...

易错点

1. 递归和迭代不要搞反

递归 = 被查方帮你查到底,迭代 = 被查方告诉你去问谁。主机到本地 DNS 是递归,本地 DNS 到其他 DNS 是迭代。

2. DNS 不只用 UDP

DNS 查询默认用 UDP,但区域传送(主辅 DNS 服务器之间同步数据)和响应超过 512 字节时用 TCP。

3. 本地 DNS 服务器不在 DNS 层次结构中

根、TLD、权威 DNS 构成层次结构,本地 DNS 服务器是独立于这个层次之外的。

4. CNAME 记录不是直接给 IP

CNAME 是别名记录,它将一个域名映射到另一个域名,还需要再查那个域名的 A 记录才能得到 IP。

疑难点

从输入 URL 到页面显示的完整过程

这是综合题常考点,贯穿多层协议。以访问 www.example.com 为例:浏览器先解析 URL 提取域名 → DNS 解析获取 IP 地址(浏览器缓存→本地 DNS 缓存→本地 DNS 服务器→迭代/递归查询)→ TCP 三次握手建立连接 → 发送 HTTP 请求 → 服务器返回 HTTP 响应 → 浏览器渲染页面 → TCP 四次挥手释放连接。底层还涉及 ARP 获取网关 MAC 地址、IP 分组经路由器逐跳转发等过程。考研重点考查 DNS→TCP→HTTP→渲染这条主线。

为什么 DNS 用 UDP 而 HTTP 用 TCP?

DNS 查询报文短小(通常不超过 512 字节),一问一答,对实时性要求高,用 UDP 只需一个请求包+一个响应包,避免了 TCP 三次握手的额外开销。丢包了直接超时重发代价很低。HTTP 传输的网页内容通常较大且要求完整送达,TCP 提供的可靠传输、按序交付正好满足需求。注意 DNS 并非"只用 UDP"——当响应超过 512 字节(如区域传送)时会切换到 TCP。

高频考点清单

  • DNS 的功能(域名到 IP 的映射)
  • 域名的层次结构(根 → 顶级 → 二级 → 主机名)
  • 四种 DNS 服务器的作用(根、TLD、权威、本地)
  • 递归查询 vs 迭代查询的区别和使用场景
  • DNS 缓存的作用
  • 常见资源记录类型(A、AAAA、CNAME、MX、NS)
  • DNS 使用 UDP 端口 53

真题练习

相关真题(5题)

2021Q47综合题9分

ARP/交换表/DNS/HTTP 综合题:数据链路层转发与应用层协议配合

2020Q40选择题2分

DNS+HTTP 时间计算:最短有缓存 20ms,最长无缓存 50ms

2018Q33选择题2分

DNS 可使用 UDP 无连接服务进行域名解析

2016Q40选择题2分

DNS 迭代查询次数:有缓存时 0 次,无缓存时逐级查询

2010Q40选择题2分

递归查询:用户主机只需向本地DNS发1条请求,本地DNS也只需向上级发1条(递归由上级代劳)