關於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抓的發送出去的報文的檢驗和是不對的,若是直接對報文進行回放,會被設備丟棄,致使報文回放失敗。

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

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

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

把這三項所有關閉,就能夠關閉網卡的硬件檢驗和功能。工具

image2014-9-11 9-19-22

從新計算檢驗和的工具

另外作了一個從新計算檢驗和的工具:debug

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

相關文章
相關標籤/搜索