Congestion is often confused with delay. Although they are related phenomena, they are not identical. Delay may or may not, cause congestion. Delay on links is unavoidable, since traffic sometimes exceeds link service rates for brief periods. Long queues may develop in one or more switches as a consequence of this link delay.
Suppose there are sufficient buffers in the switch so the entirety of the queue can be accommodated in the buffers. Need any other switch know of the delay in this situation? The answer is no. Other switches can go about their business, passing packets into the affected switch with no untoward consequences. In this scenario, delay has occurred, but congestion has not.
Whether delay causes congestion is strictly a function of the size of the buffer pool available to store waiting packets. If adequate buffer space is provided, no congestion occurs. If there is not adequate buffer space, the switch can literally run out of room to store additional packets. If the congestion is serious enough, the switch will have no choice but to discard additional packets.
Congestion is familiar, since it often occurs in vehicular traffic situations. Consider the Garden State Parkway in New Jersey. This high traffic route runs from the population centers in Northern New Jersey to the beautiful beaches of the Jersey Shore. Unfortunately, the Parkway is a toll road, and toll booths are placed on the road every so often. During the summer, the traffic near the shore is great enough that it exceeds the service rate of the toll plazas. Furthermore, there is no buffer space for the waiting vehicles. Traffic can (and does) back up until it begins to affect previous segments of the road. Finally, the local delay at Asbury Park begins to affect traffic flow in Alpine, at the other end of the Parkway. Local delay becomes congestion that can impact the entire network.
Could New Jersey deal with the problem? The State could build enormous circular ramps at the approach to the toll plazas. Cars would be diverted into these “buffers” at times of high traffic. The delay at Asbury Park would remain constant, but traffic would never back up onto the Parkway (if these are really big circular ramps!). Buffer availability could prevent congestion. So too could widening the roads so there is adequate capacity for all of the traffic. Unfortunately, the former approach aggravates delay, and the latter results in an over-designed network that is very expensive to build and maintain.
The science of congestion management includes many elements, including congestion notification and congestion prevention. At the end of the day however, if congestion still occurs, the primary mechanism used for dealing with it is packet discard. Fortunately, New Jersey doesn't deal with its congestion quite so radically!
|<mp3>http://podcast.hill-vt.com/podsnacks/2007q4/congestion.mp3%7Cdownload</mp3> | Congestion|