我一直在研究Nagle的算法出於閒置的好奇心。我理解它背後的基本概念(TCP數據包包含大量開銷,尤其是在處理小型有效負載時),但我不確定我是否贊同實現。Nagle的算法不清楚
我讀維基百科this article,但我仍然在它的工作原理還不清楚。我們以Telnet連接爲例。連接建立後,我開始打字。比方說,我輸入三個字符(例如cat
)並返回。現在我們正在說cat\r\n
,它仍然只有5個字節。我認爲這不會被髮送,直到我們排隊足夠的字節發送 - 然而,它確實得到立即發送(從用戶的角度),因爲cat
立即擊中後返回執行。
我想我有一個根本性的誤解這裏的算法是如何工作的,特別是關於位,其中「是否有未經證實的數據仍然在管,入隊,否則立即發送。」
雖然這篇文章談論的是telnet會話是一個問題,所以它會立即發送。 – cloudhead 2009-06-24 19:38:26