答案1
答案2
有效载荷不一定只是填充。事实上,有效载荷甚至可以在一定程度上用于对操作系统进行指纹识别。在这种情况下,我敢打赌,ping 是从 Windows 机器上运行的,原因有两点:
- 有效载荷中缺少时间戳
- 标识符为 1
与基于 Mike Muuss 的 ping(FreeBSD、Mac OSX 等)相比,其中:
- 有效载荷的前 8 个字节代表时间戳(struct tv32)
- 标识符是
ping
程序本身的进程 ID 的低 16 位。
或者在 Solaris 上,时间戳是一个“struct timeval”,其中秒值可能有一个 64 位秒字段。其他操作系统也可能改变有效负载。
作为参考,你可以阅读关于一个旧的 Wireshark Bug 的评论,即错误 5770。
当然,ICMP 有效负载还有其他用途,例如用于 ICMP 隧道。这里有一篇讨论此问题的文章,标题为:Ping 功率 - ICMP 隧道。
无论如何,ICMP 有效负载不一定只是填充。