As mentioned in a previous QoS tip, congestion avoidance is a QoS component that prepares for and prevents congestion...
on typical bottlenecks throughout the data network. These techniques all involve dropping traffic during times of congestion, but the differences within these methods are the determining factors behind which packets of traffic to drop. Due to the special network performance requirements that are essential to transmitting voice traffic across a data infrastructure, congestion avoidance methods affect other prioritized traffic to prevent bottlenecks and assure voice quality. This tip provides the details of the congestion avoidance methods available today.
Tail Drop. Tail drop is typically the default congestion avoidance mechanism. Similar to the First-In First-Out (FIFO) default congestion management queuing method, there is no priority assigned to traffic flows in Tail Drop. Once the output queue or buffer on an outbound interface is full, tail drop simply drops any additional packets until the buffer is no longer at maximum capacity.
The drawback to utilizing Tail Drop occurs when multiple TCP sessions are affected by the packet discarding. Due to the send/acknowledgement behavior of TCP, the TCP senders will slow their transmission rate by half when they discover a drop. This is known as TCP slow start. When drops occur during multiple, simultaneous TCP flows, the resulting slow-start state will decelerate traffic severely, which underutilizes the available bandwidth. The traffic flows then increase their transmit rate until the outbound queue limit is attained again and prompts another slow-start state. This wave of traffic flow is known as global synchronization, a poor use of available bandwidth.
Random Early Detection (RED). This technique randomly discards packets during minimal congestion periods but before high or maximum congestion is reached by concentrating on one TCP source until the congestion is cleared. A minimum queue limit is the parameter that activates RED. Once the average queue size reaches this limit, RED randomly selects one traffic flow at a time to slow down its transmission rate until the minor congestion is cleared. This prevents global synchronization during times of "minor" congestion and better utilizes the available bandwidth. However, if the queue limit continues to build and ultimately reaches a maximum threshold, the tail drop technique would be in effect and all traffic flows would have to decrease their transmit rates.
Weighted Random Early Detection (WRED). This technique is Cisco's version of RED that drops packets based on bits in the ToS byte of the IP Header (IP Precedence or DSCP values). Its operation in terms of the minimum threshold to activate WRED and the maximum threshold to activate Tail Drop is similar to the RED technique. The difference is that the IP Precedence or DSCP values within packets decide which packets are dropped during times of congestion. Packets marked with a low priority have an increased likelihood of being dropped. Non-IP traffic is marked with a priority of 0 and will be dropped before IP traffic.
Because Voice over IP traffic is not designed to tolerate packet loss, these congestion avoidance mechanisms should never be configured for voice queues. The importance of these techniques lies in their ability to control congestion by affecting OTHER prioritized traffic to avoid congestion and guarantee the quality of voice traffic.
About the author: Richard Parsons (CCIE#5719) is a Manager of Professional Services for Callisma Inc., a wholly owned subsidiary of SBC. He has built a solid foundation in networking concepts, advanced troubleshooting, and monitoring in areas such as optical, ATM, VoIP, routed, routing, and storage infrastructures. Rich resides in Atlanta GA, and is a graduate of Clemson University. His background includes senior and principal consulting positions at International Network Services, Lucent, and Callisma.