Rate Guarantee In Weighted Fair Queueing WFQ
- All traffic is treated equally
- If B is the size of the queue and R is the output rate (the departure rate), then queue delay <= B / R
Strict Priority Queueing
- There is one strict priority queue and one low priority queue
- The low priority queue is examined only when there the high priority queue is empty
- Strict Priority Queueing leads to a starvation phenomena
- A better alternative is weighted priority queueing
Weighted Fair Queueing
- Packets are processed packet by packet, not in bit by bit
- Each queue has an outgoing rate (service rate) Ri and a weight wi. The egress link has a rate R. The service rate of each queue is calculated as follows: Ri = (wi / ∑wj ) * R
- If packets are of the same length, queues will be visited in “Rounds”. At each round wi bits are taken from queuei.
- WFQ calculates the Finishing time of each packet.
- Knowing the size of the queue L and the Starting time of the packet in the queue Sk, then the Finishing time of the packet Fk = Sk + (L / wi)
- Knowing the size of the queuei and the Finishing time of the last packet in the queue Fk-1, then we can calculate the Starting time of the next packet arriving to the queue Sk = max (Fk-1, now)
- At the end of all queues, there is a scheduler right before the egress link that examines the head of the line of each queue, takes the packet with the lowest Finishing time and transfer it to the egress link.
- It gives a “fair share” of the outgoing link to all flows. And it gives a rate guarantee to each incoming flow (Ri).
- If packets were to be treated bit by bit, there will be a variance of Δ between the Finishing time in the bit-by-bit scheme and the Finishing time in the packet-by-packet scheme. Δ = LPmax / R, where LPmax is the maximum size of a packet.