Skip to content

408

计算机网络

CN-06-02 DNS域名系统


一、定位信息

  • 圈层:核心层
  • 前置知识:需要了解C/S模型、UDP协议、端口号的基本概念,理解IP地址和域名的区别
  • 知识网络位置:DNS是互联网最重要的基础设施之一,将人类可读的域名转换为机器可识别的IP地址,是HTTP、FTP、SMTP等所有需要域名解析的应用的基础
  • 考点热度等级H级(高频重点)——DNS的层次结构、查询过程、记录类型是选择题的高频考点

二、知识点讲解

2.1 DNS概述

**DNS(Domain Name System,域名系统)**是互联网使用的命名系统,用于将域名(如www.example.com)解析为IP地址(如93.184.216.34)。DNS是一个分布式的、层次化的数据库系统。

DNS的主要功能:

  1. 域名到IP地址的正向解析(最常用)
  2. IP地址到域名的反向解析
  3. 邮件服务器的查找(MX记录)
  4. 其他信息查询(CNAME、TXT等)

DNS协议运行在UDP之上,使用53号端口。使用UDP的原因是DNS查询通常只需要一个请求-响应交互,无需建立TCP连接的开销。当响应数据超过512字节时,会转为TCP传输。

2.2 层次化域名空间

DNS采用树状层次结构组织域名:

                    .(根域)
                   / | \
                顶级域(TLD)
               /    |    \
          二级域  二级域  二级域
          /  \
       三级域  三级域

域名从右到左读取,用"."分隔。例如www.example.com

  • .com——顶级域(Top-Level Domain)
  • example——二级域
  • www——三级域(主机名)

顶级域(TLD)分类

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

域名命名规则

  • 不区分大小写
  • 每个标号不超过63个字符
  • 完整域名不超过255个字符
  • 标号中只能包含字母、数字和连字符

2.3 DNS服务器层次结构

DNS服务器分为三种类型:

根DNS服务器(Root DNS Server)

  • 全球共13组根服务器(A~M),使用任播技术部署了数百台实例
  • 负责返回顶级域DNS服务器的地址

顶级域DNS服务器(TLD DNS Server)

  • 负责管理该顶级域下的所有二级域
  • 如.com TLD服务器负责返回example.com等权威DNS服务器的地址

权威DNS服务器(Authoritative DNS Server)

  • 负责管理特定域名的DNS记录
  • 如example.com的权威DNS服务器存储了www.example.com等具体记录

此外还有本地DNS服务器(Local DNS Server)

  • 严格来说不属于DNS层次结构的一部分
  • 是用户主机与DNS层次结构之间的"代理"
  • 通常由ISP提供,或使用公共DNS(如8.8.8.8)

2.4 DNS查询方式

查询方式说明特点
递归查询客户端要求DNS服务器必须返回最终结果客户端简单,服务器负担重
迭代查询DNS服务器返回已知的最佳答案,客户端继续查询客户端复杂,服务器负担轻

实际的DNS查询过程(以www.example.com为例):

客户端 → 本地DNS服务器 → 根DNS服务器 → .com TLD服务器
→ example.com权威DNS服务器 → 返回IP地址

典型过程中:客户端到本地DNS服务器是递归查询,本地DNS服务器到其他DNS服务器是迭代查询

2.5 DNS缓存

为了提高DNS查询效率,DNS广泛使用**缓存(Caching)**机制:

  • 本地DNS服务器缓存:缓存最近查询过的域名-IP映射,设置TTL(生存时间)
  • 浏览器缓存:浏览器也维护DNS缓存
  • 操作系统缓存:操作系统层面也有DNS缓存

缓存的优势:减少DNS查询次数,降低根服务器和TLD服务器的负载。 缓存的风险:缓存过期前域名对应的IP发生变化,会导致访问错误(TTL机制可以缓解)。

2.6 DNS记录类型

DNS数据库中存储的记录称为资源记录(Resource Record, RR),格式为: (Name, Value, Type, TTL)

记录类型NameValue用途
A主机名IP地址域名→IP地址映射
AAAA主机名IPv6地址域名→IPv6地址映射
CNAME别名规范名域名别名映射
MX邮件域名邮件服务器名邮件服务器查找
NS域名权威DNS服务器名域名→权威DNS服务器
PTRIP地址主机名反向解析(IP→域名)

三、记忆与理解辅助

  1. 口诀:"DNS三层树,根域顶级权威排;递归在客户端,迭代在服务器"——记住DNS的层次结构和查询方式。

  2. 数字记忆:13组根服务器(A-M),53号端口(UDP),512字节(UDP响应上限),TTL(缓存过期时间)。

  3. 对比表:递归查询 vs 迭代查询

对比项递归查询迭代查询
发起者客户端→本地DNS本地DNS→其他DNS
服务器行为必须返回最终结果返回已知最佳答案
负担服务器负担重客户端负担重
实际使用客户端→本地DNS本地DNS→根/TLD/权威
  1. 场景记忆:DNS查询像"问路"——递归查询是"你帮我查到底",迭代查询是"你告诉我下一步问谁"。

四、例题与精解

例题1(基础巩固)

题目:在DNS域名解析过程中,主机向本地DNS服务器查询www.example.com的IP地址。下列描述正确的是( )。

A. 本地DNS服务器直接向根DNS服务器查询,根服务器返回最终IP地址

B. 本地DNS服务器先检查缓存,若未命中则向根DNS服务器发起查询

C. DNS查询使用TCP协议的53号端口

D. 主机到本地DNS服务器的查询一定是迭代查询

命题意图:考查DNS查询过程的基本流程和协议特点。

精解

  1. 审题分析:逐项判断DNS查询过程中的关键环节。

  2. 解题思路:回忆DNS查询的完整过程——缓存检查→本地DNS→根→TLD→权威。

  3. 完整步骤

    • A选项:根DNS服务器不直接返回最终IP地址,它返回顶级域DNS服务器的地址。错误
    • B选项:本地DNS服务器收到查询后,首先检查自己的缓存。如果缓存命中则直接返回;如果未命中,则从根DNS服务器开始迭代查询。正确
    • C选项:DNS主要使用UDP协议的53号端口,仅在响应超过512字节时才使用TCP。错误
    • D选项:主机到本地DNS服务器的查询通常是递归查询,不是迭代查询。错误
  4. 方法反思:DNS查询过程是高频考点。关键区分:主机→本地DNS=递归查询,本地DNS→根/TLD/权威=迭代查询。

答案:B


例题2(中等提升)

题目:假设本地DNS服务器的缓存为空,主机查询www.example.com的IP地址。已知:主机到本地DNS服务器的RTT=RTT₀,本地DNS服务器到每个DNS服务器的RTT=RTT₁,且需要依次查询根DNS服务器、.com TLD服务器和example.com权威DNS服务器。则从主机发出查询到收到响应的总时间约为( )。如果本地DNS服务器已缓存了.com TLD服务器的地址(但没有example.com的缓存),则总时间约为( )。

A. RTT₀ + 3RTT₁, RTT₀ + 2RTT₁

B. RTT₀ + 3RTT₁, RTT₀ + 3RTT₁

C. 3RTT₁, RTT₀ + 2RTT₁

D. RTT₀ + 2RTT₁, RTT₀ + RTT₁

命题意图:考查DNS查询的时间分析,以及缓存对查询效率的影响。

精解

  1. 审题分析:需要计算DNS查询的总耗时,包括主机到本地DNS和本地DNS到各服务器的RTT。

  2. 解题思路:总时间 = 主机到本地DNS的查询时间 + 本地DNS的迭代查询时间。迭代查询需要依次问根→TLD→权威,每步一个RTT。

  3. 完整步骤

    情况1(缓存为空)

    • 主机→本地DNS:RTT₀(递归查询)
    • 本地DNS→根DNS:RTT₁(获取TLD服务器地址)
    • 本地DNS→.com TLD:RTT₁(获取权威DNS地址)
    • 本地DNS→example.com权威DNS:RTT₁(获取IP地址)
    • 总时间 = RTT₀ + 3RTT₁

    情况2(缓存了TLD地址)

    • 主机→本地DNS:RTT₀
    • 本地DNS已知.com TLD地址,跳过根DNS查询
    • 本地DNS→.com TLD:RTT₁
    • 本地DNS→example.com权威DNS:RTT₁
    • 总时间 = RTT₀ + 2RTT₁
  4. 方法反思:DNS缓存可以减少查询跳数,显著降低解析时间。缓存的TTL过期后需要重新查询。理解DNS查询时间对Web页面加载时间分析也很重要(DNS解析是Web请求的第一步)。

答案:A


五、考情分析

  • 考查频次:近5年408真题中DNS相关题目约出现4~6次
  • 常见题型:选择题(查询过程、记录类型、层次结构)和计算题(查询时间分析)
  • 分值占比:2~4分
  • 命题趋势:近年倾向于考查DNS查询过程的细节分析和缓存机制。DNS与HTTP的结合考查(DNS解析时间对Web性能的影响)也是趋势之一
  • 基于大纲与命题规律推测

六、易错点提醒

  1. 错误表现:认为DNS使用TCP协议

    • 错误原因:DNS确实可以使用TCP,但主要使用UDP
    • 正确理解/做法:DNS默认使用UDP的53号端口。当响应数据超过512字节或进行区域传送时才使用TCP。考试中"DNS使用什么传输层协议"的默认答案是UDP。
  2. 错误表现:将递归查询和迭代查询的使用场景搞混

    • 错误原因:两者名称相似,容易混淆方向
    • 正确理解/做法:主机→本地DNS是递归查询(本地DNS"帮到底"),本地DNS→根/TLD/权威是迭代查询(每步返回下一站地址,本地DNS自己继续查)。
  3. 错误表现:认为根DNS服务器存储了所有域名的IP地址

    • 错误原因:对DNS层次结构理解不清
    • 正确理解/做法:根DNS服务器只知道顶级域DNS服务器的地址,不知道具体域名的IP。逐层查询才能最终获得IP地址。
  4. 错误表现:忽略DNS缓存的作用,认为每次查询都需要从根开始

    • 错误原因:对缓存机制不了解
    • 正确理解/做法:实际DNS查询中,本地DNS服务器、浏览器、操作系统都有缓存,大多数查询可以通过缓存直接返回,不需要从根开始。

七、来源标注

  • 依据2026考研统考大纲·计算机网络部分
  • 依据《计算机网络(第8版)》谢希仁版
  • 依据《计算机网络:自顶向下方法(第8版)》James F. Kurose版
  • 依据RFC 1035 - Domain Names

考研全科复习资料 - 基于2026考研统考大纲