You can monitor the network traffic load on an interface to anticipate congestion. Congestion can be avoided by dropping packets when needed. Tail drop is the most basic mechanism for avoiding congestion. Interface output queues fill during periods of congestion. When an output queue is full, the tail drop mechanism kicks in, and packets are dropped from the tail of the queue until congestion is reduced and the queue is no longer full. Tail drop does not differentiate between classes of traffic and drops packets at the tail of an output queue indiscriminately.

Global synchronization is a problem that occurs when tail drop is used as the congestion avoidance mechanism. Tail drop results in a large number of packets getting dropped at once. In response to packet drops, multiple senders of TCP (Transmission Control Protocol) traffic reduce their transmission rates at around the same time. The same TCP senders then increase their transmission rates around the same time when congestion is reduced. It results in periods of high link utilization followed by periods of low utilization.

WRED (Weighted Random Early Detection) is a congestion avoidance mechanism that prevents the problem of global synchronization associated with tail drop. When an output queue begins to experience congestion, WRED starts dropping packetsĀ selectively. A TCP sender experiencing packet drops reduces its transmission rate. By dropping some packets earlier than the point when the queue is full, WRED prevents the situation where a large number of packets get dropped at once. WRED not only reduces the chances of global synchronization, it also increases the utilization of transmission bandwidth.

WRED should be configured on egress ports.