目录

计算机网络-网络层IP数据报首部格式数据链路层帧格式综合练习

计算机网络 网络层IP数据报首部格式、数据链路层帧格式综合练习

计算机网络 网络层IP数据报首部格式、数据链路层帧格式综合练习

主机 A 的IP地址为 218.207.61.211,MAC 地址为 00:1d:72:98:1d:fc。A 收到一个帧,该帧的前 64 个字节的十六进制形式和 ASCII 形式如下图所示

https://i-blog.csdnimg.cn/direct/d501c21fa5604c9686bef31ffe668675.jpeg#pic_center

(1)主机A所在网络的网关路由器的响应端口的MAC地址是多少?

(2)该IP数据报分组所携带的数据量为多少字节?

(3)若该分组需要被路由器转发到一条MTU为380B的链路上,则路由器将做何种操作?

【解析】

这一题涉及到了IP数据报首部格式和帧格式

(1) 网关路由器将收到的这个IP数据包封装成帧,交给主机A,主机A在数据链路层收到这个帧,那么只需知道帧格式,即可找到源MAC地址

https://i-blog.csdnimg.cn/direct/3c3bf3cabfa244c687d4fb1e57a8c9b4.png#pic_center

这个帧由路由器转发给主机A,目的地址为主机A的MAC地址,主机A的MAC地址是00:1d:72:98:1d:fc,其后面6个字节即为网关的MAC地址,即00:00:5e:00:01:01

https://i-blog.csdnimg.cn/direct/19f29f4f9a4341cc952a40a2726f7758.jpeg#pic_center

(2) 要想求得IP分组的数据量为多少字节,需要求得IP分组的总长度和首部长度,令总长度减去首部长度即为数据部分长度

IP数据报首部格式如下

https://i-blog.csdnimg.cn/direct/e0a7e14f08614de8b02a20663d1fd6bd.png#pic_center

  • 首部长度 :占4位,以4B为单位,最大可表示的首部长度为 60B,最常用的首部长度是20B,该字段的值是5,此时不使用任何可选字段

  • 总长度 :占16位,指首部和数据之和的的长度,单位是字节,因此数据报的最大长度为

    2 16 − 1

    65535 B 2^{16} - 1 = 65535B

    2

    16

    1

    =

    65535

    B 。以太网帧的最大传送单元(MTU)为1500B,因此当一个IP数据报封装成帧时,数据报的总长度一定不能超过下面的数据链路层的MTU

  • 标志 :占3位,最高位为保留位,次高位为DF(Don’t Fragment),只有当DF=0时才允许分片,最低位为MF(More Fragment),MF=1表示后面还有分片,MF=0表示最后一个分片

  • 片偏移 :占13位,表示分片在原数据中从哪一字节开始,以8B为偏移单位,除最后一个分片外,每个分片的长度一定是8B的整数倍

我们已知主机A的IP的地址,其16进制表示为0xda cf 3d d3,作为目的地址,这样我们能够很好确定总长度和首部长度的位置

https://i-blog.csdnimg.cn/direct/1deefbe6023244dc965ca6c184696eec.jpeg#pic_center

其中0x01 90是总长度,其十进制为4001B,0x45中后4为是首部长度,十进制为54B

所以该分组数据部分为400B - 20B = 380B

(3) 该IP分组总长度为400B,大于MTU=380B,因此可能需要分片,但是能够分片要根据标志位中DF的值判断,由第二问,可以知道0x40中前3为为标志位,DF=1,所以不能分片,路由器将丢弃该分组并且用ICMP差错报文向源主机报告

https://i-blog.csdnimg.cn/direct/22804163a74749b6a0899fe77b64bc58.jpeg#pic_center