【问题标题】:Weird IPERF observations: MSS size get decreased from what specifed奇怪的 IPERF 观察:MSS 大小比指定的减小
【发布时间】:2011-07-08 05:26:44
【问题描述】:

我正在使用 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 + 40Bytes = 60 字节,但 IPERF 显示 MSS = 36 字节(MTU = 76 字节)。

我们看到 IPERF 总是发送大小为比我们指定的少 12 字节的 MSS。

在这里我应该指出,我发送数据包的 PC 是一台 Linux 机器,而接收这些数据包的电脑是一台 Windows 机器。我们在 Linux 中使用 IPERF 命令生成数据包,而在 Windows 上,JPERF 正在运行,我们可以看到有关传入数据包的信息。

另一件重要的事情是,Windows 机器上的 JPERF 在收到我们发送的数据包后,会说如下: MSS 和 MTU 大小未知(操作系统不支持 TCP_MAXSEG?)

知道 MSS 是如何/为什么减少的吗?

【问题讨论】:

    标签: networking packets iperf mtu mss


    【解决方案1】:

    我不太了解这些 MSS 和 MTU 的东西,但在尝试了解时,我在 Microsoft 的 MSDN 网站上看到了来自 Path MTU Discovery 的以下内容:

    "过去,主机的 MSS 一直是链路层的 MTU Internet 协议 (IP) 和 TCP 标头减去 40 个字节,其中 没有使用 IP 或 TCP 选项。 [...]

    但是,在 Windows 2000、Windows XP 和 Windows Server 2003 中的支持 对于额外的 TCP 选项,例如时间戳,增加了 典型的 TCP/IP 标头到 52 个或更多八位字节。"

    这表明您观察到的 12 字节差异可能是由于连接的 Windows 端使用的选项造成的。

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 2018-04-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多