首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Wireshark 抓包 TCP 校驗和錯誤:IP Checksum Offload 原因與解決

     編輯:關於C語言

現象

Wireshark 顯示 TCP 封包 IP Checksum Offload 錯誤,實際封包傳輸正常。

根本原因

現代千兆網卡支援 Checksum Offload,將校驗和計算卸載給網卡硬體。Wireshark 捕獲的是作業系統送往網卡驅動程式的封包,此時校驗和欄位尚未由硬體填入(通常為 0 或隨機值),導致 Wireshark 校驗失敗。實際上網卡發送前會正確計算並填入校驗和。

解決方案

Windows

  1. 開啟「裝置管理員」→ 網路介面卡 → 右鍵屬性 → 「進階」頁籤。
  2. 找到 IPv4 Checksum Offload、TCP Checksum Offload 等選項。
  3. 設為 Disabled 或 None。

Linux

# 關閉發送/接收校驗和卸載
ethtool -K eth0 tx off rx off

補充知識

  • Offload 可降低 CPU 負載(微軟測試最高省 30% CPU)。
  • PCI-X 介面千兆網卡開啟 Offload 可達線路速率;PCI 介面則不一定。
  • 關閉 Offload 僅影響抓包分析,不影響實際網路傳輸正確性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved