Tcp
TCP解除安裝網卡如何導致TCP校驗和無效?
導出的 tcpdump pcap 並在另一台使用 wireshark 的機器上進行調查顯示大量無效的 TCP 校驗和消息。這是使用 TCP 解除安裝功能時已知且記錄在案的現象:https ://wiki.wireshark.org/TCP_Checksum_Verification
唯一不清楚的是為什麼校驗和不正確?
TCP 校驗和是在偽標頭的幫助下在整個 TCP 段上計算的,並在校驗和計算過程中使用全零的臨時校驗和值 ( http://www.tcpipguide.com/free/t_TCPChecksumCalculationandtheTCPPseudoHeader-2.htm#圖_218)。然後丟棄偽標頭。差異在哪裡蔓延?
TCP 段位於電腦 RAM 中。它包含 TCP 段所需的所有欄位。
當使用 TCP 校驗和解除安裝時,傳輸段時會發生以下情況:
作業系統會填寫記憶體中 TCP 段中的每個欄位,校驗和除外。校驗和欄位不是由作業系統計算的,它包含之前在該記憶體位置中的任何數據。
現在,像 Wireshark 這樣的數據包擷取工具會擷取這個記憶體位置的內容,其中包含一個沒有計算校驗和的 TCP 段。
當作業系統將段發送到 NIC 時,NIC 硬體然後執行校驗和計算,並將計算的校驗和放入特定的 TCP 段欄位。作業系統或擷取工具永遠不會看到此校驗和。
這就是 Wireshark 報告這些錯誤的原因。