8 desktop apps for testing bufferbloat in 2026
Your speed test says 900 Mbps down, 500 up, and 12 ms ping. Then a Zoom call freezes the moment someone starts a file upload, a Warzone match drops packets while a family member streams 4K, and every DNS lookup crawls whenever the router is busy. The number that matters is not peak throughput. It is the extra latency your link picks up when it is actually working, and that number has a name: bufferbloat. The XDA piece that put this back in front of a general audience was blunt about it. A perfect line-rate result means very little if pings under load balloon to 200 ms.
We spent a week putting eight tools through the same connection, a mixed fiber-plus-Wi-Fi setup with a consumer router that had no smart queue management enabled. Every pick below runs on Windows, macOS, or Linux, most are free, and each one measures latency while the link is saturated rather than while it is idle. Pair a browser-based test with a CLI tool and you will know within minutes whether your router, ISP, or Wi-Fi is the source of the problem.
Quick comparison
| Tool | Best for | License | Platforms | Standout |
|---|---|---|---|---|
| Waveform Bufferbloat Test | One-click grade | Free | Any browser | Letter-graded latency-under-load |
| Cloudflare Speed Test | Global-edge measurement | Free | Any browser | Loaded vs unloaded latency split |
| Speedtest CLI by Ookla | Scripted daily checks | Free | Windows, macOS, Linux | Same servers as the web app |
| iperf3 | LAN and WAN throughput | Free, BSD | Windows, macOS, Linux | Bidirectional test with JSON output |
| Crusader | Purpose-built bufferbloat GUI | Free, MIT / Apache | Windows, macOS, Linux | Live latency chart during load |
| Flent | Reproducible test batteries | Free, GPL | Linux, macOS, BSD | RRUL and cross-traffic scenarios |
| LibreSpeed | Self-hosted testing | Free, LGPL | Any browser, CLI | Run it on your own server |
| PingPlotter | Multi-hop diagnosis | Freemium | Windows, macOS | Per-hop latency and packet-loss graphs |
What to look for in a bufferbloat testing app
Not every speed test is a bufferbloat test. The four things that matter:
Latency under load, not idle ping. A tool has to measure round-trip time while the connection is actively saturating upload and download, in that order and together. A ping-only test on an idle link tells you nothing about queueing.
Separate upload and download saturation. Bufferbloat often lives on one side only. Cable and DSL uplinks are classic culprits because the modem's transmit buffer is oversized relative to the uplink speed. A tool that only stresses download will miss half the picture.
Percentiles, not just averages. A mean of 40 ms hides a p95 of 300 ms. Anything above the median that shows p90 or p99 numbers gives you a truer picture of what a video call will feel like.
Repeatability. If you cannot rerun the exact same test at 8 AM and 8 PM, you cannot prove a fix worked. CLI tools, scripted batteries, and self-hosted endpoints beat one-shot web tests for troubleshooting sessions that span days.
1. Waveform Bufferbloat Test, the one to run first
Waveform's tool is the test the Bufferbloat Project itself points people to. It runs entirely in the browser, uses Cloudflare's edge network as the other end of the connection, and grades the result A through F based on how much your latency climbs while the link is being loaded. A single click gives you idle ping, download bloat, upload bloat, and a jitter number, plus a shareable result URL for support tickets.
Where it falls short: the grade is aggregate, not per-hop. If a bad Wi-Fi radio is adding 30 ms of its own, Waveform will show it as bufferbloat without pinpointing the source.
Pricing: Free, no account required.
Platforms: Any modern browser on Windows, macOS, Linux, or ChromeOS.
Download: waveform.com
Bottom line: the first tool to reach for. If Waveform gives you an A on a wired connection, the problem is almost certainly downstream of your router.
2. Cloudflare Speed Test, the second opinion
Cloudflare's own speed test is the natural companion to Waveform. It shows unloaded latency, loaded latency during download, loaded latency during upload, and jitter, all on one page. Because Cloudflare has anycast POPs in most major cities, the round-trip is usually shorter than a random ISP test server, so the noise floor is lower and small differences show up more clearly.
Where it falls short: the test picks a Cloudflare POP for you and does not let you swap it. If your route to Cloudflare is unusual, results can look better or worse than reality.
Pricing: Free.
Platforms: Any modern browser. There is also a public API for scripted use.
Download: speed.cloudflare.com
Bottom line: the fastest way to cross-check a Waveform result with a completely different server infrastructure.
3. Speedtest CLI by Ookla, for scripted daily checks
Ookla's official Speedtest CLI is a small binary that runs on Windows, macOS, and Linux and hits the same server network as speedtest.net. It reports download, upload, idle latency, jitter, and a loaded latency figure that Ookla added in recent versions. JSON output makes it trivial to log results to a file, InfluxDB, or Grafana, and cron or Task Scheduler will happily run it every 15 minutes.
Where it falls short: Ookla's loaded-latency metric is calmer than Waveform's because it measures during a shorter burst. A green Ookla result does not prove a green Waveform result.
Pricing: Free for personal use, paid licenses for commercial redistribution.
Platforms: Windows, macOS (Intel and Apple silicon), Linux on x86_64 and ARM, plus FreeBSD.
Download: speedtest.net
Bottom line: pick this to build a graph of your link's behavior over a week rather than a snapshot.
4. iperf3, the throughput reference
iperf3 from ESnet is the tool network engineers reach for when they need to know what a link is actually capable of, without a browser or a third-party server in the middle. Run the server on one machine, the client on another, and you get raw TCP or UDP throughput between them plus jitter and packet-loss numbers on UDP. Ran against a nearby public iperf3 server, it also serves as an ISP sanity check that will not lie about your uplink the way an ISP-hosted speed-test server can.
Where it falls short: iperf3 measures throughput and packet loss, not queueing delay directly. Pair it with a ping running to the same target to see the bufferbloat.
Pricing: Free, BSD license.
Platforms: Windows, macOS, Linux, FreeBSD, and most other Unix systems. Ships in every major package manager.
Download: GitHub (esnet/iperf)
Bottom line: use it to prove that the link itself can push the bytes, then use another tool to see what happens to latency while it does.
5. Crusader, purpose-built bufferbloat visualizer
Crusader is the tool a lot of home-lab operators wish had existed five years ago. It runs a download-only burst, an upload-only burst, and a simultaneous bidirectional burst, and plots latency on a live chart the whole time. The output makes it obvious whether bloat lives on your uplink, your downlink, or only appears when both directions are busy. You run one instance as a server (locally, on a VPS, or on a friend's home network) and connect the client to it, so you control both ends.
Where it falls short: the GUI is functional rather than polished, and you need somewhere to run the server. A cheap VPS or a Raspberry Pi on a wired uplink works well.
Pricing: Free, dual MIT and Apache 2.0 licensed.
Platforms: Windows, macOS, Linux, and Android clients. Pre-built binaries in GitHub Releases plus Docker images for the server.
Download: GitHub (Zoxc/crusader)
Bottom line: the sharpest picture of latency-under-load available in a free GUI, provided you can host the other end.
6. Flent, the reproducible test battery
Flent, previously netperf-wrapper, is what the CeroWrt and Bufferbloat.net crowd use to compare queue management algorithms. It orchestrates parallel netperf, iperf, and ping streams, then plots the results with matplotlib. The included RRUL test (Realtime Response Under Load) is the closest thing to a standard bufferbloat benchmark in the research community. Rerun the same test after enabling CAKE or fq_codel on your router and the charts will show you exactly how much latency you clawed back.
Where it falls short: it is a Python tool with a matplotlib front-end, not a one-click experience. Expect to read the docs at flent.org before your first run.
Pricing: Free, GPL.
Platforms: Linux and macOS as first-class targets, FreeBSD is supported, Windows through WSL.
Download: GitHub (tohojo/flent)
Bottom line: the pick for anyone tuning a router or an ISP link who wants publishable, repeatable numbers.
7. LibreSpeed, self-hosted testing
LibreSpeed is the open-source answer to speedtest.net. It reports download, upload, ping, and jitter, and unlike most of the browser-based tests you can drop it on your own server (PHP, Node.js, Go, or Rust backends are all supported) and test against a machine on your own network or at your colo. That matters for bufferbloat work: an in-house endpoint isolates your ISP's path so you can tell whether jitter is inside your network or beyond it. There is also a command-line client for scripted use.
Where it falls short: LibreSpeed reports jitter rather than a full loaded-latency breakdown, so it is not a drop-in replacement for Waveform if you want a grade.
Pricing: Free, LGPLv3.
Platforms: Any browser on the client side, plus a CLI client for Windows, macOS, and Linux. Docker image for the server.
Download: GitHub (librespeed/speedtest)
Bottom line: the tool to reach for when you want to separate LAN issues from WAN issues by controlling both ends of the test.
8. PingPlotter, multi-hop latency graphing
PingPlotter from Pingman Tools is a paid Windows and macOS app with a genuine free tier. It traces every hop between you and a destination, pings each one on an interval, and graphs latency and packet loss per hop over time. When Waveform tells you there is bufferbloat but does not say where, PingPlotter is the second stop: watch the graphs while the link is loaded and the hop that starts spiking is the culprit. The free version limits history and features, but it is enough for a single troubleshooting session.
Where it falls short: the free tier caps history and hides some export options. The full experience is behind a Standard or Professional license.
Pricing: Free tier for basic use. Standard licenses start around $40 one-time; Professional adds alerting and shared dashboards.
Platforms: Windows 10 and 11, macOS. No Linux desktop build, though mtr covers similar ground on Linux.
Download: pingplotter.com
Bottom line: the fastest way to catch a bad hop at your ISP's edge or a flaky peering link, once you have confirmed the bloat is not inside your house.
How to choose
Start with Waveform Bufferbloat Test. It takes 90 seconds and tells you whether you have a problem at all. If the grade is C or worse, run Cloudflare Speed Test next to confirm the result on different infrastructure. Once bufferbloat is confirmed, use Crusader to see which direction is bloating and by how much, and PingPlotter or a Linux mtr session to identify the hop where latency spikes.
For long-running visibility, script Speedtest CLI by Ookla or LibreSpeed to run every 15 minutes and log to a time-series database. For tuning work, where you need to prove a router change actually helped, Flent is the reference tool. And when you need to know what your link is capable of independent of a public server, run iperf3 between two machines you control.
FAQ
What is the best free bufferbloat test?
The Waveform Bufferbloat Test is the free tool most networking communities recommend first, because it grades latency under load rather than only measuring peak throughput. Cloudflare Speed Test is the closest free alternative and useful as a second opinion.
Which bufferbloat testing app do most people use?
Waveform for one-off checks and Ookla's Speedtest CLI or LibreSpeed for scripted monitoring. Home-lab and ISP-side operators lean on iperf3 and Flent for repeatable, structured tests.
Can iperf3 measure bufferbloat?
Not directly. iperf3 measures throughput, jitter on UDP, and packet loss. To see bufferbloat, run iperf3 to saturate the link and run a ping to the same target in parallel. The rise in ping while iperf3 is running is your bufferbloat.
How do I fix bufferbloat once a test finds it?
Enable smart queue management on your router. Modern OpenWrt, MikroTik RouterOS, pfSense, and OPNsense builds all support CAKE or fq_codel, and most consumer routers with recent firmware expose an "SQM" or "adaptive QoS" toggle. Set the shaper to about 90 to 95 percent of your measured link speed. Rerun Waveform. The grade should climb to A or B.
Does a wired connection have bufferbloat?
Yes. Bufferbloat lives in whichever device has an oversized queue between you and the internet, which is almost always the modem, the router, or the ISP's headend. A wired connection removes Wi-Fi jitter from the picture but does not remove bufferbloat.
Is PingPlotter worth paying for?
For a one-off troubleshooting session, no. The free tier is enough to identify a bad hop. For anyone monitoring a critical link continuously, or supporting remote users, the Standard license pays for itself the first time it saves an hour on the phone with an ISP.