OECG chapter 15 is a breakdown of the major queuing methods employed in Cisco routers and switches. The mechanics of the queuing methods are described. I’ll break up each queuing method into their own blog post as I go through them. It will make for shorter blog posts, but it should keep the concepts a little tidier.
Think of a queue as a buffer where packets can line up when they can’t be sent immediately. If you read documentation on cisco.com, you’ll see queues conceptually referred to as a bucket. Queuing is the art of playing with your buckets such that important traffic makes it across the wire in a timely fashion, and that other kinds of traffic have a fair shot at the pipe.
Routers have both hardware and software queues. The software queue is the one we typically think about. The hardware queue is the one that we forget about. When a packet leaves the software queue, it heads next to the hardware queue, before being sent on its way. This is known as the transmit queue or ring.
- It is first-in, first-out (FIFO).
- Does not require a software interrupt to the CPU to process the next packet, allowing for full bandwidth utilization.
- Is not affected by IOS queuing.
- IOS will shrink the length of the hardware queue to something smaller than the default if a software queue is configured. This because shortening the hardware queue increases the chance that the packet will be in the software queue, and therefore in control of IOS queuing for a longer period of time.
- You can tweak the hardware queue length, but that’s all. Use the “tx-ring-limit
” command to do this.
Moving into software queues then, there are several types of queuing tools available to us.
- Classification – looking at a packet header and determining which queue the packet belongs in.
- Drop policy – determining which packets to drop when queues are full.
- Scheduling – determining which packet is the next one to be forwarded from the queue.
- Max queues – the number of packet classifications used by a particular queuing tool.
- Max queue length – the maximum number of packets in a single queue.
The next several posts will be on specific queuing tools: FIFO, PQ, CQ, WFQ, CBWFQ and LLQ.