在Wireshark中查看消息時,我注意到校驗和驗證始終處於禁用狀態。這是否像過時的要求,還是僅適用於公司網絡防火牆之外的互聯網流量?Intranet與Internet應用程序中的校驗和驗證
此外,有人可以請指教它是如何設置(例如,無論是從一個應用程序或網絡卡設置,等等。)
PS:這個問題可能不具有實際意義。我正在要求這填補我糟糕的網絡編程技巧中遺漏的大量空白。我聽說校驗和驗證是tcp通信的一個主要瓶頸,但我驚訝於它已禁用所有我見過的消息
在Wireshark中查看消息時,我注意到校驗和驗證始終處於禁用狀態。這是否像過時的要求,還是僅適用於公司網絡防火牆之外的互聯網流量?Intranet與Internet應用程序中的校驗和驗證
此外,有人可以請指教它是如何設置(例如,無論是從一個應用程序或網絡卡設置,等等。)
PS:這個問題可能不具有實際意義。我正在要求這填補我糟糕的網絡編程技巧中遺漏的大量空白。我聽說校驗和驗證是tcp通信的一個主要瓶頸,但我驚訝於它已禁用所有我見過的消息
此問題已在Wireshark FAQ中回答。
結果是校驗和通常由網卡計算,而Wireshark經常在數據包到達實際計算的硬件之前截取數據包。啓用對這些數據包的驗證會導致大量錯誤,因此他們默認禁用驗證。更多信息可通過鏈接獲得。
編輯:只是爲了解決下述水果的評論,我screenshotted一對夫婦的TCP數據包進行比較。第一種是未經驗證TCP數據包:
你可以看到有一個非零校驗那裏,所以它可能出現的Wireshark的(或其他一些硬件預應用)已經做了校驗和爲你。然而,當我們打開這個相同的數據包驗證..
現在我們可以看到,該校驗和是不是在第一時間有效。我找不到這個信息的來源,但我認爲這是Wireshark沒有爲我們填充該領域的有力證據。無論如何,這樣做會違反Wireshark的本質。相反,我認爲這只是數據包中未初始化的字段 - 將字段設置爲零比省略設置字段需要更多的工作。
同樣值得注意的是,隨着時間的推移,越來越多的網絡堆棧將會將校驗和卸載到硬件上,所以來自本地機器的有效校驗和的情況會越來越少。
據我現在瞭解,wireshark中顯示的校驗和驗證是由wireshark應用程序完成的驗證。校驗和驗證可能仍然在用於tcp通信的網卡硬件上發生。如果我的理解不正確,請給出建議 – paseena 2011-03-30 17:55:14
發送時,如果您的NIC支持校驗和卸載,您的TCP/IP堆棧可能會決定不執行NIC以後可以執行的操作。 – ninjalj 2011-03-30 18:08:08
@水果,這是正確的。校驗和總是會在TCP數據包上發生,但由於它是在硬件中完成的,Wireshark並不總是能夠看到它。 – Jeff 2011-03-30 18:09:06