我在W2008服务器上运行第三方软件。 该客户端通过TCP连接到服务器。 两者之间的平均ping时间是1ms。 但是,当我检查应用程序的资源监视器中的tcp连接它显示的延迟为20毫秒。
我在客户端接口上运行数据包捕获,并看到<1ms的确认时间。 客户端的tcp设置如下:
接收方缩放状态:启用 烟囱卸载状态:自动 NetDMA状态:启用 直接caching接入(DCA):禁用 接收窗口自动调节级别:正常 附加拥塞控制提供者:ctcp ECNfunction:禁用 RFC 1323时间戳:已禁用
此外,我已经在特定接口的registry中将TcpNoDelay和TcpAckFrequency设置为1。 网卡已启用卸载。
资源监视器如何计算这个20毫秒的TCP延迟? Win2008中有没有其他TCP设置可以减less这种延迟?
因此,首先,资源监视器/ perfmon使用一个不同的测量系统,以什么wireshark等使用,所以这就是为什么延迟是不同的。
没有深入windows API的深入,差异是由后处理和低优先级引起的。
鉴于实际的延迟是1毫秒,没有没有任何进一步的设置,你可以申请,我不知道你可以做任何修改'修复'的Windows API perfmon,所以它显示'正确的'延迟。
如果你喜欢我可以findperfmon慢的确切原因,但根据以前的经验提到的原因是为什么。