Why do we need congestion control?
Srinivasan Keshav <[email protected]>
| Newsgroups | gmane.network.end2end |
|---|---|
| Message-ID | <[email protected]> |
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 mo re 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, keshav [1] Congestion and Congestion Control, Presentation at IRTF ICCRG Workshop, PFLDnet, 2007, Los Angeles (California), USA, February 2007. http://blizzard.cs.uwaterloo.ca/keshav/home/Papers/data/07/congestion.pdf [2] S. Keshav, Congestion Control in Computer Networks PhD Thesis, published as UC Berkeley TR-654, September 1991 http://blizzard.cs.uwaterloo.ca/keshav/home/Papers/data/91/thesis/ch1.pdf [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. http://www.princeton.edu/~chiangm/decomptutorial.pdf