Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Algorithm

Deficit round robin

Network Algorithm

Deficit round robin, often shortened to DRR and also called deficit-weighted round robin, is a scheduling algorithm used by a network scheduler to decide which queued packets to send next. It is a packet-based approximation of the ideal generalized processor sharing policy, in the same family as weighted fair queueing. Each flow is given a quantum, and each time the scheduler visits a non-empty queue it adds that quantum to the flow's deficit counter, then sends packets from the head of the queue for as long as the counter covers the next packet's size. Any unused credit carries over to the next round, and an emptied queue has its counter reset to zero. Because it does no sorting, its cost per decision is constant when the quantum is at least the largest packet size, which is cheaper than weighted fair queueing, although it gives somewhat higher latency. It was proposed by M. Shreedhar and George Varghese in 1995, and modified versions run in Cisco and Juniper routers and in the Linux kernel.

Facts
Time Complexity
Time Complexity (category)
Constant Time -- O(1) 1
Connections

Credited To

Source Deficit round robin (Wikipedia)

In Field

Source Deficit round robin (Wikipedia)

Invented

Source Deficit round robin (Wikipedia)
Sources
1. Deficit round robin (Wikipedia)
  • Lead [complexity-category]
    an efficient (with O(1) complexity) and fair algorithm
  • In Group: Scheduling Algorithms, Lead
    is a scheduling algorithm for the network scheduler
  • In Field: Computer Networking, Lead
    is a scheduling algorithm for the network scheduler
  • Credited To: George Varghese, Lead [credited-to]
    It was proposed by M. Shreedhar and G. Varghese in 1995
  • Invented: George Varghese, Lead [credited-to]
    It was proposed by M. Shreedhar and G. Varghese in 1995
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.