[e2e] Why do we need congestion control?

Srinivasan Keshav keshav at uwaterloo.ca
Tue Mar 5 06:04:48 PST 2013

To answer this question, I put together some slides for a presentation at the IRTF ICCRG Workshop in 2007 [1]. In a nutshell, to save costs, we always size a shared resource (such as a link or a router) smaller than the sum of peak demands. This can result in transient or persistent overloads, reducing user-perceived performance. Transient overloads are easily relieved by a buffer, but persistent overload requires reductions of source loads, which is the role of congestion control. Lacking congestion control, or worse, with an inappropriate response to a performance problem (such as by increasing the load), shared network resources are always overloaded leading to delays, losses, and eventually collapse, where every packet that is sent is a retransmission and no source makes progress. A more detailed description can also be found in chapter 1 of my PhD thesis [2].

Incidentally, the distributed optimization approach that Jon mentioned is described beautifully in [3]. 

hope this helps, 

[1] Congestion and Congestion Control, Presentation at IRTF ICCRG Workshop, PFLDnet, 2007, Los Angeles (California), USA, February 2007. 

[2] S. Keshav, Congestion Control in Computer Networks PhD Thesis, published as UC Berkeley TR-654, September 1991

[3] Palomar, Daniel P., and Mung Chiang. "A tutorial on decomposition methods for network utility maximization." Selected Areas in Communications, IEEE Journal on 24.8 (2006): 1439-1451.

More information about the end2end-interest mailing list