CITS3002 Computer Networks  
prev
next CITS3002 help3002 CITS3002 schedule  

TCP/IP Congestion Control

Perhaps the most important, and certainly the most studied and 'tinkered with' aspect of TCP/IP is its congestion control.

TCP attempts to avoid congestion collapse by using end-to-end packet loss as the metric of congestion.

  • The TCP receiver normally fills the Window field of an acknowledgment header to report how much additional buffer space (the receiver's window size) is available for further data.

  • When a message is lost, the TCP sender could naively retransmit enough data to fill the receiver's buffers. Instead, TCP commences by sending a single packet. If an acknowledgment for this single packet returns, the sender next transmits two packets; if all of their acknowledgments return, up to four, and so on.

    In effect, the protocol grows (doubles) the sender's sliding window until packets are lost; it then restarts at 1.

  • TCP/IP responds to congestion by backing-off quickly, and avoids further congestion by slowly increasing offered traffic.

In combination with its closely related slow-start algorithm for new connections, TCP is capable of both avoiding and recovering from most congestion.

Ref: RFC 2001.


CITS3002 Computer Networks, Lecture 8, Transport layer protocols and APIs, p7, 24th April 2024.