Network congestion avoidance
|
Network congestion avoidance is a process used in computer networks to avoid congestion. The fundamental problem is that all network resources are limited, including router processing time and link throughput. Users can easily overload certain networking resources (as in a denial of service attack), making the network unusable, unless steps are taken to prevent this. Implementations of connection-oriented protocols, such as the widely-used TCP protocol, generally watch for packet errors, losses, or delays (see Quality of Service) in order to adjust the transmit speed. There are many different network congestion avoidance processes, since there are a number of different trade-offs available.
Contents |
TCP/IP congestion avoidance
Problems occur when many concurrent TCP-flows are experiencing port queue buffer tail-drops. Then TCP's automatic congestion avoidance is not enough. All flows that experience port queue buffer tail-drop, will begin a TCP retrain at the same moment - this is called TCP global synchronization.
RED
One solution is to use RED (Random Early Detection) on network equipments port queue buffer. On network equipment ports with more than one queue buffer, WRED (Weighted Random Early Detection) could be used if available. RED indirectly signals to sender and receiver by deleting some packets, eg. when the average queue buffer lengths are more than 50% filled and deletes exponentially more and more packets, when the average queue buffer lengths are approaching 100%. The average queue buffer lengths are computed over 1 second at a time.
Flowbased-RED/WRED
Some network equipment are equipped with ports that can follow and measure each flow (flowbased-RED/WRED) and are hereby able to signal to a too big bandwidth flow according to some QoS policy. A policy could divide the bandwidth among all flows by some criteria.
IP ECN
Another approach is to use IP ECN (Explicit Congestion Notification). ECN is only used when the two hosts signal that they want to use it. With this method, an ECN bit is used to signal that there is explicit congestion. This is better in some ways than the indirect packet delete congestion notification performed by the RED/WRED algorithms, but it requires explicit support by both hosts to be effective. Some outdated or buggy network equipment drops packets with the ECN bit set, rather than ignoring the bit.
Cisco AQM: Dynamic buffer limiting (DBL)
Cisco has taken a step further in their Catalyst 4000 series with engine IV. Engine IV has the possibility to classify all connection-oriented flows in "aggressive" (bad) and "adaptive" (good). It ensures that no flows fill the port queues for a long time. DBL can utilize IP ECN instead of packet-delete-signalling. See the sections in: Active Queue Management (http://www.cisco.com/univercd/cc/td/doc/product/lan/cat4000/12_1_19/config/qos.htm#1271743) and Enabling Dynamic Buffer Limiting (http://www.cisco.com/univercd/cc/td/doc/product/lan/cat4000/12_1_19/config/qos.htm#1271759).
Good things about active queue management (RED, WRED, ECN, Cisco DBL)
"Recommendations on Queue Management and Congestion Avoidance in the Internet" (http://rfc.sunsite.dk/rfc/rfc2309.html) (RFC 2309) states that:
- Less packets will be dropped with Active Queue Management (AQM).
- The link utilization will increase because less TCP global synchronization will occur.
- By keeping the average queue size small, queue management will reduce the delays and jitter seen by flows.
- The connection bandwidth will be more equally shared among connection oriented flows, even without flow-based RED or WRED.
See also
External links
- Sally Floyd: RED (Random Early Detection) Queue Management (http://www.icir.org/floyd/red.html)
- April 1998, RFC2309: Recommendations on Queue Management and Congestion Avoidance in the Internet (http://rfc.sunsite.dk/rfc/rfc2309.html), Original RFC2309 (http://www.ietf.org/rfc/rfc2309.txt)
- RFC2001: TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms (http://rfc.sunsite.dk/rfc/rfc2001.html), Original RFC2001 (http://www.ietf.org/rfc/rfc2001.txt)
- TCP Congestion Control (http://rfc.sunsite.dk/rfc/rfc2581.html), Original RFC2581 (http://www.ietf.org/rfc/rfc2581.txt)
- TCP Increasing TCP's Initial Window (http://rfc.sunsite.dk/rfc/rfc3390.html), Original RFC3390 (http://www.ietf.org/rfc/rfc3390.txt)
- The Addition of Explicit Congestion Notification (ECN) to IP (http://rfc.sunsite.dk/rfc/rfc3168.html), Original RFC3168 (http://www.ietf.org/rfc/rfc3168.txt)
- Linktionary term: Queuing (http://www.linktionary.com/q/queuing.html)
- Comparative study of RED, ECN and TCP Rate Control (1999) (http://citeseer.nj.nec.com/111476.html)
- Pierre-Francois Quet, Sriram Chellappan, Arjan Durresi, Mukundan Sridharan, Hitay Ozbay, Raj Jain, " Guidelines for optimizing Multi-Level ECN, using fluid flow based TCP model" (http://www.cis.ohio-state.edu/~jain/papers/MECN_CTH.htm)
- Sally Floyd, Ratul Mahajan, David Wetherall: RED-PD: RED with Preferential Dropping (http://www.cs.washington.edu/homes/ratul/red-pd/)
- TCP Tunnels: Avoiding Congestion Collapse (2000) (http://citeseer.nj.nec.com/lee00tcp.html)
da:Network congestion avoidance de:Network congestion avoidance