Skip to main content
Back to blog

How Internet Speed Tests Actually Work

networkingspeed testISP

How Internet Speed Tests Actually Work

You click "Start Test," watch a number climb, and get a result in megabits per second. But what did you actually measure? The answer is more nuanced than "how fast is my internet," and understanding what a speed test does — and doesn't — measure will help you interpret the results.

What the download test measures

A download speed test measures TCP throughput between your device and a specific server over a specific duration. The test client (your browser or app) opens one or more TCP connections to the test server and requests a large file or a stream of data. As bytes arrive, the client tracks how many arrived over how many seconds and calculates a throughput number.

The math is straightforward: if your browser received 12.5 megabytes in 10 seconds, that's 1.25 megabytes per second, or 10 megabits per second (since 1 byte = 8 bits).

Most speed test services use multiple parallel TCP connections — typically 4 to 16. A single TCP connection ramps up slowly (TCP slow start) and can be bottlenecked by packet loss on any one flow. Multiple connections in parallel saturate the link faster and work around the single-flow TCP limitation. This is why a speed test might show 100 Mbps on parallel connections while a single large file download only manages 40 Mbps — both numbers are "correct," they're just measuring different things.

What the upload test measures

The upload test is the reverse: your browser generates a block of data (often random bytes) and POSTs it to the server. The server measures how quickly the data arrives, or the client measures how long the upload takes. Upload speeds are typically slower than download speeds on residential connections because most ISPs allocate bandwidth asymmetrically — cable and DSL connections often have a 10:1 or higher download-to-upload ratio.

Ping, latency, and jitter

Ping (or latency) is the round-trip time for a tiny packet to travel from your device to the server and back. Speed tests typically measure this by sending a lightweight request (like an HTTP HEAD) and timing the response. Latency affects how responsive your connection feels, especially for interactive applications like video calls, gaming, and remote desktops.

Jitter is the variation in latency over time. If your ping is a steady 20ms, your jitter is near zero. If your ping swings between 15ms and 200ms, your jitter is high. High jitter causes stuttering in voice and video calls even if your average latency is acceptable.

Latency and throughput are mostly independent. A satellite connection can have high throughput (50+ Mbps) but terrible latency (600ms+). A fiber connection typically has both high throughput and low latency (1-5ms). For most people, latency matters more than raw throughput once you're past about 25 Mbps.

Why results differ between services

Run the same connection through Ookla (speedtest.net), Fast.com (Netflix), Google's speed test, and our speed test, and you'll likely get different numbers. There are several reasons:

Server location. Every speed test measures throughput to its server. Ookla lets you pick from thousands of servers worldwide — one in your city will give very different results from one across the ocean. Fast.com routes through Netflix's CDN, which has servers in most major metros. The further the server, the more network hops your data crosses, and the more opportunities for congestion or routing inefficiency.

Test duration. Short tests (3-5 seconds) might not fully saturate the link, especially on fast connections where TCP slow start takes a meaningful chunk of the test window. Longer tests (10-30 seconds) give more stable results but also average across transient congestion events.

Number of connections. More parallel TCP streams generally produce higher throughput numbers, up to the point where the bottleneck is your actual access link rather than a single TCP flow. Different services use different concurrency levels.

Protocol and overhead. Some tests measure at the TCP level, some at the HTTP level, and some use WebSocket or custom protocols. Each layer adds headers and overhead, which slightly affects the reported number. HTTP/2 multiplexing behaves differently from multiple HTTP/1.1 connections.

Time of day. Your neighborhood shares bandwidth with your neighbors. Cable internet, in particular, uses a shared medium (the coaxial cable segment serving your neighborhood). Peak usage hours — typically 7-11 PM local time — cause real throughput to drop as more people stream video.

Bufferbloat: the hidden problem

Most speed tests don't measure bufferbloat, and it's arguably a bigger problem than raw speed for everyday internet usage.

Bufferbloat occurs when network equipment (usually your router or modem) has oversized buffers that absorb traffic instead of dropping packets. When your connection is saturated — someone starts a large download, for instance — the buffers fill up, and new packets wait in a queue instead of being processed immediately. This inflates latency from, say, 20ms to 2000ms while the buffers drain.

The effect: your speed test shows 200 Mbps, but when someone in your household starts downloading a game, everyone else's video calls stutter and web pages take forever to load. The raw throughput is fine; the latency under load is terrible.

Tests like the Waveform Bufferbloat Test and the DSLReports speed test specifically measure latency under load to detect bufferbloat. If you suspect bufferbloat, enabling SQM (Smart Queue Management) or fq_codel on your router can dramatically improve quality under congestion, sometimes at the cost of a small reduction in peak throughput.

Why your ISP's advertised speed is rarely your real-world speed

Your ISP advertises "up to 500 Mbps." You test at 380 Mbps. Are they lying?

Mostly no. The "up to" qualifier is doing real work in that sentence. Your ISP provisions your connection at 500 Mbps at their equipment, but several things reduce the number you see:

Wi-Fi. If you're testing over Wi-Fi, your wireless connection is almost certainly the bottleneck — not your ISP. Wi-Fi 5 (802.11ac) rarely delivers more than 400-500 Mbps in practice, and Wi-Fi 6 (802.11ax) tops out around 700-900 Mbps in good conditions. Walls, distance, interference from neighbors' networks, and the number of devices all degrade wireless performance. Test on a wired Ethernet connection to measure your ISP speed separately from your Wi-Fi performance.

Network congestion. Your ISP's local node, peering points, and backbone links all have finite capacity. During peak hours, contention at any of these points reduces throughput.

Protocol overhead. TCP/IP headers, Ethernet framing, and PPPoE encapsulation (if applicable) all consume some of the raw link bandwidth. On a 500 Mbps link, you'll typically see 470-490 Mbps of usable throughput even under ideal conditions.

Routing. The path between you and the speed test server might not be the most direct. ISP peering disputes, suboptimal BGP routing, and intermediate congestion all affect end-to-end throughput.

How to interpret your results

A speed test is a useful diagnostic snapshot, not an absolute measurement of your connection quality. Here's a practical framework:

Test wired, not wireless. Plug into your router with Ethernet first. If the wired test matches your plan speed but Wi-Fi doesn't, your problem is Wi-Fi, not your ISP.

Test multiple times, at different hours. A single test tells you very little. Three tests — morning, afternoon, evening — over a few days gives you a much better picture.

Test to a nearby server. If you're trying to diagnose whether your ISP is delivering the speed you're paying for, test to the closest server possible. Cross-country or international tests measure the internet between you and that server, not just your last-mile connection.

Look at ping and jitter, not just throughput. For video calls, gaming, and remote work, latency matters more than megabits once you're past 25 Mbps.

Try our speed test tool to measure your connection. It shows download speed, upload speed, and ping — the three numbers that actually matter for understanding your internet performance.