TCP 窗口缩放。由于 Windows 2008 服务器上的动态 TCP 帧大小,不支持 TCP 缩放因子

TCP 窗口缩放。由于 Windows 2008 服务器上的动态 TCP 帧大小,不支持 TCP 缩放因子

问题

从托管在 Windows 2008 Server 上的 WCF 服务调用 ISP 托管的 asp web 服务时显示 web 服务超时/无响应。

诊断

使用 Windows 网络监视器捕获数据包并隔离发送到 Web 服务的数据包,我可以看到:


TLS 握手你好

TCP 传输

TCP 重传

TCP 重传

TCP 重传

TCP 重传

TCP 重传

TCP 协商比例因子

不支持 TCP 比例因子


这似乎表明 TCP 负载没有响应,这意味着 IP 被阻止。

解决方案

在联系网络服务提供商后,他们表示没有设置 IP 阻止,并且该问题特定于 Microsoft Windows 2008 Server、动态 TCP 帧大小及其特定的负载平衡器。

经过进一步研究,我相信以下问题将会得到解决。

要查看 autoTuningLevel 参数的当前配置,请按照以下步骤操作:


单击“开始”

单击“所有程序”,然后单击“附件”。

右键单击“命令提示符”,然后单击“以管理员身份运行”。

如果系统提示您输入管理员密码或确认,请输入密码,或单击“继续”。

在命令提示符下,键入以下命令,然后按 ENTER:netsh interface tcp show global

autoTuningLevel 参数的值被列为接收窗口自动调节级别。

我们希望将其设置为正常

在命令提示符下,键入以下命令,然后按 ENTER:netsh interface tcp set global autotuninglevel=disabled


以下列表包括 autoTuningLevel 参数的所有可能值:

/disabled:将接收窗口设置为默认值。

/highlyrestricted:让接收窗口超出默认值,但是非常保守。

/restricted:允许接收窗口超出默认值,但在某些情况下限制这种增长。

/normal:让接收窗口增大以适应大多数情况。

/experimental:让接收窗口增大以适应极端情况。


注意:实验值可能会降低常见场景下的性能。此值仅应用于研究目的。

问题

只是从独立来源寻找有关此问题的更多信息。

希望 MS 能在某些时候对其进行修补。

谢谢你,斯科特

参考:http://support.microsoft.com/kb/935400

答案1

有几件事:

  1. 这不是需要修补的问题,因为它不是错误。它是一项功能增强。

  2. Web 服务提供商的负载均衡器不支持该功能,因此真正的问题是他们不支持它,而不是微软实现了它。

  3. 如果解决方案是由于当前的负载平衡器而禁用服务器上的功能,那么这就是解决方案。

  4. TCP Windows Scaling 的概念是在RFC 1072早在 1988 年,RFC 1323早在 1992 年。

  5. 这里有更多信息:

https://www.google.com/#hl=en&gs_nf=1&tok=2Z0E4Znj0AxsSRXPwvVWBg&cp=13&gs_id=1k&xhr=t&q=TCP+Window+Scaling&pf=p&sclient=psy-ab&oq=TCP+Window+Sc&aq=0&aqi=g4&aql=&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=41e29ab53187148e&biw=1920&bih=911

相关内容