Windows 中的 localhost 环回 tcp 连接:增加每段 65535 字节的瓶颈

Windows 中的 localhost 环回 tcp 连接:增加每段 65535 字节的瓶颈

我遇到的情况是这样的:我有一个环回 TCP 会话,我想提高它的性能。我有类似套接字的对象(具体来说是 .NET Framework 中的 System.Net.Sockets),它们在 TCP 连接的两个方向上发送最多约 9MB 的消息。我观察到,这么大的消息到达另一端通常需要大约 20ms 的延迟。

使用 WireShark,我发现 TCP 流量限制为每段 65535 字节。我怀疑这是速度性能的瓶颈。在 TCP 标头中,启用了窗口缩放选项,并且计算出的窗口大小足够大。我怀疑 SYN 数据包中的“TCP 选项 - 最大段大小”(MSS) 限制了每个 TCP 段的大小。请查看 WireShark 图像,如果我错了,请指出。

大小受限的 TCP 段和窗口缩放选项 SYN 数据包和 MSS

现在回到标题中的问题。在 Windows 7/8/10/11 中,有什么方法可以提高此 TCP 段大小限制?我希望找到一种方法,只为环回连接或仅为某些端口增加 MSS。

答案1

TCP 段由 IP 数据包封装,IP 数据包通常限制为 65,535 字节(2^16-1),因为总长度字段为 16 位。这就是 TCP 和 IP 的阶梯的终点。

如果无法达到所需的带宽,则需要更快的硬件或更快的软件。默认情况下,我的台式机以单线程方式运行约 35 Gbit/s。您可能想询问堆栈溢出用于优化您的代码。

相关内容