

这三题答案分别是:
第 10 题:B,1 条,多条
第 11 题:A,1 条,1 条
第 12 题:C,0 条,4 条
这三题看起来都在问 DNS 查询次数,但考点其实不完全一样。第 10、11 题重点考“递归查询和迭代查询下,谁负责继续查”;第 12 题重点考“迭代查询下,按域名层次最多要查几级,同时是否考虑缓存”。
第 10 题的关键句是:
用户主机采用递归查询向本地域名服务器查询;本地域名服务器采用迭代查询向其他域名服务器查询。
这里分成两段看。
用户主机只负责问本地域名服务器一次:
“请帮我查出这个域名对应的 IP。”
所以用户主机发送的 DNS 请求是 1 条。
但是本地域名服务器没有缓存,又采用迭代查询。迭代查询的特点是:被问的服务器如果不知道最终答案,不会替你继续查,而是告诉你“下一步应该问谁”。因此本地域名服务器要自己一层一层问:
本地域名服务器 → 根域名服务器
本地域名服务器 → 顶级域名服务器
本地域名服务器 → 权限域名服务器
……
所以本地域名服务器发送的是多条 DNS 请求。
因此第 10 题选 B:1 条,多条。
这题考的是“主机到本地 DNS 是递归,本地 DNS 到外部 DNS 是迭代”这种实际中最常见的组合。
第 11 题的关键句是:
若本地域名服务器无缓存,则在采用递归方法解析另一网络某主机域名时……
这里和第 10 题最大的区别在于:第 11 题说的是“采用递归方法解析”,不是“本地域名服务器采用迭代查询”。
递归查询的特点是:查询者只问一次,然后等待最终结果。被询问的服务器如果不知道,会继续向其他服务器查询,最后把结果返回给查询者。
所以用户主机还是只向本地域名服务器发 1 条请求。
本地域名服务器如果也采用递归方式向其他服务器查询,它也只需要向下一级域名服务器发 1 条请求。后续如果还需要继续查,是由后面的域名服务器继续递归完成,而不是本地域名服务器反复逐级查询。
所以第 11 题选 A:1 条,1 条。
这里最容易错的地方是把“解析过程经过多个域名服务器”误认为“本地域名服务器一定发多条请求”。其实要看查询方式。如果是迭代,本地域名服务器自己逐级问,所以多条;如果是递归,本地域名服务器只把问题交给下一级,所以它自己只发一条。
第 12 题和前两题又不一样。
题干说:
假设所有域名服务器均采用迭代查询方式进行域名解析。当主机访问规范域名 www.abc.xyz.com 的网站时,本地域名服务器在完成该域名解析的过程中,可能发出 DNS 查询的最少和最多次数分别是?
这题不再问“用户主机和本地域名服务器分别发几条”,而是只问:
本地域名服务器可能发出多少次 DNS 查询。
并且题目没有说“本地域名服务器无缓存”。所以最少次数要考虑缓存。
如果本地域名服务器中已经缓存了 www.abc.xyz.com 对应的 IP 地址,那么它不需要再向外部域名服务器发查询请求,直接返回给主机即可。
所以最少是 0 次。
最多次数要按域名层次来数。www.abc.xyz.com 的完整层次可以理解为:
根域 .
顶级域 com
二级域 xyz.com
三级域 abc.xyz.com
主机名 www.abc.xyz.com
在最不利情况下,本地域名服务器没有任何缓存,并且每一级都需要逐级迭代查询,那么本地域名服务器可能依次查询:
- 问根域名服务器:谁负责
com? - 问
com顶级域名服务器:谁负责xyz.com? - 问
xyz.com域名服务器:谁负责abc.xyz.com? - 问
abc.xyz.com权限域名服务器:www.abc.xyz.com的 IP 是什么?
所以最多是 4 次。
因此第 12 题选 C:0,4。
这题容易错选 A:0,3。错因通常是漏数了“根域名服务器”这一层,或者把最后一次向权限域名服务器查询主机 IP 的过程漏掉了。
这三类题可以这样区分:
| 题型 | 看题干关键词 | 解题重点 | 典型结论 |
|---|---|---|---|
| 第 10 类 | “主机递归,本地域名服务器迭代” | 本地 DNS 要自己逐级问 | 主机 1 条,本地 DNS 多条 |
| 第 11 类 | “采用递归方法解析” | 每一级只把请求交给下一级 | 主机 1 条,本地 DNS 1 条 |
| 第 12 类 | “所有服务器迭代”“最少和最多次数”“具体域名” | 考缓存 + 域名层次 | 最少看缓存,最多按层次数 |
做这类题时,先不要急着数根、顶级域、权限域,而是先判断题目问的是哪一种对象。
如果问“用户主机发送几条”,通常是 1 条,因为用户主机一般只问本地域名服务器。
如果问“本地域名服务器发送几条”,就要看本地域名服务器向外部采用什么方式。采用递归,一般是 1 条;采用迭代,一般是多条,需要逐级查询。
如果问“最少、最多”,一定要看有没有说“无缓存”。题目没有明确无缓存时,最少可能是 0,因为本地域名服务器可能已经缓存了结果。题目明确“本地域名服务器无缓存”时,就不能再把最少算成 0。
最后再看是不是给了具体域名。如果给了 www.abc.xyz.com 这种域名,通常就要按层次计算最大迭代次数:
根服务器 → 顶级域服务器 → 二级域权限服务器 → 更下级权限服务器 → 目标主机记录
所以第 12 题的最多次数是 4,而不是 3。

第14题的关键不是“只考虑 Web 请求的 TCP 三次握手”,而是要分清两类过程:
一类是 DNS 域名解析过程,通常按 UDP 查询/响应 计算,不建立 TCP 连接,所以不需要 TCP 三次握手。
另一类是 HTTP 访问 Web 服务器过程,HTTP 运行在 TCP 之上,所以访问 www.abc.com 的 Web 页面时,需要先建立 TCP 连接,再发送 HTTP 请求并接收响应。
本题答案应为:
D. 20ms,50ms
具体理解如下。
浏览器点击超链接 http://www.abc.com/index.html 后,首先要知道 www.abc.com 对应的 IP 地址,这一步靠 DNS 查询完成。普通 DNS 查询默认使用 UDP 53 端口,不是 TCP 连接,因此不会出现“和根域名服务器、com 顶级域名服务器、abc.com 域名服务器分别进行 TCP 三次握手”的过程。
但是,虽然 DNS 不进行 TCP 三次握手,DNS 查询本身仍然有往返时延 RTT。题目说:
本地域名服务器只提供递归查询服务,其他域名服务器只提供迭代查询服务。
意思是主机 H 把查询请求交给本地域名服务器,本地域名服务器再依次去问:
根域名服务器
→ com 顶级域名服务器
→ abc.com 域名服务器
如果本地域名服务器没有缓存,最长情况下要经过 3 次 Internet 上的 DNS 查询,每次 RTT 为 10ms,所以 DNS 解析最长耗时:
3 × 10ms = 30ms
然后浏览器才能访问真正的 Web 服务器 www.abc.com。
访问 Web 页面时,因为 HTTP 基于 TCP,所以要考虑:
TCP 三次握手:1 个 RTT = 10ms
HTTP 请求并接收响应:1 个 RTT = 10ms
所以 Web 访问阶段耗时:
2 × 10ms = 20ms
因此最长时间为:
DNS 解析 30ms + Web 访问 20ms = 50ms
最短情况下,本地域名服务器已经缓存了 www.abc.com 的 IP 地址,本地查询时延题目一般忽略,因此 DNS 解析可以认为不经过 Internet 查询。此时只需要考虑 Web 访问阶段:
TCP 三次握手 10ms + HTTP 请求/响应 10ms = 20ms
所以最短时间是 20ms,最长时间是 50ms。
你理解的方向是对的:DNS 查询不等同于传统意义上的 TCP 三次握手连接。408/统考这类题里,除非题目特别说明 DNS 使用 TCP,否则普通 DNS 查询默认按 UDP 查询/响应处理,只计算 DNS 查询的 RTT,不额外计算 TCP 建立连接时间。
这类题最容易错在两点:第一,把 DNS 查询也当成 TCP 连接,错误地给每个 DNS 服务器都加三次握手时间;第二,只算 TCP 三次握手,不算 HTTP 请求到响应的那 1 个 RTT。记法可以直接压缩为:
总时间 = DNS 解析 RTT 数 + TCP 建立连接 1RTT + HTTP 请求响应 1RTT
本题:
最短:0 + 1RTT + 1RTT = 20ms
最长:3RTT + 1RTT + 1RTT = 50ms



