二.仍在准备:DNS和ARP
当Bob将www.google.com的URL键入其Web浏览器时,他开启了一长串事件,这将导致谷歌主页最终显示在其Web浏览器上。Bob的Web浏览器通过生成一个TCP套接字开始了该过程,套接字用于向www.google.com发送HTTP请求。为了生成该套接字,Bob便携机将需要知道www.google.com的IP地址。使用DNS协议提供这种名字到IP地址的转换服务。
8)Bob便携机上的操作系统因此生成一个DNS查询报文,将字符串www.google.com放入DNS报文的问题段中。该DNS报文则放置在一个具有53号(DNS服务器)目的端口的UDP报文段中。该UDP报文段则被放入具有IP目的地址68.87.71.226(在第5步中DHCP ACK返回的DNS服务器地址)和源IP地址68.85.2.101的IP数据报中。
9)Bob便携机则将包含DNS请求报文的数据报放入一个以太网帧中。将该帧发送(在链路层寻址)到Bob学校网络中的网关路由器。然而,即使Bob便携机经过上述第5步中的DHCP ACK报文知道了学校网关路由器的IP地址(68.85.2.1),但是仍然不知道该网关路由器的MAC地址。为了获得该网关路由器的MAC地址,Bob便携机将需要使用ARP协议。
10)Bob便携机生成一个具有目的IP地址68.85.2.1(默认网关)的ARP查询报文。将该ARP报文放置在一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧交付给所有连接的设备,包括网关路由器。
11)网关路由器在通往学校网络的接口上接收到包含该ARP查询报文的帧,发现在ARP报文中目标IP地址68.85.2.1匹配其接口的IP地址。网关路由器因此准备一个ARP回答,指示它的MAC地址00.22.6B.45.1F.1B对应IP地址68.85.2.1。它将ARP回答放在一个以太网帧中,其目的地址为00.16.D3.23.68.8A(Bob便携机),并向交换机发送该帧,再由交换机将该帧交付给Bob便携机。
12)Bob便携机接收包含ARP回答报文的帧,并从ARP回答报文中抽取网关路由器的MAC地址(00.22.6B.45.1F.1B)。
13)Bob便携机现在(最终!)能够使包含DNS查询的以太网帧寻找到网关路由器的MAC地址。注意到在该帧中的IP数据报具有IP目的地址68.87.71.226(DNS服务器),而该帧具有目的地址00.22.6B.45.1F.1B(网关路由器)。Bob便携机向交换机发送该帧,交换机将该帧交付给网关路由器。