The RFC describes what Nagle calls the "small-packet problem", where an application repeatedly emits data in small chunks, frequently only 1 byte in size.
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.
Where MSS is the maximum segment size, the largest segment that can be sent on this connection, and the window size is the currently acceptable window of unacknowledged data, this can be written in pseudocode as[citation needed] This algorithm interacts badly with TCP delayed acknowledgments (delayed ACK), a feature introduced into TCP at roughly the same time in the early 1980s, but by a different group.
[8] This behavior limits performance for non-pipelined stop-and-wait request-response application protocol such as HTTP with persistent connection.
Applications that expect real-time responses and low latency can react poorly with Nagle's algorithm.
Applications such as networked multiplayer video games or the movement of the mouse in a remotely controlled operating system, expect that actions are sent immediately, while the algorithm purposefully delays transmission, increasing bandwidth efficiency at the expense of one-way latency.
[3] For this reason applications with low-bandwidth time-sensitive transmissions typically use TCP_NODELAY to bypass the Nagle-delayed ACK delay.