2011-02-06 75 views
2

作爲家庭作業的一部分,我必須在Linux中編寫一個C程序,該程序使用原始套接字生成對ICMP Echo請求的ICMP回覆。 ICMP數據包中的數據是否也必須包含在校驗和中?或者我應該只計算頭的校驗和?ICMP頭校驗和是否也包含數據?

+0

因爲問題中沒有C代碼,所以刪除`c`標記並添加`networking`標記。 =) – mpontillo 2011-02-06 02:59:47

回答

9

它必須從HEADER + DATA計算。執行計算時,讓校驗和爲零,然後將其替換。

RFC 792報價頁面14(回聲或迴應應答消息):

校驗和是16位的人的開始與所述ICMP類型ICMP消息中的所述一個的 補體總和的補體。 爲了計算校驗和,校驗和字段應該爲零。 如果總長度爲奇數,則接收到的數據將填充一個 八位字節以計算校驗和。這個校驗和可能在將來被替換爲 。

+0

參考請 – 2011-02-06 01:01:48