题目:某主机的MAC地址为00-15-C5-C1-5E-28,IP地址为10.2.128.100(私有地址)。图47a为网络拓扑,题47b是该主机进行Web请求的一个以太网数据帧前80字节的十六进制及ASCII码部分。
请参考图中的数据回答以下问题:
(1) Web 服务器的 IP 地址是什么? 该主机的默认网关的 MAC 地址是什么?
(2) 该主机在构造题 476 图的数据时,使用什么协议确定目的 MAC 地址?封装该协议请求报文的以太网帧的目的 MAC 地址是什么?
(3) 假设 HTTP/1,1协议以持续的非流水线方式工作,一次请求-响应时间为 RTT,rfc.Htm页面引用了 5 个 JPEG 小图像,则从发出题 47 图中的 We 请求开始到浏览器收到全部大容为止,需要经过多少个 RTT?
(4) 该所封装的 IP 分组经过路由器 R 转发时,需修改 IP 分组头中的哪些字段?
【拓扑图分析】一台主机通过R路由器访问Internet,主机端口号为:10.2.128.100;连接路由器网关为:10.2.128.1;路由器另一端的端口号为:101.12.123.15。最大传输的单元MTU = 1500B
【以太网数据帧图分析】由拓扑图可知,最大传输单元为1500B,所以以太网帧所占为1500B,其中目的MAC地址占6B,源MAC地址占6B,类型占2B,其余为数据。CRC是检错尾部。
【注】数据从应用层传输下来,经过网络层时会给加个IP头跟检错的尾部,在传输到数据链路层的时候再加上以太网数据帧头跟检错尾部,构成整个数据帧再传输到物理层进行传输。示意图如下。
【IP分组头结构图解析】IP分组头是由20B组成,其中前四个B表示版本,如上图所示一行表示
4B,其中各部分的解释如下:
头部长度:IP报头长度,最大为15个长度,每个长度为4字节。头部长度的范围是5-15单位,即20-60(字节)
服务类型:第4-7比特分别代表:延迟、吞吐量、可靠性、代价。这四个比特服务类型中只能置其中一个比特为1,但可以全为0。
总长度字段:表明整个数据段的长度,以字节为单位,最大65535字节。
标识字段:唯一地标识主机发送的每一份数据包。标识字段的值使分片后各数据报片最后能正确的重装成为原来的数据报。
标志字段:目前只有2位有意义。最低位记为MF,MF=1表示后面还有分片;MF=0表示当前是数据报最后一个。中间的一位记为DF,意思是不能分片。只有当DF=0时才允许分片。
片偏移字段:指分片后,某片在原分组的相对位置(起点)。片偏移以8个字节为偏移单位,每个分片的长度一定是8字节(64位)的整数倍。
生存时间TTL:8个比特。发送数据的源主机设置数据报最多可以经过路由器数,通常为32、64、128。每经过一个路由器 -1,直到0丢弃该数据报,并发送错误信息。防止报文在互联网上无休止的被传送。
协议:指明IP层所封装的上层(传输层)协议类型。当字段值1表示ICMP,2表示IGMP,6表示TCP,17表示UDP等。
头部校验和:根据IP头部计算得到的校验和码,计算方法:对头部每个16比特进行二进制反码求和。
可选项和填充字段:用来定义一些任选项(如记录路径、 时间戳),很少被使用,且不是所有主机和路由器都支持。必须是32比特(4字节)的整数倍,如果不足必须填充0来达到长度要求(由填充项字段来实现)。
(1) Web 服务器的 IP 地址是什么? 该主机的默认网关的 MAC 地址是什么?
【解析】由上图的解析可知,Web服务器的IP地址,即为IP分组头结构中的目的IP地址。主机的默认网关MAC为以太网数据帧中的目的MAC地址。因此,通过以太网数据帧的前80字节查找对应的位置。
1.目的IP地址在IP分组头结构中第16字节开始的四个字节,而IP分组又在以太网帧的数据部分,所以位于以太网帧的第 6+6+2+16 = 30个开始,分别是30,31,32,33,即40 aa 62 20H(从0开始往后数)即64.170.98.32。
2.该主机的默认网关的MAC地址就是目的MAC地址即以太网帧前6B。00-21-27-21-51-ee。
(2) 该主机在构造题 47b 图的数据时,使用什么协议确定目的 MAC 地址?封装该协议请求报文的以太网帧的目的 MAC 地址是什么?
【解析】路由器通过IP地址解析得到目的MAC地址,这一操作采用的协议是ARP协议(地址解析协议)。而ARP是采用广播的形式来请求报文的以太网目的MAC。
因此使用ARP协议确定目的MAC地址,通过广播的形式来请求以太网帧的MAC地址为ff-ff-ff-ff-ff-ff.
【注】广播的地址为全1地址。
(3) 假设 HTTP/1,1协议以持续的非流水线方式工作,一次请求-响应时间为 RTT,rfc.Htm页面引用了 5 个 JPEG 小图像,则从发出题 47 图中的 Web 请求开始到浏览器收到全部为止,需要经过多少个 RTT?
【解析】HTTP协议根据TCP的握手原理,因此需先向web发出一个request请求的信号,等待回复一个ACK确认帧;再向web发送一个确认连接的信号,等待回复一个ACK确认帧,确认连接;最后再请求页面的内容。如下图所示,
则结合上图所示的一个请求,每一个来回需要一个RTT时间,因此,从请求跟连接到接收五个图片需要7个RTT。
而题目中提问的是web请求开始到浏览器收到全部(默认已经建立好连接),其中不包含连接的这一个过程,因此需要6个RTT。
(4) 该所封装的 IP 分组经过路由器 R 转发时,需修改 IP 分组头中的哪些字段?
【解析】在进行路由器转发的时候,其数据部分是不变的,而源IP地址将修改为路由器地址;而经过转发TTL也将进行 -1 操作,直到TTL为0的时候数据失效;首部校验是对整个头部进行校验,因此修改了东西后要重新进行修改。
因此封装的IP分组经过路由器R转发时,需修改的IP分组头中的:源IP地址、TTL、首部校验和三个部分。