關於TOE(TCP/IP Offload Engine)


前言

昨天在電腦上抓取的報文,想進行回話,但是發現全部被設備丟棄了,沒有debug信息,查看了抓包文件,原來是IP頭和TCP、UDP頭的檢驗和全部為0,也就是TOE(TCP/IP Offload Engine)導致的。

image2014-9-11 9-11-58

TOE(TCP/IP Offload Engine)

傳統的TCP/IP處理網絡數據傳輸過程中,要占用大量的主機CPU資源,為了減輕CPU的壓力,一種叫TOE(TCP/IP offload engine,TCP/IP卸載引擎)的技術應運而生。TOE技術對TCP/IP協議棧進行擴展,使部分TCP/IP協議從CPU轉移到TOE硬件,減輕CPU的負擔。
TOE引擎需要做的一件事情就是將IP頭、TCP頭、UDP頭的checksun計算由網卡來計算,CPU不需要計算IP頭、TCP頭、UDP頭的檢驗和的工作由網卡來進行。這樣可以減輕CPU的負擔,如下圖所示,但是這樣會帶來一個問題,就是在user application抓的發送出去的報文的檢驗和是不對的,如果直接對報文進行回放,會被設備丟棄,導致報文回放失敗。

禁用網卡硬件校驗和的功能

點擊網卡屬性、找到高級一項。把

  • IPv4 硬件校驗和
  • TCP 硬件校驗和(IPv4)
  • UDP硬件校驗和(IPv4)

把這三項全部關閉,就可以關閉網卡的硬件檢驗和功能。

image2014-9-11 9-19-22

重新計算檢驗和的工具

另外做了一個重新計算檢驗和的工具:

1、把要修改checksum的pcap/cap文件放入此文件夾下面。
2、雙擊doit.cmd,就會生成新的文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM