IP数据包分片理解
一、 以太网帧格式如下:

MAC数据包的最小值为46byte,至于这个最小值是因为以太网信道侦听需要,1500byte为规范值。
一般的电脑MTU设置值为1500,就是基于MAC最大封包的考虑。一般的IP包的大小肯定超过1500byte,为了能在MAC帧中传输,必须将IP包进行分片,分成适合传输的MAC帧。
可以测试发现,当IP数据包的大小超过1500byte时,且不允许分片时,电脑系统拒绝发送此报文,同时提示数据包需要分片。

使用ICMP包进行测试,因为IP头占用20byte,ICMP头占用8byte,所以ICMP包大小最大为1472byte。测试,使用1472的ICMP报文可以通过,但是使用1473的ICMP不分片报文则不能通过。
测试1:

抓包如下,1472byte的ICMP报文可以通过不分片进行传输;

测试2:

因为ICMP报文的大小为3000byte,所以肯定报文要进行分片,抓包如下:
第一个ICMP报文,满载1472byte。IP包中fragment flags 字段表有后续有Ip分片。

第二个报文(第一分片)就直接通过IP分片传输,且不包含ICMP头,此IP包承载的大小为1480byte。

第三个报文(第二分片),承载的数据包大小为48byte,分片结束。此包的整个大小为:1472+1480+48=3000 byte

8309

被折叠的 条评论
为什么被折叠?



