我在Windows上的TCP连接存在性能问题。我的服务器向我的客户端发送消息(帧1049),客户端应该立即回答。客户端确实回复了该消息,但只延迟了188ms(第1057帧)。
设置服务器消息的PSH位。
由于188ms非常接近200ms,我认为Nagle算法或延迟ACK都是负责任的。设置TCP_NODELAY /禁用Nagle无效。禁用延迟ACK,即在网络接口上将TcpAckFrequency设置为1确实会产生影响;使用此注册表项设置,延迟消失。
但是,我不明白为什么。如果我没有弄错的话,没有延迟的ACK - 来自服务器的消息立即在第1050帧被确认!谁能解释一下这里发生了什么?除了设置TcpAckFrequency之外,我也会对解决方法感到非常高兴,因为这是一个影响网络接口上所有连接的“全局”黑客。