确定 Windows Server 上的 MSS 值

确定 Windows Server 上的 MSS 值

这篇有关 Windows Server 2008 的 MSS 限制的 Technet 文章,其中提到:

在分析源 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 字节 MSS 限制的数据包(发往 131.107.65.14)。如果您的 TCP 堆栈运行正常,则在应用过滤器后,您显然不会看到显示任何数据包。

相关内容