Windows 2008 R2 上的低延迟 TCP 设置

Windows 2008 R2 上的低延迟 TCP 设置

我在 W2008 服务器上运行第三方软件。此客户端通过 TCP 连接到服务器。两者之间的平均 ping 时间为 1ms。但是,当我在资源监视器中检查应用程序的 tcp 连接时,它显示延迟为 20ms。

我在客户端接口上运行了数据包捕获,看到确认时间<1ms。客户端的 tcp 设置如下:

接收方缩放状态:已启用
烟囱卸载状态:自动
NetDMA 状态:已启用
直接缓存访问 (DCA):已禁用
接收窗口自动调节级别:正常
附加拥塞控制提供程序:ctcp
ECN 功能:已禁用
RFC 1323 时间戳:已禁用

此外,我已在注册表中将特定接口的 TcpNoDelay 和 TcpAckFrequency 设置为 1。NIC 已启用卸载。

资源监视器如何计算这 20 毫秒的 TCP 延迟?Win2008 中是否有其他 TCP 设置可以减少此延迟?

答案1

因此首先,资源监视器/perfmon 使用与 wireshark 等不同的测量系统,所以这可能是延迟不同的原因。

无需深入研究 Windows API,这种差异就是由后处理和低优先级造成的。

鉴于实际延迟为 1ms,您无法应用任何其他设置,而且我不知道您可以进行任何更改来“修复”Windows API perfmon,以便它显示“正确”的延迟。

如果您愿意,我可以找到 perfmon 较慢的确切原因,但根据先前的经验,上述原因就是原因。

相关内容