接收器将TCP窗口大小限制为64,512
事实(请指出任何虚假陈述): 我在两个相距80毫秒的站点之间建立了100 Mbps的连接 这是一个漫长的胖连接,可以从较大的TCP窗口大小(可能高达100 Mbps * 0.08秒= 1,000,000字节)中受益 两台机器都运行Windows Server2012。“接收窗口自动调整级别”在这两者上都是正常的。两者均禁用“窗口缩放试探法”。 我在一侧运行“ iperf -s”,在另一侧运行“ iperf -c”。传输速度为5 Mbps。我得到相同的结果去另一个方向。 双方都在其SYN中宣传了对TCP滑动窗口的支持。 在整个运行过程中,接收器请求的TCP窗口大小为64,512字节(0xFC00),TCP窗口比例值为“ no shift”(0x000)。 网络能够处理更大的窗口大小(请参见下面的序列图) 接收器使窗口小于网络支持的范围 此连接在IPSEC VPN中发生。隧道接口的MTU在两个方向上均减小到1400字节。 题 为什么接收器使窗口小? 无答案 网络坏了 在同一网络上运行的Linux机器将TCP窗口打开到1.5兆字节,并以6倍的带宽传输数据 启用窗口缩放启发式 禁用窗口缩放试探法(请参见下面的“ netsh interface tcp show heuristics”的输出) 接收窗口自动调整级别不正常 接收窗口自动调整级别是正常的(请参见下面的“ netsh接口tcp show global”输出) 这只是在ESXi中的虚拟机上无法正常工作 在同一主机上运行的虚拟linux计算机上,我的性能提高了6倍。 更新1 PDT 2015年6月12日下午4:30 我通过将linux放在连接的一侧来修改了测试。当然,当linux将数据发送到Windows Server 2012时,Windows提供的TCP接收窗口太小(64,512字节)。 当我从Windows向Linux发送数据时,Linux提供了足够大的TCP接收窗口(1,365,120字节)。但是,Windows将发送中的最大发送限制为约60,000字节。 …