在这篇有关 Windows Server 2008 的 MSS 限制的 Technet 文章,其中提到:
在分析源 Windows 2008 Server 上收集的网络跟踪信息后,我们发现远程系统提供的 TCP MSS 大小为 512 字节,而 Windows 2008 服务器不断发送 MSS 大小为 536 字节的数据包
您如何进行此操作,即进行网络跟踪,然后确定 Windows 应该使用和当前正在使用的 MSS 值?
答案1
如果您确实捕获了发起 TCP 连接的 SYN 和 SYN/ACK 数据包,您会在选项列表中找到各方宣布的最大段大小。您可以使用以下命令创建此类捕获Wireshark,有趣的部分可能是这样的:
如果 - 如您在本例中看到的那样 - 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 堆栈运行正常,则在应用过滤器后,您显然不会看到显示任何数据包。