Skip to content

2021年 408 计算机网络 第 47 题

计算机网络2021年综合题9分

题目

某网络拓扑如题 47 图所示,以太网交换机 S 通过路由器 R 与 Internet 互联。路由器部分接口、本地域名服务器、H1、H2 的 IP 地址和 MAC 地址如图中所示。在 时刻 H1 的 ARP 表和 S 的交换表均为空,H1 在此刻利用浏览器通过域名 www.abc.com 请求访问 Web 服务器,在 时刻()S 第一次收到了封装 HTTP 请求报文的以太网帧,假设从 期间网络未发生任何与此次 Web 访问无关的网络通信。

2134InternetWeb 服务器www.abc.comR192.168.1.1/2500-11-22-33-44-aa本地域名服务器192.168.1.126/2500-11-22-33-44-bbSH2192.168.1.3/2500-11-22-33-44-ddH1192.168.1.2/2500-11-22-33-44-cc

请回答下列问题。

(1) 从 期间,H1 除了 HTTP 之外还运行了哪个应用层协议?从应用层到数据链路层,该应用层协议报文是通过哪些协议进行逐层封装的?

(2) 若 S 的交换表结构为 〈MAC 地址, 端口〉,则 时刻 S 交换表的内容是什么?

(3) 从 期间,H2 至少会接收到几个与此次 Web 访问相关的帧?接收到的是什么帧?帧的目的 MAC 地址是什么?

解析

(1) DNS 报文的逐层封装

H1 浏览器输入域名 www.abc.com 而非 IP,首先要解析域名 → IP——这是 DNS 协议的工作。所以除了 HTTP,H1 还运行 DNS 应用层协议。

封装链(DNS 报文从应用层往下走):

应用层: DNS 报文(查询 www.abc.com 的 A 记录)
   ↓ 加 UDP 头(默认 DNS 走 UDP,端口 53)
传输层: UDP 数据报
   ↓ 加 IP 头(源 192.168.1.2,目的 192.168.1.126)
网络层: IP 数据报
   ↓ 加以太网首部(源 MAC = H1,目的 MAC = ?)
数据链路层: 以太网帧(CSMA/CD)

为什么 DNS 走 UDP 而不是 TCP:DNS 查询多是"小请求 + 小响应"(请求几十字节、响应几百字节),UDP 无连接低开销远比 TCP 三次握手划算。当响应过大(> 512 B,常见于 DNSSEC、AXFR 区域传送)时才回退到 TCP。

(2) 时刻 S 交换表的内容

先把 期间发生的所有帧在 S 上"走一遍"

帧含义源 MAC目的 MAC进 S 的端口S 学到S 的转发动作
1H1 → DNS:ARP 请求"谁是 192.168.1.126"(广播ccFF:FF:FF:FF:FF:FF4cc 在端口 4端口 1/2/3 都 flood
2DNS → H1:ARP 应答(已知 H1 MAC = cc)bbcc1bb 在端口 1单播到端口 4
3H1 → DNS:DNS 查询(封 IP/UDP/以太网)ccbb4(已学过)单播到端口 1
4DNS → H1:DNS 应答bbcc1(已学过)单播到端口 4
5H1 想发 HTTP 给 Web,发现要走默认网关 R,但不知道 R MAC → ARP 请求"谁是 192.168.1.1"(广播ccFF:FF:FF:FF:FF:FF4(已学过)flood
6R → H1:ARP 应答aacc2aa 在端口 2单播到端口 4
7H1 → R:HTTP 请求(封到帧里目的 MAC = aa)ccaa4(已学过)单播到端口 2 ← 这就是 时刻的帧

时刻交换表(按学习顺序登记):

MAC 地址端口
00-11-22-33-44-cc(H1)4
00-11-22-33-44-bb(DNS)1
00-11-22-33-44-aa(R)2

为什么没有 H2 的 MAC:整个过程中 H2 既没主动发帧(题面说"未发生任何无关通信"),也没作为收件人被指名 → S 没机会从 H2 学到任何记录。交换机的"自学习"只看进入帧的源 MAC + 进入端口这一对。

(3) H2 在此期间会收到哪些帧

H2 是"无辜旁观者"——但它在以下两个时刻会被动接收帧:

何时何种帧目的 MAC为什么 H2 也收到
H1 第一次 ARP "谁是 .126"ARP 请求(广播)FF:FF:FF:FF:FF:FF广播帧由交换机 flood,所有端口都收到
H1 第二次 ARP "谁是 .1"ARP 请求(广播)FF:FF:FF:FF:FF:FF同上,广播 flood

至少 2 个帧,都是封装 ARP 请求报文的以太网广播帧,目的 MAC 地址都是 FF-FF-FF-FF-FF-FF

DNS 应答阶段为什么 H2 不收到:那时是单播帧(源 DNS、目的 H1),交换机已经学到 H1 在端口 4 → 直接从端口 4 出,不 flood。H2 接在端口 3,所以收不到。

HTTP 请求帧为什么 H2 不收到:到了 时刻这一帧的目的 MAC 是 R(端口 2),交换机查表后从端口 2 单播出去,端口 3 的 H2 同样收不到。

本题考察的"二层广播扩散":每次 ARP 请求都是广播,全网所有端点都收。即便目标只有一个,"协议层广播 → 链路层 flood → 整个广播域内都收"是必然结果。这也是为什么大型局域网要用路由器 / VLAN 切割广播域——避免 ARP 风暴拖慢整网。

最后更新:

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

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