Queuing/Congestion Management
Last updated
Last updated
When a network device receives traffic at a faster rate than it can forward the traffic out of the appropriate interface, packets are placed in that interface's queue as they wait to be forwarded.
When the queue becomes full, packets that don't fit in the queue are dropped (tail drop).
RED and WRED drop packets early to avoid tail drop.
An essential part of QoS is the use of multiple queues.
This is where classification plays a role. The device can match traffic based on various factors (for example the DSCP marking in the IP header) and then place it in the appropriate queue.
However, the device is only able to forward one frame out of an interface at once, so a scheduler is used to decide which queue traffic is forwarded from next.
Prioritization allows the scheduler to give certain queues more priority than others.
A common scheduling method is weighted round-robin.
round-robin = packets are taken from each queue in order, cyclically
weighted = more data is taken from high priority each time the scheduler reaches that queue.
CBWFQ (Class-Based Weighted Fair Queuing) is a popular method of scheduling, using a weighted round-robin scheduler while guaranteeing each queue a certain percentage of the interface's bandwidth during congestion.
Round-robin scheduling is not ideal for voice/video traffic. Even if the voice/video traffic receives a guaranteed minimum amount of bandwidth, round-robin can add delay and jitter because even the high priority queues have to wait their turn in the scheduler.
LLQ (Low Latency Queuing) designates one (or more) queues as strict priority queues.
This means that if there is traffic in the queue, the scheduler will always take the next packet from that queue until it is empty.
This is very effective for reducing the delay and jitter of voice/video traffic.
However, it has the downside of potentially starving other queues if there is always traffic in the designated strict priority queue.
Policing (next slide) can control the amount of traffic allowed in the strict priority queue so that it can't take all of the link's bandwidth.