Queue starvation occurs when a lower-priority queue receives service very infrequently or not at all because higher-priority queues remain active. In Priority Queuing (PQ), the scheduler scans queues from highest to lowest and transmits one packet at a time; a lower queue runs only when all higher queues are empty. section 10.4.1
Recognize the main scheduling trade-offs:
- PQ can starve lower-priority queues because higher-priority traffic is always selected first. section 10.4.1
- CBWFQ avoids starvation by guaranteeing each queue a minimum bandwidth, but delay-sensitive packets may wait during round-robin service. section 10.4.2
- LLQ protects delay-sensitive traffic with a priority queue while limiting its traffic rate to prevent starvation of other queues. section 10.4.3
LLQ protection
If EF-marked packets are limited to 30 percent of interface bandwidth, excess traffic is dropped or re-marked into a lower queue instead of monopolizing the priority queue. section 10.4.3
Figure 10.18 Priority Queuing (PQ). Packets are classified based on markings (the example markings in the figure are arbitrary) and added to a queue. The scheduler only services a lower-priority queue if all higher-priority queues are empty.
Shows classification into ranked queues and the rule that lower-priority queues are serviced only after higher-priority queues empty. section 10.4.1
