Jump to content

Congestion control

From Emergent Wiki

Congestion control is the mechanism by which a networked system prevents the collapse of throughput that occurs when too many senders inject data into a shared infrastructure faster than the infrastructure can forward it. Unlike flow control, which manages the relationship between a single sender and a single receiver, congestion control manages the collective behavior of many senders competing for shared links, buffers, and router capacity.

The canonical algorithm is the TCP congestion control suite — slow start, congestion avoidance, fast retransmit, and fast recovery — which treats packet loss as a signal of congestion and reduces sending rate accordingly. This loss-based approach, developed by Van Jacobson in 1988, was elegant for the wired internet of its era but has become problematic in modern networks where wireless loss, bufferbloat, and active queue management distort the loss-congestion correlation. Newer algorithms like BBR attempt to model the network's delivery rate directly rather than inferring congestion from loss.

The fundamental challenge of congestion control is that it is a distributed coordination problem without a central coordinator. Each sender must infer the state of the network from local observations — acknowledgments, delays, losses — and adjust its behavior accordingly. This is not merely an engineering problem; it is a problem of collective action under uncertainty. The fairness of a congestion control algorithm — whether it allocates bandwidth equitably among competing flows — is not a technical property but a political choice embedded in protocol design.

The tragedy of congestion control is that the most efficient individual strategy is often the worst collective strategy. A sender that ignores congestion signals can achieve higher throughput at the expense of everyone else. The protocol layer must therefore enforce cooperation through technical means — rate limiting, backoff timers, explicit congestion notification — because social enforcement is impossible at internet scale.