Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Deficit weighted round robin is a packet-scheduling method that rotates among queues and gives each one a byte allowance, called a quantum. A deficit counter tracks byte credit left over from a visit. Assigning queues different quantum sizes gives them different intended service shares when they remain backlogged. The established name in the standards material is Deficit Round Robin (DRR); “deficit weighted round robin” describes DRR used with different per-queue quanta, rather than a universally standardized name or acronym.

How deficit weighted round robin works

A scheduler maintains a queue for each traffic class or flow it is serving. On each turn, it adds that queue’s quantum to the queue’s deficit credit. It then sends packets while their sizes fit within the available credit, subtracting each packet’s size in bytes. If the remaining credit is too small for the next packet, the scheduler moves to another queue. Depending on the variant, unused credit carries forward to a later visit.

  1. Maintain a queue for each class or flow being scheduled.
  2. Assign each queue a quantum measured in bytes.
  3. When a queue is visited, add its quantum to its deficit counter.
  4. Send packets that fit within the available credit, subtracting each packet’s byte size.
  5. When the next packet does not fit, move to the next queue; retain or reset unused credit according to the particular implementation.

RFC 7806 describes DRR as using byte-based quanta and carrying a waiting quantum when a dequeue opportunity is not fully used. RFC 8290 describes FQ-CoDel’s variant as tracking byte credits, subtracting packet sizes, and adding a quantum when credits reach zero or less. Because variants may handle empty queues and retained credit differently, their specific documentation is needed for exact pseudocode.

Why the deficit counter is important

A scheduler that grants a fixed number of packets per turn can give very different byte service when packet sizes vary. DRR accounts for packet size in bytes instead. For example, with a quantum large enough for three small packets, one queue might send three in a visit while another queue sends one packet that uses the same byte allowance. The method therefore avoids equating one small packet with one large packet simply because each counts as one packet.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The IETF’s RFC 7806 summarizes the design this way: “The Deficit Round Robin [DRR] model modifies the quanta to bytes and deals with variable length packets.”

How quantum sizes express weights

A queue receives more byte credit per round when it has a larger quantum. If two continuously backlogged queues are assigned quanta in a 2:1 ratio, that is a straightforward way to aim for byte service in approximately the same ratio. It is an intended relative allocation, not a guarantee of exact throughput: results also depend on which queues are active, packet sizes, configuration, and implementation details.

The foundational paper by M. Shreedhar and G. Varghese, “Efficient Fair Queuing Using Deficit Round Robin,” appeared in IEEE/ACM Transactions on Networking in June 1996. Its cited description explains that a flow seeking a larger relative bandwidth allocation can be assigned a corresponding quantum. RFC 7806 likewise describes the per-round quantum as the intended number of bytes dequeued per round.

How DRR differs from FQ-CoDel

FQ-CoDel is not another name for plain DRR. RFC 8290 describes FQ-CoDel as a combined packet scheduler and active queue management algorithm. It uses a modified DRR scheduler alongside CoDel, which manages queue delay, and separates queues into “new” and “old” groups. DRR describes a way to schedule queues; CoDel adds delay management.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In RFC 8290’s FQ-CoDel design, the default quantum is 1514 bytes, corresponding in that RFC to an Ethernet MTU plus a 14-byte hardware header. That figure is specific to the documented FQ-CoDel default, not a universal DRR quantum. The RFC also describes default flow hashing based on protocol, source and destination addresses, and source and destination ports; hash collisions can place multiple flows in one internal queue. These are FQ-CoDel details, not part of the general DRR definition.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What to compare when evaluating a scheduler

When comparing DRR with another packet scheduler, focus on the properties that determine how it shares service and manages queues:

  • Accounting unit: Does it allocate service by bytes or by packet count?
  • Weight mapping: How do configured weights translate into per-queue quanta?
  • Deficit handling: Is unused credit carried forward or reset, and what happens when a queue becomes empty?
  • Granularity and overhead: How large a quantum is used, and what scheduling overhead does that imply? RFC 8290 notes that quantum size determines scheduling granularity and that too small a quantum can increase scheduling overhead.
  • Queue management: Does the implementation add delay control or other active queue management beyond scheduling?

Performance comparisons such as throughput, latency, or implementation cost require evidence for the specific implementation and test conditions; they do not follow from the algorithm’s definition alone.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.