我正在使用 IPERF 将一些数据包从一台 PC 发送到另一台 PC。在使用 IPERF 测试 MSS(最大段大小)时观察到以下情况。
发送 MSS = 20 字节的数据包:
iperf -c 192.168.1.98 -P 1 -i 5 -p 5001 -M 20 -m
我们预计上述命令将发送 MSS = 20 字节和
MTU = MSS + 40 字节 = 60 字节的数据包,但 IPERF 显示 MSS = 36 字节(MTU = 76 字节)。
我们看到 IPERF 总是发送大小比我们指定的少 12 字节的 MSS。
在这里我应该指出,我发送数据包的 PC 是一台 Linux 机器,而接收这些数据包的电脑是 Windows 机器。我们在 Linux 中使用 IPERF 命令生成数据包,而在 Windows 上,JPERF 正在运行,我们可以看到有关传入数据包的信息。
另一个重要的事情是,Windows 机器上的 JPERF 在收到我们发送的数据包后,显示如下: MSS 和 MTU 大小未知(操作系统不支持 TCP_MAXSEG?)
知道如何/为什么减少 MSS 吗?