gpt4 book ai didi

tcp - 从 Windows 发送数据在任何具有高延迟的网络上都很慢,但 linux 很快

转载 作者:可可西里 更新时间:2023-11-01 02:57:12 32 4
gpt4 key购买 nike

通过具有高延迟的网络将数据从 Windows 计算机发送到 Windows 或 Linux 使用了 10% 的链路容量。同时,从 Linux 通过同一网络发送相同数据的速度几乎快了十倍。即使仅通过延迟数据包在低延迟连接上模拟高延迟,问题也是相同的。

似乎它影响了我尝试过的所有应用程序。在 Windows 7 和 Windows Server 2003 上进行了测试,观察到相同的行为。

从 tcpdump 可以看出,Windows 在快速突发中发送了大约 10 个数据包,然后等待 ACK,而 Linux 发送了大约一百个数据包而不等待 ACK。

我已尝试在没有改进的情况下启用 Compound TCP。

我正在寻找有关如何找出正在发生的事情的任何建议。以及如何修复它。

最佳答案

我能够通过在 Windows 注册表中增加 TCP 发送和接收缓冲区的大小来完全解决我的问题(需要重新启动):

[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Afd \Parameters]
DefaultReceiveWindow = 1024000
DefaultSendWindow = 1024000

如果这些 key 不存在,则两者的默认值为 8KB,这是 Windows 等待 ACK 之后的数据量。

还要确保

netsh interface tcp show global

不显示

Receive Window Auto-Tuning Level    : disabled

否则,TCP 窗口缩放不仅对接收而且对发送都被禁用,这将显着限制连接速度。要启用 TCP 窗口缩放,请将自动调整级别设置为正常:

netsh interface tcp set global autotuninglevel=normal

关于tcp - 从 Windows 发送数据在任何具有高延迟的网络上都很慢,但 linux 很快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694244/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com