如何解決wireshark抓包大於mtu的問題

在測試的時候,發現有些時候用wireshark抓到的包中含有很多大於mtu的數據包。於是試了一下,在本機抓包和在通信的對端同時抓包,發現本機上抓到了大於mtu的包,但是對端卻沒有這種包。可以推斷出數據包在最後發出去的時候,還是進行了切分。

從這個現象大概也可以猜測出wireshark抓包的機制,大概是在什麼地方抓取的包。

於是想了想網卡上有沒有什麼參數可以配置來解決這個問題,最後發現一個參數“大量發送卸載”,順手百度了一下,大概意思就是開啓之後由網卡來執行對大塊數據的切分操作,這樣可以降低操作系統的壓力。把這個功能禁用之後,果然抓到的包中就沒有大於mtu的數據報文了。

於是可以猜想,系統在通過網卡發送數據的時候,是往一個緩衝區中放入數據,當開啓網卡的“大量發送卸載”功能時,系統就不會計算每個data段的長度,只管往緩衝區寫入數據,最後分包的操作由網卡來完成。當關閉這個參數的時候,系統寫入緩衝區的數據是根據mtu計算好的。 由此也可以猜測出wireshark抓的就是這個緩衝區中的內容。 不過這一些都是我根據現象進行的一些猜測,沒有深入進行驗證。

server 2008下如何修改該參數:

網卡屬性->高級->“大量發送卸載” 禁用
轉自:https://blog.csdn.net/mgxcool/article/details/73028534

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章