How Does LLQ Work?

How Does LLQ Work?
Once you know how CBWFQ works, LLQ is easy to understand. LLQ creates a
strict priority queue that you might imagine as resting on top of all other queues.
This priority queue is emptied before any other queue is serviced. A strict priority
queue is often referred to as an exhaustive queue, since packets continue to
be removed from the queue and transmitted until it is empty.Only after the strict
priority queue is totally empty are the other queues serviced in the order determined
by whatever weighting has been configured by the CBWFQ bandwidth
statements. If you’re thinking this sounds an awful lot like the much older QoS
technique, simply called “Priority Queuing,” you’re absolutely correct.Think of
LLQ as a hybrid, formed from the union of CBWFQ and Priority Queuing.
NOTE
When LLQ was first created, it was referred to as PQCBWFQ, or priority
queuing with class-based weighted fair queuing. Although this lengthy
acronym was appropriate because it clearly described the combined
functionality of PQ with CBWFQ, it has been changed in most documentation
to simply LLQ.
If packets come into the priority queue while another queue is being serviced,
the packets waiting in the priority queue will be the very next packets sent
out the interface after the current packet has been transmitted. In this way, the
delay between packets sent from the priority queue is minimized, and low
latency service is delivered.The maximum time between priority packets arriving
at the far end would occur in the case in which a packet arrives in the previously
empty priority queue as soon as the router starts to transmit a large packet.The
largest possible packet is referred to as the maximum transmission unit (MTU),
which is 1500 bytes on Ethernet.The priority packet will have to wait for the
nonpriority packet to finish transmitting.Thus, the longest delay possible between
arriving priority packets is limited to the serialization time of the MTU plus the
serialization time of the priority packet itself.The serialization time is calculated
by dividing the size of the packet by the link speed (packet size/link speed).We
discuss the implications of serialization delay and how to overcome it in more
detail in a later section on Link Fragmentation and Interleaving (LFI).