Nagle's algorithm: Difference between revisions

Content deleted Content added
Capitalizing "RFC"
pronoun; MOS:TENSE
Line 3:
'''Nagle's algorithm''' is a means of improving the efficiency of [[TCP/IP]] networks by reducing the number of packets that need to be sent over the network. It was defined by John Nagle while working for [[Ford Aerospace]]. It was published in 1984 as a [[Request for Comments]] (RFC) with title ''Congestion Control in IP/TCP Internetworks'' in {{IETF RFC|896}}.
 
The RFC describes what heNagle calledcalls the "small-packet problem", where an application repeatedly emits data in small chunks, frequently only 1 [[byte]] in size. Since [[Transmission Control Protocol|TCP]] packets have a 40-byte header (20 bytes for TCP, 20 bytes for [[IPv4]]), this results in a 41-byte packet for 1 byte of useful information, a huge overhead. This situation often occurs in [[Telnet]] sessions, where most keypresses generate a single byte of data that is transmitted immediately. Worse, over slow links, many such packets can be in transit at the same time, potentially leading to [[congestion collapse]].
 
Nagle's algorithm works by combining a number of small outgoing messages and sending them all at once. Specifically, as long as there is a sent packet for which the sender has received no acknowledgment, the sender should keep buffering its output until it has a full packet's worth of output, thus allowing output to be sent all at once.