ping 数据包大小为啥是32字节

ICMP的Payload根據不同協議類型而有不同解釋要求,并沒有統一的格式要求。加載Payload后,只要不超過IP包長度限制(65536字節)就是合法的範圍。Echo request與Echo reply的Payload沒有意義,長度只要不超過上述的最大限制即合法。而且Echo request與Echo reply是兩個協議,并沒有要求Echo reply的Payload與Echo request的Payload之間有任何關係。Echo request的32字節包是微軟的企業風格。
■网友
楼主这个问题,是不是在纠结ICMP的Payload到底要多大?
我想是否可以反向来考虑问题。
除去2层封装,一般情况下以太网要求报文大小在46~1500Byte之间,那么除掉IP包头的20Byte,ICMP的8Byte,最小载荷应该是18Byte,最大载荷我猜应该是65535-8=65527Byte,因为IP的最大是65535。
至于为什么是32Byte,我想可能就是个数字吧。我记得《三体》第三部里面有段情节:
在“万有引力”号用中微子信号发送罗塞塔系统后的三分钟,太空艇收到了来自“魔戒”的一系列点阵图,第一幅是很整齐的一个8×8 点阵,共六十四个点;第二幅图中点阵的一角少了一个点,剩下六十三个;第三幅图中又少一点,剩六十二个……“这是倒计数,也相当于一个进度条,可能表示‘它’已经收到了罗塞塔,正在译解,让我们等侍。”韦斯特说。“可为什么是六十四点呢?” “使用二进制时一个不大不小的数呗,与十进制的一百差不多。”卓文和关一帆都很庆幸能带韦斯特来,在与未知的智慧体建立交流方面,心理学家确实很有才能。 或许这句话能解释为什么是32吧,不过这是我猜的,不一定对。
【ping 数据包大小为啥是32字节】 PS:我测试了一下我的Win7系统,无线网络中,可以使用
Ping -l 16 114.114.114.114 ping通目标地址,这可能跟封装介质(二层封装)有关。

希望对你能有帮助。


    推荐阅读