Algorithm 是Nagle';s算法是唯一具有相同用途的算法吗?

Algorithm 是Nagle';s算法是唯一具有相同用途的算法吗?,algorithm,packet,nagle,Algorithm,Packet,Nagle,问一下,有人知道Nagle算法是否是包发送中使用的唯一算法吗?还有其他算法和Nagle的一样吗?如果没有,纳格尔的算法多年来有没有改进?谢谢,向我发送源代码将非常有帮助。与任何非平凡程序一样,TCP堆栈使用大量“算法”。可能最有趣的是,经过多年的改进,它仍然基本上基于慢启动算法 Nagle的算法——实际上更像是一种启发式算法——是一种尝试,通过延迟发送小数据包,直到可以发送合理数量的数据,从而提高TCP流量的效率。“写得不好”的应用程序一次可能发送几个字节,这会在TCP连接上造成巨大的开销,因为

问一下,有人知道Nagle算法是否是包发送中使用的唯一算法吗?还有其他算法和Nagle的一样吗?如果没有,纳格尔的算法多年来有没有改进?谢谢,向我发送源代码将非常有帮助。

与任何非平凡程序一样,TCP堆栈使用大量“算法”。可能最有趣的是,经过多年的改进,它仍然基本上基于慢启动算法

Nagle的算法——实际上更像是一种启发式算法——是一种尝试,通过延迟发送小数据包,直到可以发送合理数量的数据,从而提高TCP流量的效率。“写得不好”的应用程序一次可能发送几个字节,这会在TCP连接上造成巨大的开销,因为每个TCP数据包都包括一个TCP报头、一个IP报头和一个低层有线传输协议的报头。所有这些报头加起来,对于只包含几个字节的数据包,报头加起来远远超过数据

不幸的是,不仅糟糕的应用程序表现出这种行为。一大类应用程序需要处理人类和我们不耐烦地看我们在做什么。当您在ssh会话中键入几个字符时,您希望远程计算机将立即接收这些字符并开始处理它们。如果键入的字符是中断字符,则这一点尤为重要。因此,在这些情况下,即使会有传输开销,立即发送数据也很重要。因此,通过设置
TCP\u NODELAY
选项,可以在连接上禁用Nagle算法。(除非需要,否则不要这样做。)


关于TCP的经典参考是20世纪90年代由编写的TCP图解系列。尽管随着时间的推移,这些书仍然是对理解互联网传输协议感兴趣的人的必读之书,我认为这表明基本算法基本上保持不变。

定义“数据包发送”:我认为是TCPyes,TCP。老实说,我仍然不太清楚纳格尔是如何工作的。我还在研究是否还有其他算法像Nagle算法。谢谢你的回答。)很有帮助