ed on a scheme of numerical priorities that are assigned to each queue. The highest-priority queue, which hap- pens to contain packets, will always be serviced before others. This may sound good, but lower-pri- ority queues may end up being starved as a side effect. The fair queuing (FQ) algorithm divides the available bandwidth by the number of available flows. By making the fundamental assumption that all flows occur in packets of the same size and by tackling one queue after the other in a sequential fashion, a certain degree of perceived fairness can be attained. The round robin (RR) algorithm, as the name implies, tackles one queue after the other by scheduling to transmit a certain amount of traffic from each queue. Some interesting variations of these schedulers include the weighted fair queuing (WFQ) algo- rithm, which also takes into consideration the packet size that is associated with each flow. Based on a weight factor associated with each queue, it reallocates bandwidth between flows, especially in cases where significant differences in the packet size appear. A variant of WFQ is guaranteed bandwidth WFQ (GB-WFQ), which provides guaranteed bandwidth (such as CBR traffic in ATM) for a series of flows that are weighted differently. A similar approach is taken with a weighted variation of the RR algorithm known as weighted round robin (WRR). Traffic is forwarded essentially in a sequential fash- ion as in RR, but based on the weight assigned on each queue, some of these queues end up deliber- ately and predictably being serviced more often. To address the possible complaints of unfairness associated with weighted queues and to look after the case of variable-length packet queues, two additional variations of the last two schedulers have come to existence called deficit round robin (DRR) and deficit weighted round robin (DWRR). DRR is aware of deficits accumulated in the frequency of visits of each queue at each round. It consistently tries to make it up to deficient queues as time goes by revisiting the