Strict priority queuing

From Hill2dot0

One of the first responses to the disadvantages of FIFO in a congested environment is strict priority queuing (SPQ), also known as just priority queuing (PQ). Strict priority queuing assumes that types of traffic can be differentiated and treated preferentially. Separate FIFO queues are created for each defined priority level and the arriving traffic is sorted into its proper queue as it arrives. Thus the first task of configuring strict priority queuing is to determine the traffic classifications. Typically between two and five levels of priority are defined (e.g., high, medium, normal, and low), although there is no theoretical limit to how many levels can be defined. More queues, however, means more complexity in running the algorithm.

At the service side of the queue, the processing rule is simple: higher priority FIFO queues are always processed to completion before lower priority queues are processed. The visual shows traffic randomly entering a router and leaving the router according to its sorted priority. In a three-queue system, if the two highest priority queues had no packets buffered, then the lowest priority queue would be serviced. The moment a higher priority packet arrived in its FIFO queue, however, servicing of the lower priority packets would be interrupted in favor of the higher priority queue. In fact, this is one of the most distinct advantages of strict priority queuing: no other queuing strategy gives high priority traffic better treatment. In fact, strict priority queuing is the gold standard for high priority traffic.

Despite its simplicity, strict priority queuing suffers from significant disadvantages. The greatest disadvantage relates to the way strict priority queuing treats queues. High-priority packets are always processed before those of less priority. Medium-priority packets are always processed before low-priority packets. If the amount of high-priority traffic is great, other queues might never empty, leading to worse performance for the low-priority and medium-priority traffic than if a single FIFO queue were used.

This is a good opportunity to note the relationship between admission control and queuing strategies. If the admission control function is preventing the network from saturating with high priority traffic, then strict priority queuing would give high priority traffic the best possible treatment, without starving the lower priority traffic. In such a context, strict priority queuing can still play an important role.