win10下用wireshark抓包發現部分TCP包例外,比如這個包:1、源MAC地址(路由器)顛倒,比如路由器LAN口的MAC是123456,但顯示是654321,只有一部分是這樣2、TCP校驗和錯誤,但應用層沒有顯示例外,簡單觀察后發現去掉最后兩個位元組的0就正常了。到底是咋回事?應該不是網卡的問題,有校驗和正常的TCP包,網路連接很正常。



uj5u.com熱心網友回復:
可能是網線老化 或者松動uj5u.com熱心網友回復:
這里面的校驗和有三種,一個是網卡自身能幫你計算校驗和的,一個是協議堆疊算的,另外一個是wireshark算的。如果是要網卡算,那資料包只有在網卡往外發之前才加校驗和進去的,但是wireshark抓這個包是在網卡發之前抓的,這樣包里的校驗和和wireshark算的肯定不一致。這種網路又正常,但是抓包又發現tcp校驗和不對的包一定是本機發出去的包。因為tcp是強制校驗和的,所以外來tcp包校驗和錯誤的,wireshark能抓的到,但是一定會被協議堆疊丟棄的。uj5u.com熱心網友回復:
還是不太懂,您再看看這種情況:我用命令列對一個網站發起了telnet連接,抓包發現了網站回應的[SYN,ACK]包,結果這個包的校驗和是錯的,但是下面緊接著是本機回應的[ACK]包,證明這個包沒錯,后來我發現,如果校驗時不算TCP包的資料部分,即只校驗偽頭部和頭部,校驗結果就是正確的,即0xFFFF
uj5u.com熱心網友回復:
檢查一下網卡的這倆屬性,Rx Checksum Offload/Tx Checksum Offload,關掉再試試有沒有校驗和的錯誤。
uj5u.com熱心網友回復:
找到原因了,但是還是有點兒問題,好像是我的路由器不大一樣,我在手機熱點下,學校WIFI下以及我的路由器下分別對同一個網站執行telnet命令,在我的路由器下抓網站回復的[SYN,ACK]包時發現多了兩位元組資料,wireshark顯示為vss-monitoring Ethernet trailer,去掉這兩位元組資料校驗和就對了,請問這是什么東西?TCP/IP協議堆疊難道會在校驗時自動去掉這兩位元組資料嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/48679.html
標籤:網絡協議與配置
上一篇:電腦搜索不到WiFi怎么解決
下一篇:軟體里的事項打不開
