Weighted random early detection

Weighted random early detection (WRED) is a queueing discipline for a network scheduler suited for congestion avoidance.[1] It is an extension to random early detection (RED) where a single queue may have several different queue thresholds. Each queue threshold is associated to a particular traffic class.

For example, a queue may have lower thresholds for lower priority packet. A queue buildup will cause the lower priority packets to be dropped, hence protecting the higher priority packets in the same queue. In this way quality of service prioritization is made possible for important packets from a pool of packets using the same buffer.[2]

It is more likely that standard traffic will be dropped instead of higher prioritized traffic.

Restrictions

On Cisco switches WRED is restricted to

Non-IP traffic will be dropped more often than TCP/IP traffic because it is treated with the lowest possible precedence.

Functional Description

WRED proceeds in this order when a packet arrives:

Calculation of average queue size

The average queue size depends on the previous average as well as the current size of the queue. The calculation formula is given below:

 avg= o*(1-2^{-n}) + c*(2^{-n})\,\!

where n is the user-configurable exponential weight factor, o is the old average and c is the current queue length. The previous average will be more important for high values of n. Peaks and Lows in queue length will be smoothed by a high value. Low values of n allows the average queue size to stay close to the current queue size.

References