为什么 ping 数据包的数据长度为 32 字节,而 traceroute 数据包的数据长度为 64 字节?这有什么原因吗?或者这种差异有什么好处吗?
答案1
实际情况要复杂一些:
ping 和 traceroute 都有修改数据包大小的选项:
ping 的选项修改了有效载荷大小,例如运行
ping -s 1 www.google.com
将使用 29 字节总数据包(20 字节 IP 头 + 8 字节 ICMP 头 + 1 字节数据)来 ping google。tracerote 的选项修改了全部的大小,例如运行
traceroute www.google.com 80
将发送总大小为 80 字节(20 字节 IP 头 + 8 字节 UDP + 52 字节数据)的 UDP 数据包。
不同版本的 ping 和 traceroute 具有不同的默认值。但是,它们都在 100 字节以下的范围内,确切的字节数并不重要。如果您的 ping 默认值为 32,则数据包的总大小为 60 字节,与 traceroute 的默认值相差无几。
数据包的总大小可能因您使用的是 IPv4 还是 IPv6、IP 选项设置等而有所不同。
增加 ping 和 traceroute 的数据包大小的最常见原因是调试 MTU 问题,除此之外,默认设置就可以了。