Packet Queuing and Dropping in Routers

Routers are critical networking equipment that control the data flow across a network. Routers have one or more input and output interfaces via which packets are received and sent.

Since a router's memory is limited, it may be unable to handle newly incoming packets. This happens when the pace at which packets arrive exceeds the rate at which packets leave the router's memory. New packets are ignored in this circumstance, while older packets are discarded. Routers must implement some sort of queuing discipline as part of their resource allocation algorithms, in order to regulate how packets are stored or discarded as needed.

Queue Congestion and Queuing Disciplines

Because of the limited buffer memory available to router queues, they are prone to congestion. Congestion occurs when the pace of input traffic exceeds the quantity that can be transmitted on the output link. The following are some of the probable reasons for such a situation −

  • The rate of incoming traffic exceeds that of leaving traffic.

  • The entire output capacity is exceeded by the combined traffic from all input interfaces.

  • The router processor is incapable of handling the size of the forwarding table to determine routing paths.

Queue Congestion and Queuing Disciplines

Different disciplines may be followed by routers to select which packets to keep and which packets to drop in such times of congestion to control the allocation of router memory to the packets. As a result, routers have the following key queuing disciplines −

First-In, First-Out Queuing (FIFO)

Most routers use FIFO as their default queuing method. On the server, this usually needs little to no setup. In FIFO, all packets are serviced in the order in which they arrive at the router. New packets attempting to enter the router are discarded when the memory becomes saturated (tail drop).

However, such a system is unsuitable for real-time applications, particularly in congested areas. During periods of congestion, a real-time application such as VoIP, which constantly sends packets, may get hungry and have all of its packets lost.

Prioritization of Queuing (PQ)

Instead of utilizing a single queue, the router divides the memory into many queues based on some measure of priority in Priority Queuing. Following that, each queue is handled in a FIFO fashion, with each queue being cycled through one by one. According to on priority, the queues are labeled as High, Medium, or Low. The High queue packets are always handled before the medium queue packets.

In Priority Queuing, the router splits the memory into multiple queues based on some measure of priority rather than using a single queue. After then, each queue is dealt with in a FIFO manner, with each queue being cycled through one by one. The queues are labeled as High, Medium, or Low, depending on their priority. The packets in the high queue are always processed first.

Fair Weighted Queuing (WFQ)

WFQ (Weighted Fair Queuing) generates queues based on traffic flows and distributes bandwidth to them depending on priority. The bandwidths for the sub-queues are assigned dynamically. Assume there are three queues, each with a bandwidth percentage of 20%, 30%, and 50%, while they are all active.