Skip to content

2010年 408 计算机网络 第 40 题

计算机网络2010年选择题2分

题目

如果本地域名服务器无缓存,当采用递归方法解析另一网络某主机域名时,用户主机、本地域名服务器发送的域名请求消息数分别为( )。

错因

B

本地域名服务器发送多条——这是迭代查询的特征,不是递归。题面明确说"采用递归方法",本地 DNS 用递归向上级请求时只发 1 条就够(递归由上级代劳,最终结果直接回来)。错的根源:把递归和迭代混淆。

C

用户主机发送多条——错。用户主机给本地 DNS 总是发单条递归请求:"请帮我解析 X 域名" 然后等结果。用户主机一次只问一次。错的根源:以为用户主机也参与多次查询。

D

用户主机和本地 DNS 都发多条——双错。用户永远 1 条;本地 DNS 在递归模式下也 1 条(递归 ≠ 迭代)。错的根源:完全没区分递归和迭代两种查询模式。

总解析

第一步:理清递归 vs 迭代查询

查询方式含义谁负责"找答案"
递归查询我把任务全权交给你,你必须给我最终答案被请求方(递归向上代劳)
迭代查询我自己一步步问,你只告诉我下一步该问谁请求方(自己跑一遍)

第二步:题面场景分析

用户主机 → 本地 DNS → ...... → 最终拿到 IP

题面说"采用递归方法解析"——意味着所有环节都是递归请求。

第三步:逐节点统计请求消息数

用户主机的视角

  • 发 1 条递归请求给本地 DNS:"请帮我解析 X 域名"
  • 等待... 等待... 等待...
  • 收到本地 DNS 的最终答案
  • 共发 1 条

本地 DNS 的视角(题面说"无缓存" → 必须向外查询):

  • 收到用户的递归请求 → 必须给出答案
  • 题面"采用递归方法" → 本地 DNS 也用递归问上级(不是迭代)
  • 发 1 条递归请求给上级(如根 DNS、TLD DNS、权威 DNS 链中的某一级)
  • 上级再用递归继续下去,直到拿到答案
  • 本地 DNS 收到上级返回的最终答案,转给用户
  • 共发 1 条

第四步:核对

选项用户本地 DNS模式
A11递归→递归
B1递归→迭代 ❌
C1迭代→递归 ❌
D迭代→迭代 ❌

最终答案是 A(一条、一条)

编者注(生僻术语):实际 DNS 工程通常是混合模式——

  • 用户 → 本地 DNS:递归(用户简单,"你帮我搞定")
  • 本地 DNS → 根/TLD/权威迭代(本地 DNS 跑一遍:根 → .com → example.com → www.example.com,每步问一个)

但本题明确说"采用递归方法"——意味着两段都用递归,所以本地 DNS 也只发 1 条递归请求即可。混合模式下本地 DNS 会发多条(典型 4 条),那是另一种题型(cn-2016-40 就考的"最多 4 次")。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数