tcpOutAckDelayed是什么意思,是什么导致它计数? 这是否表示有问题?
太阳多可不清楚!
谢谢,丹
延迟的ACK基本上是智能的tcp堆栈。 粘贴:
延迟的ACK意味着TCP不会立即确认每一个接收到的TCP段。 (在阅读以下内容时,请考虑交互式ssh会话,而不是批量传输。)如果您收到一个单独的TCP段,则等待100-200ms,假设接收应用程序可能会生成某种响应。 (例如,每次sshd收到一个击键,它通常都会产生一个字符回应)。你不希望TCP堆栈在每次1ms之后发送一个空的ACK和一个TCP数据包,所以你延迟一点,所以你可以把ACK和数据包组合成一个。 到现在为止还挺好。 但是,如果应用程序不生成任何响应数据呢? 那么在这种情况下,有什么不同可以延迟一下呢? 如果没有响应数据,那么客户端不能等待任何事情,可以吗? 那么,应用层客户端不能等待任何事情,但最后的TCP栈可以等待:这就是Naglealgorithm进入故事的地方:
阅读更多信息由Nagle的algorithm和延迟ACK之间的交互引起的性能问题