Buffer Bloat

Stephen Hemminger

  • Most applications don’t choose the correct priority.
  • High priority queue will starve the other queues
  • Random Exponential Drop ok, but hard to work out what to drop when…
  • Hierarachical works when you know the traffic types and have someone to admin
  • Stochastic fair queue (128 bottles ). Random hash of the flow and goes into each queue.
  • Controlled delay. Drops out data that is 5ms too old
    • works regardless of speed
  • SFQ + Controlled delay (FQC)
    • If hash collision occurs, still 5ms
  • Bottle neck needs to be where you can control
  • Patch to make sockets not able to fill queues faster than they can exit the last queue
  • Some wireless cards have queues
  • FQC currently the best in the Linux Kernel


  • Get speed test, configure queues to be correct it at the router
  • Move bottle neck to router


  • Different speeds make moving the bottle neck harder


  • Run ICSI Netalyzr

Windows XP

  • Max windows 64k

Windows 7

  • Bandwidth 80mbit