ICMP 与 MTU、最小数据长度

ICMP 与 MTU、最小数据长度

帧的数据字段的最小长度位46字节。如果IP数据报小于46字节,数据报必须被填充到46字节。当采用填充时,传递到网络层的数据包括IP数据报和填充部分。网络层使用IP数据报首部中的长度字段来去除填充部分。

当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和出错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,将帧交给“设备驱动程序”做进一步处理,将帧的数据字段的内容传递给网络层。这时我们抓包的软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据。

以太网中,IP数据报长度最小为46字节,负载不足46字节,在数据帧的末尾补0,但是补充的0属于以太网层,不属于数据部分。所以wireshark显示的数据帧最小长度是14字节 + 46字节 = 60 字节。

对于ICMP报文,当ICMP 请求报文的 payload 小于 18 字节时,ICMP响应报文会填充0, 但是它们有效负载的长度还是相同的.

计算方法: 46 - IP首部(20字节)-ICMP首部(8字节) = 18 字节。

最大传输单元(MTU):指由IP包头和数据部分组成的IP数据报长度。

以太网中, MTU 设置为 1500。所以ICMP负载长度最大值为

MTU(1500字节) - IP首部长度(20字节)-ICMP首部长度(8字节) = 1472 字节

当ICMP负载长度超过1472字节,ICMP 报文会被分片。如下图所示:

其中,帧354的负载大小为1480字节,等于ICMP最大负载长度(1472字节) + ICMP首部长度(8字节)

分片前 ICMP报文长度为1513字节 = 1480字节 + 33 字节

对应的数据帧:

帧354的长度1514 = 以太网帧首部(14字节) + IP首部(20字节) + ICMP首部(8字节)+ ICMP 负载长度(1472字节)

帧355的长度67字节 = 以太网帧首部(14字节) + IP首部(20字节) + 负载长度(33字节)

可见,帧355的长度67字节中不包含ICMP首部,使用scapy解析该数据包时找不到ICMP首部。

参考:

wireshark捕获IP分片数据包实践

ping 包长度及 MTU

相关推荐

会议台签一般用什么字体,怎样可以快速批量的打印会议桌签?
excel表格里面怎么合并计算
365bet取款要多久到账

excel表格里面怎么合并计算

📅 10-06 👁️ 1184
角色交易,将军令的绑定时间问题
365bet取款要多久到账

角色交易,将军令的绑定时间问题

📅 08-23 👁️ 4144
彼岸花的做法与步骤
365BET导航

彼岸花的做法与步骤

📅 10-26 👁️ 9276
其乐 Keylol>>社区›平台周边›购物心得›[购买心得]《神偷》系列近史低,正确补齐方式,防止打包税前端太渣宽版显示收藏主题复制链接
win10窗口边缘阴影消失的解决方案(看不清两个大白窗口的边缘在哪)
‎汉王扫描王
365bet最快线路监测中心

‎汉王扫描王

📅 10-05 👁️ 3937
乱斗西游九头虫厉害吗 九头虫技能属性详解图鉴
酒店投影仪使用全攻略,解锁完美视听体验!
天猫数据分析工具推荐(天猫第三方数据平台)
皮革品牌排行榜
365BET导航

皮革品牌排行榜

📅 08-22 👁️ 3818
五楼的房子风水好不好?
365bet最快线路监测中心

五楼的房子风水好不好?

📅 10-13 👁️ 7256