Speeds & technology

Lag when someone uploads? Bufferbloat explained

Lag when someone uploads? Bufferbloat explained

The short answer

If a video call freezes or a game jumps about only when someone else in the house starts a big upload or download, the likely culprit is bufferbloat. Bufferbloat.net, the community project working on the problem, defines it as "the undesirable latency that comes from a router or other network equipment buffering too much data". Latency is the delay before data arrives. Our guide to latency, ping and jitter covers the basics, including a quick ping check you can run yourself.

This guide covers where the queue builds, how the tests differ and how to set up smart queue management (SQM). Bufferbloat.net says a faster connection isn't the cure; the fixes it describes are router settings, router firmware or a different router.

Why the call stutters when someone uploads

Every router has buffers: memory where packets (the small chunks data travels in) wait their turn to go out over the line. Queues are normal: the IETF document describing the CoDel method (RFC 8289) says buffers exist to absorb bursts of packets. The trouble starts when a queue is too big, or never drains.

Waveform, which runs the bufferbloat test that bufferbloat.net lists first, explains it with a sink that has a narrow drain. Pour in a bucket of water, then a spoonful of oil, and the oil has to wait for the water to drain first. The router is the sink, your connection to the provider is the drain, and the oil is your call, stuck behind someone else's upload.

The symptoms bufferbloat.net lists will sound familiar: calls, meetings or games that go bad from time to time, and the urge to tell everyone "don't use the internet".

Everyday triggers

Waveform points to phone photo apps that back up photos and videos to the cloud as soon as they're taken, and says upload is the direction that catches people out: a single cloud backup can add hundreds of milliseconds to every packet in the house.

An example, not a real test: a video call freezes on and off while a phone uploads a weekend's videos, yet a speed test afterwards looks fine. Nothing is broken; the router let a long queue build. Our guide on how to see what's using your broadband helps you find the device responsible.

Where the queue builds

Bufferbloat.net's FAQ says bufferbloat can happen anywhere a fast link feeds into a slow one. In a home that usually means two places:

  • The router's connection to your provider, which tends to be slower than the network inside your home.
  • The Wi-Fi, where, bufferbloat.net says, drivers can often queue hundreds of milliseconds' worth of packets.

Downloads can bloat too: bufferbloat.net says your provider's equipment, where its fast lines feed the slower link to your home, can build significant queues. Waveform's summary is that bufferbloat happens mainly at the slowest link between you and the internet, so if your Wi-Fi is slower than your line, the Wi-Fi becomes the source, and that this applies separately to uploads and downloads. Our guide to download vs upload speed explains which everyday jobs lean on each.

Telling it apart from evening slowdowns

Our rule of thumb, not a source's: bufferbloat in your own router usually tracks what your household is doing and eases when the big transfer ends. Lag at peak times when nobody at home is busy is more likely beyond your home; see why broadband slows down in the evening. A wired test with the house quiet settles it.

The bufferbloat tests compared

A bufferbloat test measures latency while the line is quiet, then again while the test itself fills the line with a download and an upload. Bufferbloat.net lists four web tests that do this: the Waveform Bufferbloat Test, Speedtest.net, the Cloudflare Speed Test and the LibreQoS Bufferbloat Test. We checked each tool's own documentation in October 2026; we didn't run the tests ourselves for this guide.

Tool

What it reports

Good to know

Waveform Bufferbloat Test

A grade from A+ to F for the rise in latency under load, plus jitter and 95th percentile latency

Runs in a web browser and doesn't count dropped packets

Cloudflare Speed Test

Idle and loaded latency, and scores from Bad to Great for streaming, gaming and webchat/RTC

The scores draw on latency, packet loss, speeds, loaded latency and jitter

Apple Network Responsiveness

Round-trips per minute (RPM) and a Low, Medium or High rating

A Terminal command on a Mac; iPhone and iPad need a diagnostics profile

Waveform Bufferbloat Test

Waveform's test measures latency idle, then during a download and an upload, and grades the bigger increase. It suggests reading the grade first, then latency, then speed.

On a laptop or desktop it also shows jitter (how much the delay varies) and 95th percentile latency (the delay that 95 in every 100 measurements stay under) next to each chart. Waveform describes a stable connection as jitter under 30 ms, a 95th percentile close to the median, and a grade of B or better.

Because it runs in a browser, it doesn't count dropped packets, but Waveform says packet loss still leaves clues: higher jitter, a 95th percentile well above the median, and speeds below your plan. Speeds can also vary between browsers, though the grade should be fairly consistent.

Cloudflare Speed Test

Cloudflare's current documentation (updated April 2026) says its Aggregated Internet Measurement (AIM) turns latency, packet loss, speeds, loaded latency and jitter into a score from Bad to Great for streaming, gaming and webchat/RTC (real-time communication, such as video calls). A 2023 Cloudflare blog post said the video-call score used the difference between loaded and unloaded latency; the current documentation doesn't say how each score is weighted, so check the loaded latency figure yourself.

Apple's Network Responsiveness test

Apple's test measures how well a network copes when several devices and apps share it. On a Mac running macOS Monterey or later, open Terminal, type networkQuality and press Return. On an iPhone or iPad (iOS or iPadOS 15 or later) you first install a "WiFi Performance Diagnostics" profile from Apple's developer website (which may ask for an Apple Developer login), then run Responsiveness under Settings > Wi-Fi > Info > Diagnostics. Apple says these steps are meant mainly for developers.

The result is in round-trips per minute (RPM): higher is better, and bufferbloat.net describes the range as roughly a hundred (poor) to a few thousand (good). Apple rates the network Low (calls or gaming may be unreliable while another device downloads a film or backs up photos), Medium (momentary pauses when several devices share it) or High.

Set up a fair test

  1. Pause everything else. Waveform's advice is to pause backups, cloud sync and large downloads on every device, because the test can't get a clean reading if the line is already busy.
  2. Start with a cable. Waveform recommends testing over Ethernet first. That takes the Wi-Fi's own buffers out of the picture. Waveform adds that on a very fast line Wi-Fi is usually the slower link, while the test needs to fill your internet connection, not your Wi-Fi. See wired Ethernet at home if you need a cable run.
  3. Then test on Wi-Fi from the problem room, on the device that suffers.
  4. Repeat a few times, at a quiet time and at a busy one. Our guide on why speed test results differ explains why results wobble.
  5. Note each result with the time, the tool and wired or Wi-Fi, so you can show your provider or router maker.

For a plain speed check alongside these, use our broadband speed test.

Reading the result

Read each result on the scale of the tool that produced it: a Waveform grade, a Cloudflare score and an Apple RPM figure aren't interchangeable.

Waveform's grades

Waveform grades the number of milliseconds (ms) latency rises under load, using what it calls a slightly modified version of the rubric the DSLReports test used:

Grade

Latency increase under load

What Waveform says it means

A+

Less than 5 ms

Should stay responsive when busy

A

Less than 30 ms

Should stay responsive when busy

B

Less than 60 ms

Should stay responsive when busy

C

Less than 200 ms

May cause noticeable delays

D

Less than 400 ms

Can interfere with video calls, gaming and other real-time activity

F

400 ms or more

Can interfere with video calls, gaming and other real-time activity

Bufferbloat.net's thresholds

Bufferbloat.net's fixes page says that if a test shows latency below 15 to 25 ms, bufferbloat is under control. Its FAQ frames it as an increase under load of less than 15 to 25 ms. Its tests page suggests acting on a result above about 50 ms, or a grade lower than B.

Reading the pattern

  • Good on Ethernet, poor on Wi-Fi (Waveform's example is an A and a C): the Wi-Fi is the weak link, so look at coverage first.
  • Poor on both: Waveform says that points to your router or your provider, and a new Wi-Fi access point won't fix it. This is where SQM can help.
  • Bad only while uploading, or only while downloading: the queue is building in that direction.
  • Jitter low when idle but jumping under load points to bufferbloat, Waveform says; high jitter even when idle usually means Wi-Fi trouble.

How smart queue management fixes it

The established fix is smart queue management (SQM): router software that keeps queues short. Bufferbloat.net says the OpenWrt project, which makes open-source router software, developed and tested these algorithms over the last decade and gave them the umbrella name SQM. The names to look for are cake, fq_codel and PIE.

Bufferbloat.net's FAQ describes the general technique:

  • Each conversation, or "flow", such as one download or one video call, gets its own queue.
  • The router takes a small batch from each queue in turn, generally 5 to 15 ms worth of traffic, so a light flow such as a call empties its queue straight away on its next turn.
  • A flow that sends more than its share gets pushed back. Now and then the router drops one of its packets on purpose. Bufferbloat.net explains that TCP, a core internet protocol, is designed to treat a lost packet as the signal that it's sending too fast, so it slows down.

The method behind fq_codel is set out in IETF document RFC 8290 (January 2018), which builds on the CoDel method in RFC 8289 and says it provides isolation for low-rate traffic such as DNS, web and videoconferencing.

Why prioritising alone falls short

Quality of service (QoS) settings let you rank traffic so that chosen packets go first. Bufferbloat.net says that helps but won't solve bufferbloat completely. The rest of the queue still has to be sent, and QoS has no way to tell the big senders they're sending too much, so their packets keep piling up. Every rule also needs adjusting when your traffic, router or speed changes.

OpenWrt describes SQM as an integrated system that combines per-flow scheduling, active queue management, traffic shaping, rate limiting and QoS prioritisation, whereas "classic" QoS only prioritises. So SQM's main job is keeping the queue short for every flow, rather than asking you to rank devices. For providers' own priority features, such as game and work modes, see our guide to QoS, work mode and game mode.

Turning on SQM: the steps

The trick, as bufferbloat.net explains it, is to set the router's own speed limit slightly below the real bottleneck, so the queue forms inside your router, where cake or fq_codel can control it. For downloads, it says, SQM creates an internal bottleneck typically 5% to 10% slower than your provider's link.

  1. Measure with SQM off, on a wired connection with the house quiet. Note your download and upload speeds.
  2. Turn SQM on and set its limits. Bufferbloat.net says to start from the speeds you measured; OpenWrt's SQM guide suggests entering 90% of them.
  3. Choose the queue type, if your router asks. OpenWrt recommends cake with its "piece_of_cake" setup script; fq_codel is faster but less comprehensive.
  4. Tell it what kind of line you have, if it asks. OpenWrt's guide gives an overhead setting (the extra bytes each type of line adds to every packet) for VDSL, other DSL, cable, fibre and Ethernet, and says that if you're unsure it's better to overestimate.
  5. Test again and adjust. OpenWrt suggests raising the limits and retesting until bufferbloat comes back, then going slightly lower. Bufferbloat.net's write-up of one tuning session says it took four tries and five minutes to find a setting that worked well.

What OpenWrt's guide adds

SQM runs on the router's processor, so slower routers may not keep up at the full speed of the line, and it doesn't work with hardware flow offloading (a speed-up feature on some routers), though software offloading is fine.

An example from OpenWrt's guide

OpenWrt's guide reports one user's results on a cable connection (their figures, not a test of ours; other lines and routers will differ):

Measure

No SQM

SQM (cake, 90% limits)

Download

532 Mbps

495 Mbps

Upload

37 Mbps

28 Mbps

Latency rise (download / upload)

+18 ms / +38 ms

+0 ms / +0 ms

Bufferbloat grade

B

A+

In that example, a little less raw speed bought no rise in latency when the line was busy.

Other trade-offs

eero, which makes mesh routers, says that with its SQM on every device still gets bandwidth, but you may see slower performance on certain devices. Waveform says SQM is CPU-intensive, so faster connections need faster router processors, and Apple says routers with SQM generally need some expert configuration.

Connections whose speed changes

SQM works best when it knows your line's speed, which is a problem on connections that vary. Bufferbloat.net notes that mobile (4G and 5G) links, cable and Starlink can change speed from morning to evening, or even minute to minute, and suggests cake-autorate, which keeps watching traffic and latency and adjusts cake's limits up and down. Starlink users can find more about the service on our Starlink broadband page.

If your router has no SQM setting

Waveform suggests that if you already have a fairly new router, you check its settings for an option to enable SQM (its main suggestion is a new router with SQM, and it recommends particular models). Our tip: search the router's app, settings and manual for "SQM", "smart queue", "fq_codel", "cake" or "bufferbloat", and on a provider's hub ask its support team.

If there's nothing, bufferbloat.net lists these options, with contacting the maker as the fallback:

  • Use a router that has SQM. Bufferbloat.net warns that an expensive router, even a "gaming" one, won't necessarily help, and Waveform says many routers sold as gaming routers lack the feature. Look for SQM by name, and ask whether it runs at your line's full speed.
  • Install custom firmware, if you're technically confident: bufferbloat.net lists OpenWrt (22.03 or newer, on supported devices) and Asuswrt-Merlin (ASUS only), among others.
  • Ask the maker, if none of those is possible: call its support line with your test results, explain that ping times get very high when someone uploads or downloads, and ask when a firmware fix is due.

Putting an SQM router in front of your provider's hub

Bufferbloat.net calls this a very common solution. Its steps:

  1. Turn off the Wi-Fi on the provider's router.
  2. Connect the new router's WAN (internet) port to one of the LAN ports on the provider's router.
  3. Set up the new router's SQM.
  4. Connect all your equipment to the new router, leaving nothing on the old one, which bufferbloat.net says would throw off the algorithms. Then test again.

Our reading is that SQM belongs on the box doing the routing: eero's isn't available in bridge mode, and OpenWrt says to test the upstream router first if a device works as an extender, repeater or bridge. Our guide to using your own router covers the settings each type of line needs and what you can lose by not using the provider's hub.

Meanwhile, Cloudflare's tips are to use a wired connection, move closer to the router and use a router capable of smarter queueing. Moving cloud backups and big updates to overnight also helps.

When it isn't bufferbloat

If latency stays high on a good wired connection with nothing else running, Cloudflare's advice is to contact your provider; take your test log with you.

Sometimes the line is simply too small for what everyone does at once; SQM can't add capacity. Our guide to broadband for online gaming covers what matters for players, and live streaming from home looks at the upload streamers need.

To look at other packages, you can compare deals at your postcode or see what's available on fibre broadband deals, and browse all the broadband providers we cover. The comparison is run by our partner and shows live deals; it doesn't measure bufferbloat or switch you itself. If SQM matters, ask a new provider whether you can use your own router.

Bufferbloat FAQs

What is bufferbloat in simple terms?

Bufferbloat is extra delay caused when a router or other network equipment lets too much data queue up. When the line is busy, the small packets of a call or game wait behind someone else's big upload or download, so they arrive late. Waveform compares it to pouring oil into a sink with a narrow drain that is already full of water.

Why does my video call lag when someone else is uploading?

An upload, such as a phone backing up photos to the cloud, can fill the outgoing direction of your line. If your router keeps one long queue, your call's packets wait behind the upload and arrive late. Waveform says a single cloud backup can add hundreds of milliseconds to every packet in the house. Smart queue management such as fq_codel gives each flow its own short queue.

Which bufferbloat test should I use?

Any test that measures latency both idle and under load will do. Waveform gives a grade plus jitter figures, Cloudflare scores the connection for streaming, gaming and webchat, and Apple's networkQuality command works on a Mac. Their figures aren't interchangeable, so stick to one tool when comparing, and test over an Ethernet cable first, then on Wi-Fi.

Does turning on SQM lower my speed test results?

It can, a little. You set SQM's limits slightly below your measured speeds; OpenWrt suggests starting at 90%. In one user's results in OpenWrt's guide, download fell from 532 to 495 Mbps while the latency rise under load fell to zero. eero says that with its SQM on, every device still gets bandwidth, but you may see slower performance on certain devices.

Is SQM the same as QoS or game mode?

Not quite. Classic QoS ranks traffic so chosen packets go first. Bufferbloat.net says that helps but won't solve bufferbloat, because the rest of the queue still has to be sent and big senders are never told to slow down. SQM keeps every flow's queue short; OpenWrt counts prioritisation as just one part of what SQM does.

What can I do if my provider's router has no SQM setting?

Check its app, settings and manual first, and ask the provider. If there's nothing, bufferbloat.net suggests putting a router with SQM in front of the provider's hub: turn off the hub's Wi-Fi, connect the new router to it and move every device onto the new router. Check first that your provider lets you use your own router.

Ready to compare deals at your address?