The TCP-NODELAY is actually an option in the TCP/IP stack, therefore what follows is a description based on the documentation for various operating systems, and may not apply to your specific TCP/IP implementation.
Each time a workstation sends a network packet to another one, the receiving workstation must send an ACK (acknowledgement packet) back to the sender. This is the basic idea that makes TCP/IP a reliable protocol.
Usually, this acknowledgement packet is delayed for a small amount of time in the hope to combine the acknowledgement of several TCP/IP packets in one single reply (this mechanism is named 'delayed ACK'). Similarly, the sending workstation will try and collapse a few small TCP messages to a given receiver in one single network packet (this mechanism is named 'Nagle algorithm'). These algorithms are designed to reduce the number of packets sent over the network to improve overall throughput, but they can cause an increase in latency on individual packets.
TCP-NODELAY disables both the delayed ACK and the Nagle algorithm on sockets. |