確定 Windows Server 上的 MSS 值

確定 Windows Server 上的 MSS 值

這篇 Technet 文章介紹了 Windows Server 2008 的 MSS 限制,它提到:

在分析來源 Windows 2008 Server 上收集的網路追蹤後,我們發現遠端系統提供的 TCP MSS 大小為 512 位元組,而 Windows 2008 伺服器不斷發送 MSS 大小為 536 位元組的封包

您如何著手執行此操作,即進行網路跟踪,然後確定 Windows 應該使用和目前正在使用的 MSS 值?

答案1

如果您確實對發起 TCP 連線的 SYN 和 SYN/ACK 封包進行了封包捕獲,您將在選項清單中找到各方宣布的最大分段大小。您可以使用以下命令建立這樣的捕獲Wireshark,有趣的部分可能如下:

wireshark抓包 (無恥地從http://caedesnotes.wordpress.com/2010/06/30/bug-hunting-browsers-fail-to-load-research-microsoft-com/

如果 - 如您在本範例中看到的 - 131.107.65.14 所宣告的 MSS 為 1452 位元組,則在此連線期間您應該只會看到等於或小於該值的 TCP 段長度。請注意,兩台主機在 SYN 和 SYN/ACK 封包中獨立宣布 MSS,並且為整個連接期間交換的所有段選擇兩者中較小的一個。

您可以在 Wireshark 中設定顯示過濾器來進行快速驗證。tcp.len>1452 and ip.dst==131.107.65.14將顯示任何違反 1452 位元組到 131.107.65.14 的 MSS 限制的資料包。如果您的 TCP 堆疊做得正確,您顯然不應在套用過濾器後看到任何顯示的資料包。

相關內容