我一直在研究Nagle的算法出于闲置的好奇心。我理解它背后的基本概念(TCP数据包包含大量开销,尤其是在处理小型有效负载时),但我不确定我是否赞同实现。Nagle的算法不清楚
我读维基百科this article,但我仍然在它的工作原理还不清楚。我们以Telnet连接为例。连接建立后,我开始打字。比方说,我输入三个字符(例如cat
)并返回。现在我们正在说cat\r\n
,它仍然只有5个字节。我认为这不会被发送,直到我们排队足够的字节发送 - 然而,它确实得到立即发送(从用户的角度),因为cat
立即击中后返回执行。
我想我有一个根本性的误解这里的算法是如何工作的,特别是关于位,其中“是否有未经证实的数据仍然在管,入队,否则立即发送。”
虽然这篇文章谈论的是telnet会话是一个问题,所以它会立即发送。 – cloudhead 2009-06-24 19:38:26