How SpeedFast Measures Your Internet Speed

A speed test looks simple: click GO, watch a number climb, get a result. What actually happens underneath is a lot more deliberate than that, and the choices behind it are the difference between a number that reflects your real connection and one that just looks impressive. Here's what SpeedFast actually does, and why.

More than one connection, on purpose

A single download or upload connection almost never reaches the true capacity of a modern broadband or mobile connection — TCP's own congestion control ramps up gradually on one stream, and most real-world usage (streaming, browsing, downloading updates) already happens over several connections at once anyway. So instead of measuring one file transfer, SpeedFast opens several download streams and several upload streams in parallel, ramping them up gradually over the first second or two of each phase, and adds up their combined throughput. This mirrors how your connection is actually used, rather than testing a scenario — one enormous single file — that barely happens in practice.

Trimming the slow start

Every new connection needs a moment to reach full speed. TCP's slow-start algorithm intentionally sends less data at the very beginning and increases gradually as it confirms packets are arriving safely — a sensible way to avoid overwhelming a network, but it means the first second of any transfer understates what the connection can actually sustain. SpeedFast measures throughput continuously throughout each test phase but deliberately discards the opening slice of that data before calculating your final number, so a slow ramp-up doesn't drag down a result that would otherwise be accurate.

A moving average, not a single snapshot

Instead of dividing total bytes transferred by total time — a method that can be thrown off by a single slow or fast moment — SpeedFast calculates a rolling average over a short recent window throughout the test, then reports the sustained figure from the strongest, most consistent stretch of that window. That's closer to what you'll actually experience during a video call or a large download: not the average of a good moment and a bad one, but the speed your connection can reliably hold.

Latency under load: what jitter and bufferbloat really mean

Download and upload speed only tell part of the story. SpeedFast also measures latency (ping) three ways: at idle, while your download is actively running, and while your upload is actively running. If the loaded numbers are much higher than the idle one, that's bufferbloat — your router or modem queuing up data faster than it can send it, which is exactly what makes video calls stutter or online games lag even when your raw Mbps number looks perfectly fine. Jitter, the variation between consecutive ping measurements, matters for the same reason: a connection that averages 20ms but swings wildly between 5ms and 80ms will feel worse for real-time use than a steady 30ms.

Why every stream gets its own connection

Browsers reuse a single underlying connection for multiple requests to the same server whenever they can — normally a sensible efficiency, but a real problem for measurement under imperfect network conditions. If one packet gets lost on that shared connection, every stream sharing it stalls together, waiting for the retransmission — turning an ordinary, minor network hiccup into what looks like a complete collapse in speed. SpeedFast avoids this by spreading its parallel streams across several separate connections rather than one, so a brief rough patch on the network shows up as a brief dip in the result, not a cliff.

Running at the edge, not in one distant data center

SpeedFast runs on Cloudflare's global network, which operates in hundreds of cities worldwide rather than a handful of central data centers. In practice that means the server your test actually talks to is usually a short physical hop from you, not on the other side of a continent — cutting out a source of latency and distance-related slowdown that has nothing to do with your own connection. Which edge location you land on is decided automatically by network routing at the moment you run the test, the same way it works for any other Cloudflare-powered site you visit.

Why your result won't always match another speed test

It's normal — and not a sign that something's broken — for two speed tests run minutes apart, on the same connection, to show different numbers. Every test measures against a different server in a different location, uses a different number of connections, and lands on your ISP's network at a different, constantly shifting moment: home routers, neighborhood congestion, and even which of your household's devices are active all change from one minute to the next. A single test is a snapshot, not a certificate. If you want a genuinely representative picture of your connection, run a few tests at different times of day rather than treating any one result as the final word.