HAMZA KAREEM / CONCEPTS hamzawi.dev

Lesson 42 min read

Mobile Radio Networks (3G/4G/5G) & Web Performance

it's LATENCY, not "speed"

Web developmentweb performance / mobile networking

The myth

"My users are on 5G now, so my site loads fast. More bandwidth solved it."

Actually…

Web page loading is bound by LATENCY (round-trip time), not bandwidth. Past ~5 Mbps, adding more bandwidth barely moves page-load time — but every reduction in RTT helps almost linearly. Loading a page = dozens of round trips: DNS → TCP handshake → TLS → HTTP request → response, often repeated per resource. 5G's real win for the web is its LOWER LATENCY, not its higher throughput.

Round-trip time, radio leg alone

  • 3G: ~100–500 ms — brutal; every handshake is felt
  • 4G/LTE: ~30–70 ms
  • 5G (sub-6): ~10–30 ms; mmWave can hit single digits

A page needing 6 sequential round trips ≈ 2.4 s of pure waiting on 3G vs ~120 ms on 5G — same bandwidth, same server, same code.

The hidden tax: the radio wake-up (RRC state machine)

To save battery, the phone's radio drops to a low-power IDLE state when nothing's sent. The first byte of a new request must first PROMOTE the radio back to "connected" — adding ~1–2 s on 3G, a few hundred ms on LTE, less on 5G — BEFORE your request even leaves the device. Then the radio stays awake on a "tail" for several seconds, draining battery.

→ This is why ONE bundled request beats ten trickled-out ones, and why a chatty analytics/polling loop hurts both latency AND battery.

It's also lossy + variable

Radio links drop packets (interference, tower handovers, a hand over the antenna). Loss makes TCP retransmit and congestion-control back off, so real-world throughput swings wildly. "Full bars" ≠ stable.

What to actually do (web side)

  • Cut round trips: HTTP/2 multiplexing, bundle critical assets, inline above-the-fold CSS.
  • Shorten the RTT: CDN/edge so bytes travel less distance; <link rel="preconnect"> / dns-prefetch to warm DNS+TCP+TLS early.
  • Reuse connections: keep-alive; HTTP/3 (0-RTT) avoids re-handshaking.
  • Batch network chatter: don't wake the radio for tiny frequent pings.
  • Test on a throttled "Slow 3G/4G" profile in DevTools — not office Wi-Fi.

Your exercise

In Chrome DevTools, throttle to "Slow 3G" and reload your site. In the Network waterfall, count the SEQUENTIAL round trips before First Contentful Paint. Which could collapse into a single preconnect + one bundled request? Bonus: why does HTTP/3 over QUIC survive a flaky radio link better than HTTP/2 over TCP? (hint: head-of-line blocking)