答案1
這只是填充資料包,使其達到 64 個位元組(十六進位 40)的最小乙太網路幀大小。
由於 ICMP 段小於 64,因此需要進行填充以滿足最小值。只需添加字母表直至達到最小值即可完成此操作。
參見維基百科 乙太網路幀。
答案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 Power - ICMP 隧道。
無論如何,ICMP 有效負載不一定只是填充。