Why does a fast network still feel slow?
Bandwidth doubled. Nothing got faster. The variable you changed was not the one that mattered.
- Level
- SYSTEMS
- Read time
- 12 min
- Experiment
- Available
- Type
- SIMULATION
The question
Upgrading from 10Mbps to 100Mbps barely improves page load, but halving latency transforms it. Why is the web latency-bound?
Hypothesis
A page load is a dependency chain of round trips. Bandwidth shortens the transfer of each response; latency multiplies with the number of sequential requests, and most pages have plenty of those.
Method
Laboratory available
The instrument for this investigation runs in the laboratory, where the controls, the live model and the observation log share one workstation.
Enter the laboratoryAdjust latency, bandwidth, packet loss, protocol and server distance independently. Watch which slider actually moves the finish line.
Protocol
- 01Fix latency at 150ms and raise bandwidth from 5 to 100Mbps. Record the change in total time.
- 02Reset bandwidth to 5Mbps and drop latency to 20ms. Record again.
- 03Switch HTTP/1.1 → HTTP/2 with many small assets and watch connection reuse.
- 04Introduce 2% packet loss and compare HTTP/2 with HTTP/3.
What we observed
Bandwidth has diminishing returns almost immediately. Latency is linear in the number of sequential round trips, and a page with a dependency chain. HTML → CSS → font → image, pays it several times over.
Why it happens
| HTTP/1.1 | HTTP/2 | HTTP/3 | |
|---|---|---|---|
| Transport | TCP | TCP | QUIC over UDP |
| Multiplexing | No, 6 connections per origin | Yes, one connection | Yes, one connection |
| Head-of-line blocking | At the request level | At the TCP level on loss | Per-stream only |
| Header compression | None | HPACK | QPACK |
| Handshake to first byte | TCP + TLS (2 to 3 RTT) | TCP + TLS (2 to 3 RTT) | 1 RTT, 0-RTT on resumption |
| Connection migration | No | No | Yes, survives a network change |
HTTP/3 does not make a healthy network faster. It makes a *lossy* network dramatically less bad, because each stream recovers independently instead of waiting behind one missing TCP segment. On mobile networks, that is most of the value.
Why doesn't more bandwidth fix page load?
Because most requests are small, and small transfers are dominated by the round trip, not the throughput.
Further research
A CDN is usually described as a cache; its more important property is terminating the TLS handshake near the user. Even for a fully dynamic, uncacheable response, the three handshake round trips happen over 20ms instead of 150ms, and only the final origin fetch pays the long distance, over an already-warm connection.
References
- 01RFC 9114HTTP/3
- 02MDNEvolution of HTTP
- 03Ilya GrigorikLatency: the new web performance bottleneck