QUIC TCP 3 locations

Speed Test

Download, upload, latency, jitter, packet loss and how your connection responds when it is full, measured the same way over QUIC and TCP to the same server.

Server

Timing every location from your browser…

Test

Ready —
Protocols
Transfer length
  1. Latency
  2. Loss
  3. Download
  4. Upload
  5. Route

Results

Download

QUIC — Mbps
TCP — Mbps

Download: how it is measured

Read by your browser over 12 QUIC streams or 6 TCP connections for the whole transfer, counted as each byte arrives. The figure is the rate after the ramp: from the first quarter-second window reaching 90% of the median of those after it (at most half the transfer). Below it: the average including the ramp and the best single second.

Upload

QUIC — Mbps
TCP — Mbps

Upload: how it is measured

Counted by the server: every stream or connection names one test, and the server adds what each delivers to one meter, in 50 ms buckets, as it arrives. The page reads that meter, so this is what crossed the network rather than what the browser buffered. Over QUIC the upload uses several sessions, four streams each: about one per millisecond of round trip to start (4 to 32), doubling while the rate keeps rising (up to 32): a browser holds only about 128 KB in flight per session, so one session cannot fill a long path. Over TCP, six connections. Same ramp rule as the download.

Latency

QUIC — ms
TCP — ms

Latency: how it is measured

Idle round trip, the median. QUIC: 60 datagrams echoed by the server, timed in a background worker. TCP: 20 requests on a kept-alive connection, timed from the browser's Resource Timing (request start to first response byte).

Jitter

QUIC — ms
TCP — ms

Jitter: how it is measured

The mean difference between consecutive idle round trips, the same definition for QUIC and TCP.

Packet loss

QUIC — %

Packet loss: how it is measured

400 QUIC datagrams of about 1,000 bytes, one every 5 ms; an echo not back within four times the 95th-percentile round trip (at least 1 s) counts as lost, either direction. The range is the 95% confidence interval for that many packets. TCP retransmits losses, so it has no loss figure.

Responsiveness

Downloading — RPM
Uploading — RPM

Responsiveness: how it is measured

Round trips under load: datagram echoes every 100 ms while each transfer runs. RPM is 60,000 over their median; the grade is how much they grew over the idle median (A+ under 5 ms, A under 30, B under 60, C under 200, D under 400, F beyond).

Over time

How it works

Everything runs in a worker

The measurements run in a background worker: it opens the WebTransport session and the TCP connections, times every round trip and counts every byte. The page only draws. A busy frame on screen never sits between a packet arriving and its timestamp.

The same rules for both protocols

QUIC and TCP reach the same server over the same path. Both downloads are counted as they arrive, both uploads by the server, and both are judged by the same ramp rule. Jitter is defined once. Each transfer runs on its own, one after another.

Latency when it matters

An idle connection answers quickly almost everywhere. What spoils a call or a game is the delay that builds up while something else fills the link. Round trips are timed throughout every transfer, and the increase over idle is graded.

The servers

The servers are in Kansas City, Kansas City 2 and St. Louis. Each one tunes its network the same way: BBR congestion control (BBRv3 for QUIC), fair-queue pacing and large socket buffers. A result then measures the path, not the server.

Questions

How is download speed measured?

Your browser reads data from the server over several parallel streams (twelve over QUIC, six TCP connections over TCP) for a fixed time and counts every byte as it arrives. The first moments of a transfer are slower while the connection finds the path's rate, so the result is the rate after that ramp: from the first quarter-second window that reaches 90% of the median of the windows after it (never later than half the transfer). The average including the ramp and the best single second are shown beside it.

How is upload speed measured?

By the server. Every upload stream or connection carries the same random test id, and the server counts what each one delivers, as it arrives, on one meter in 50 ms buckets. Over QUIC the browser uploads on several WebTransport sessions at once (a browser keeps only about 128 KB in flight per session, so one session cannot fill a long path), as it uses six connections over TCP. The page reads that meter during the test for the live figure and afterwards for the result, so the figure is what crossed the network, not what your browser handed to its own send buffer. The same ramp rule as the download applies.

What is latency under load, and what is RPM?

While each transfer runs, the page keeps sending small QUIC datagrams and timing their echoes. A connection whose router queues too much data gets slower to respond when it is busy (bufferbloat): the increase over the idle round trip is graded from A+ (under 5 ms) to F (400 ms or more). RPM, round trips per minute, is 60,000 divided by the median round trip under load, as the IETF responsiveness draft defines it: higher is better.

How are latency and jitter measured over QUIC and TCP?

Over QUIC, as datagram round trips: the server echoes each one at once, and the page times it in a background worker, away from page rendering. Over TCP, as HTTP request round trips on a connection kept open, read from the browser's Resource Timing (request start to first response byte), so the browser's own request handling is not counted. Jitter is the mean difference between consecutive round trips, the same definition for both.

How is packet loss measured?

The page sends 400 QUIC datagrams of about 1,000 bytes, one every 5 ms, and counts the echoes that come back within four times the 95th-percentile round trip (at least one second). Loss is round trip, either direction. The result carries a 95% confidence interval: 0 lost of 400 means under about 1%, not exactly 0%. TCP has no loss figure: it retransmits whatever is lost.

Why compare QUIC and TCP?

They reach the same server over the same path, so a difference is the network treating them differently. QUIC runs over UDP, which some networks rate-limit or block; TCP rarely is. The servers run BBR congestion control on both (BBRv3 for QUIC, the kernel's BBR for TCP), so the comparison is not two different controllers. Each transfer runs alone, one after another.

Which server should I pick?

The page times every location from your browser when it loads and starts on the one that answers fastest; you can choose any other. The servers are in Kansas City, Kansas City 2 and St. Louis.

What does Compare show?

Where your result falls among other tests in the last 30 days that were measured the same way: the share of them that did worse, per metric. It compares against tests of the same server when there are at least ten, and says when it had to use every server instead. Results from before this way of measuring are not compared.

⟨ QUANTUM ERROR PORTAL ⟩

Navigate the Error Dimensions