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

请回答下列问题。
(1)从 t0到 t1 期间,H1 除了 HTTP 之外还运行了哪个应用层协议?从应用层到数据链路层,
该应用层协议报文是通过哪些协议进行逐层封装的?
(2)若 S 的交换表结构为:< MAC 地址,端口>,则 t1时刻 S 交换表的内容是什么?
(3)从 t0 到 t1 期间,H2 至少会接收到几个与此次 Web 访问相关的帧?接收到的是什么帧?帧的目的 MAC 地址是什么?
【答案】
(1)从 t0 到 t1 期间,H1 除了 HTTP 之外还运行了 DNS 应用层协议;DNS 报文从应用层到数据链路层,逐层封装关系是:DNS 报文→UDP 数据报→IP 数据报→CSMA/CD 帧。
(2)t1时刻 S 交换表为:

(3)H2 至少会接收到 2 个帧;接收到的均是封装 ARP 查询报文的以太网帧;这些帧的目的MAC 地址均是:FF-FF-FF-FF-FF-FF。
【考点】本题考查DNS查询,HTTP交互过程,交换机自学习和转发帧的过程,ARP协议的工作原理。
【解析】
(1)在t0到t1期间,需要将域名转换为IP地址,故,在应用层运行的协议有DNS。
在应用层到数据链路层的过程中,UDP将应用层交下来的DNS报文添加首部后,交付给IP层,在IP层会使用IP数据报进行到装,封装好后,向下文付给数据链路层,数据链路层使用CSMA/CD协议进行帧封装。所以,逐层封装关系如下: DNS报文→UDP数据报→IP数据报→CSMA/CD帧。
(2)在H1利用浏览器通过域名请求访问Web服务器时,需要先解析域名,所以会发送DNS报文到本地域名服务器,查询该域名对应的IP地址,所以要先向本地域名服务器发送请求。由于在t0时刻,H1的ARP表和s的交换表为空,所以需要先发送ARP请求分组,查询本地域名服务器对应的MAC地址。这些目的MAC地址均是FF-FF-FF-FF-FF-FF。S接收到这个帧,在交换表中记录下MAC地址为00-11-22-33-44-cc,位于端口4,存入交换表。随后,根据ARP协议,会广播该帧。当本地域名服务器接收到ARP请求后,向H1发送响应ARP分组。S收到这个响应帧之后,在交换表中记录下MAC地址为00-11-22-33-44-bb位于端口1,然后把该帧从端口4发送出去。这样H1就得到了域名对应的IP地址,发现不在本局域网中,需要通过路由表转发。同时,H1的ARP表中并没有路由器对应的MAC地址,所以,需要再次先发送ARP请求分组,同理,当路由器收到ARP请求后,向H1发送响应ARP分组。S接收到这个帧,在交换表中记录下MAC地址为00-11-22-33-44-aa,位于端口2,然后把该帧从端口4发送出去。现在,H1能把数据发送给路由器了。在整个过程中,并没有涉及H2, H2没有主动发送数据。所以s并不会记录下H2的MAC地址和端口,所以,由上可知S在t1时刻的交换表如下所示:

(3)在t0 到 t1 期间网络未发生任何与此次 W eb 访问无关的网络通信。所以,H2收到的帧,都是ARP查询报文的以太网帧(根据ARP协议,查询报文时,会广播ARP请求分组,即使用同一个局域网里的所有主机收到ARP请求)。由(2),可知,H2 至少会接收到 2 次封装 ARP 查询报文的以太网帧,其中,这些帧的目的MAC 地址均是:FF-FF-FF-FF-FF-FF。