Bufferbloat Test

See how much your ping rises when your line is busy: real UDP packets, the way games and calls send them, timed idle, downloading and uploading.

Graded on Waveform's published A+ to F scale · UDP to Cloudflare's nearest data centre · nothing is stored

Every packet, as it landedExample: 1 min on a fibre line

  • On time 2,995
  • Late 0
  • Lost 4
  • Out of order 1
  • Duplicate 0
PacketsBurstsUploadUpDownloadDownDelay ms4 lostnone–
Each column is one second: its packets top to bottom. Point at a second, or focus the strip and use the arrow keys.

How does this bufferbloat test work?

The test sends small UDP packets through Cloudflare's nearest data centre and back, about 64 a second, for three equal parts: idle, then while your line downloads, then while it uploads.

Your grade comes from the average latency of each part: the rise of the worse loaded part over idle, graded on Waveform's published scale. A+ is under 5 ms added, A under 30, B under 60, C under 200, D under 400, and F is 400 ms or more.

The loads are real downloads and uploads from Cloudflare's speed test servers. They are capped, so a very fast line may carry load for only part of each phase: the result shows how many seconds really did, and warns you when that was too short to grade.

Every packet is timed on one clock and drawn on the strip, so you can see when the queue built and whether packets were lost while it did. The test also measures packet loss and jitter in each part.

A 1-minute bufferbloat test, second by seconda made-up line
IdleDownloadingUploading 0150300 ms average 22 msaverage 64 msaverage 193 ms

CAdded latency = the worse of (64 − 22) and (193 − 22) = 172 ms → grade C

Bufferbloat test result: latency idle, downloading and uploading, the added delay and its grade on Waveform's A+ to F scaleBufferbloat test result: latency idle, downloading and uploading, the added delay and its grade on Waveform's A+ to F scaleThe gradeThe added latency of the worse loaded phase, graded on Waveform's scale from A+ to F.Three phasesThe average latency idle, while downloading and while uploading, with the rise against idle on the loaded two.Under loadJitter, loss and how many seconds each loaded phase really carried load, so a grade from a short load is flagged.What suffersCloudflare's scores for gaming, streaming and video calls, worked out from the same run.
A 1-minute test on a made-up line with bufferbloat: steady while idle, a little slower while downloading, and a queue that builds while uploading. Select a number to see what each part shows.

What is bufferbloat?

Bufferbloat is the extra delay your connection adds when it's busy: a router, modem or other equipment buffers too much data, so every packet waits in line behind a download or an upload.

On an idle line your ping stays low. Start a large upload, a cloud backup or a video stream, and the queue in front of the slowest link fills: a game's or a call's small packets now wait behind hundreds of bulk packets. When the queue is full, the router drops the next packets in bursts.

Netflix's Fast.com reports both: unloaded latency, with no other traffic on your network, and loaded latency, while something heavy runs. Netflix says that when someone else streams or backs up, your game's response follows the loaded number.

A call's packet behind an uploadan example line
Router's upload queue your call waits 175 msthen the queue is fulland drops the next ones a backup or a video upload, packet after packet
Idle21 ms
While downloading63 ms
While uploading196 ms
C+175 ms under load: grade C on Waveform's scaleWaveform
  1. A+<5
  2. A<30
  3. B<60
  4. C<200
  5. D<400
  6. F400+
Added delay is the average latency while loaded minus the average idle, the worse of downloading and uploading, as Waveform grades it.

Bufferbloat grades explained: what is a good grade?

The grade only says how much your ping rises under load: A+ is under 5 ms added, A under 30, B under 60, C under 200, D under 400, and F is 400 ms or more. bufferbloat.net suggests fixing anything graded lower than B.

The grade is Waveform's: the added latency of the worse direction, using averages. We use the same six bands, so a grade here means the same as a grade there, though the two tests measure in different ways and can differ by a band.

Cloudflare's AIM scores use the same idea differently: the loaded latency increase is one input with its own points, added to latency, jitter, loss and speed for gaming, streaming and video calls.

Waveform's grades and Cloudflare's points for the same added latency
Waveform's grade A+ABCDF 151030601002004001,000 Added latency under load (ms, log scale) Cloudflare AIM points +20+10+50-10-20
Waveform grades the worse direction's average; Cloudflare scores the loaded latency increase as one input among several.

Why do games lag when someone streams or uploads?

Because a plain router keeps one queue for everything. A game's packet that arrives behind 30 large upload packets has to wait until all of them have gone out.

The wait is simple arithmetic: 30 packets of 1,500 bytes on a 10 Mbps upload take 36 ms to send, before the game's packet even leaves your home. Make the queue a few hundred packets long and the wait runs into hundreds of milliseconds.

FQ-CoDel gives each flow its own queue and serves flows that don't build a queue, like a game's, before the ones that do. CoDel then keeps each queue short: RFC 8289 tolerates at most 5 ms of standing queue, measured over a 100 ms interval.

Why a game lags behind an upload
One queue (a plain router) game: waits 36 ms upload × 30 A queue per flow (FQ-CoDel) upload game: goes next CoDel keeps each queue near 5 ms
30 packets × 1,500 bytes × 8 ÷ 10 Mbps = 36 ms

How to fix bufferbloat: turn on SQM

Turn on smart queue management (SQM) on your router, with CAKE or FQ-CoDel and the speed set a little below what your line delivers. Then run this test again.

The shaper has to be the slowest link, or the queue just moves back to the modem. OpenWrt's guide sets it to 90% of the speed you measured. Lower it if the grade stays poor, and raise it again once it's good.

Not every router has SQM. The table lists where each one keeps its setting, and what its maker says it does. If yours only offers priority rules, an SQM-capable router in front of it can do the job. Use Router Login to reach the admin page.

Fixing it with SQM, step by step

  1. 1

    Test with SQM off

    Note your download and upload speed and the grade.

  2. 2

    Set the shaper below the line

    About 90% of the speed you measured, as OpenWrt's guide says.

  3. 3

    Pick CAKE or FQ-CoDel

    CAKE where your router offers it; FQ-CoDel on slower routers.

  4. 4

    Test again

    The grade should rise; if it doesn't, lower the shaper a little.

Where each router keeps its queue setting, in its maker's own words
Router or firmwareWhere to find itWhat it does to the queueSpeed to enterThe maker's caveat
OpenWrtNetwork → SQM QoS (install luci-app-sqm), interface: your WANCAKE with piece_of_cake.qos; fq_codel is lighter90% of what you measuredRuns on the router's CPU; not with hardware flow offloading
pfSenseFirewall > Traffic Shaper > Limiters, one for download and one for uploadFQ_CODEL scheduler, Tail Drop, ECN onYour WAN speed, confirmed by a speed testQueue length 1000 for about 100 Mbit/s, 3000–5000 at 1 Gbit/s; reset states after
OPNsenseFirewall ‣ Shaper (advanced): pipes, queues and rulesFQ_CoDelStart at 85% of the advertised speed, raise until latency rises, then back offChanging the flows count needs a reboot
UniFiSmart Queues on a UniFi Gateway or Cloud GatewayLimits clients to the speeds you enter (algorithm not named)Your upload and download speedsNot recommended at 300 Mbps or more; with Threat Management, up to 30% less throughput
eeroeero app: Settings → Advanced networking → Network services → SQMA switch (algorithm not named)None to enterSome devices may see slower performance
GL.iNet (firmware 4.9+)FLOW CONTROL → SQMcake (recommended) or fq_codel; Cake Autorate from 4.11Typed, or Run Speedtest from 4.11Turns off Network Acceleration; may reduce peak throughput on fast lines
Asuswrt-MerlinQoS: Traditional QoS or Bandwidth Limiter; Cake QoS on HND modelsfq_codel (since 386.1); CAKE (since 386.2); hardware AQM for upload (3006.102.9)–CAKE skips hardware acceleration, so it may not be usable above about 350 Mbps
ASUS (stock firmware)Adaptive QoS, Traditional QoS or Bandwidth Limiter; Adaptive QoE on newer modelsPriority by application or device; no queue management named–None of these pages names fq_codel, CAKE or SQM
NETGEAR NighthawkDynamic QoS, with its Speedtest buttonPriority by application and deviceFrom its built-in speed testHelps at 250 Mbps or less; not needed at 300 Mbps or faster
NETGEAR XR (DumaOS)QoS: Anti-Bufferbloat (XR500) or Congestion Control (XR1000)Caps the share of the bandwidth heavy devices may useA percentage, for example 70%"Always" reduces your total speed
TP-Link Archer and DecoAdvanced > QoS; Deco app: More > QoSPriority for chosen devices or applicationsYour total bandwidthNone of these pages mentions SQM, fq_codel or CAKE
FRITZ!BoxInternet → Filter → PrioritizationThree categories you assign: real-time, prioritized and backgroundNone to enter"Prioritized" may use up to 90% of the upload
StarlinkNothing to setfq_codel in the Starlink Wi-Fi router, and buffers sized to reduce bufferbloatNone to enterStarlink's own claim: a game isn't slowed when someone else downloads
Cable modems (DOCSIS 3.1)In the modem, for upload onlyDOCSIS-PIE, required in 3.1 and recommended in 3.0, aiming at 10 msNone to enterFor downloads, the cable operator's equipment manages the queue

Wi-Fi or Ethernet: where is the queue?

The queue forms at the slowest link between you and the internet. On a fast line that's often your Wi-Fi, not your router's connection to the provider.

Run the test once on a cable and once on Wi-Fi. If the grade is good on the cable and poor on Wi-Fi, the queue is in the wireless link: move closer to the router, use 5 GHz, or check your router's own Wi-Fi settings.

If both are poor, the queue is in the router or the modem, and SQM is the fix. If both are good while games still lag, look further out: the ping test and traceroute show the path beyond your home.

Where the queue forms: the slowest linkexample link rates
Your deviceRouterModemYour provider 120 MbpsWi-Fi1,000 MbpsEthernet500 Mbps ↑ the slowest link: the queue builds here

Bufferbloat test vs speed test vs packet loss test

A speed test asks how much your line can carry. A bufferbloat test asks how much slower it gets while it carries that much. A packet loss test asks how many packets never arrive.

Bufferbloat testPacket Loss TestPing testSpeed test
MeasuresLatency idle and under loadLost, late and out-of-order packetsRound trip to regionsThroughput
ProtocolUDP packetsUDP packetsUDP and TCPHTTP downloads
Sees packet lossYes, per phaseYes, split up and downYesRarely
Grades latency under loadYes, A+ to FYes, in its columnNoSome do

Bufferbloat test: questions and answers

What is a good bufferbloat grade?

A or A+. On Waveform's scale, which this test uses, A+ means under 5 ms of added latency under load, A under 30 ms, B under 60, C under 200, D under 400, and F 400 ms or more. bufferbloat.net's rule of thumb is to look at the fixes for any grade lower than B.

How do I fix bufferbloat?

Turn on smart queue management (SQM) on your router, choose CAKE or FQ-CoDel, and set the speed a little below what your line delivers: OpenWrt's guide uses 90% of the speed you measured. Then test again and adjust. If your router has no SQM, an SQM-capable router in front of it can do the shaping.

Why do my games lag when someone else is streaming or uploading?

Your router keeps one queue for all traffic, so your game's small packets wait behind the stream's or the upload's large ones. The test shows it as a rise in latency while downloading or uploading. SQM fixes it by giving each flow its own short queue, so the game's packets go first.

Does a faster internet plan fix bufferbloat?

Not by itself. Packets queue in front of the slowest link, so a faster plan can simply move the queue from your modem to your Wi-Fi. The rise under load depends on how big the queues are and how they're managed, so turn on SQM, then test again on a cable and on Wi-Fi.

Should I test bufferbloat over Wi-Fi or Ethernet?

Both. A cable test finds the queue in your router or modem; a Wi-Fi test adds the wireless link, which on a fast line is often the slowest link and holds its own queue. A good cable grade with a poor Wi-Fi grade points at the Wi-Fi.

Why is my grade different from Waveform's or Cloudflare's test?

We send small UDP packets many times a second, the way games and calls do; Waveform measures with web requests, and Cloudflare samples its loaded latency less often. The location, the length of each phase and run-to-run changes on your line matter too, so a one-band difference is normal.

Does SQM slow down my internet?

A little, by design: the shaper sets your speed slightly below the line's, so the queue forms in the router where it can be managed. Some routers also can't shape very fast lines on their CPU and say so in their documentation, so check yours before turning it on for a gigabit line.

How much data does the bufferbloat test use?

It keeps your line busy for the whole download and upload parts, so a faster line moves more: up to 1 GB downloaded and 400 MB uploaded per run (250 MB and 100 MB for the 15-second test), much less on slower lines, plus the small test packets themselves. Nothing is stored on our side; past runs stay in your own browser.

Missing something?Suggest a feature or a new tool