Compare HTTP/3 over QUIC against TCP plus TLS: handshake round trips, congestion-window growth and total transfer time.
QUIC folds the transport and cryptographic handshakes into one exchange and can skip it entirely on resumption, so the setup cost drops from three round trips to one. The rest of the transfer is governed by slow start, which doubles the congestion window each round trip. On a 40 ms path the handshake saving is most of the improvement users actually feel, and because QUIC recovers loss per stream rather than per connection, a lossy mobile link no longer stalls every request at once.
HTTP/3 QUIC
datagrams = response ÷ payload size; growth rounds = ceil(log2(datagrams ÷ initial cwnd + 1)); transfer = (setup RTTs + 1) × RTT + rounds × RTT.
TCP + TLS 1.3 baseline
TCP + TLS 1.3 needs one RTT for the TCP handshake and one for TLS before the request, so its floor is 3 × RTT.
datagrams = response ÷ payload size; growth rounds = ceil(log2(datagrams ÷ initial cwnd + 1)); transfer = (setup RTTs + 1) × RTT + rounds × RTT. QUIC folds the transport and cryptographic handshakes into one exchange and can skip it entirely on resumption, so the setup cost drops from three round trips to one. The rest of the transfer is governed by slow start, which doubles the congestion window each round trip.
On a 40 ms path the handshake saving is most of the improvement users actually feel, and because QUIC recovers loss per stream rather than per connection, a lossy mobile link no longer stalls every request at once.
This calculator takes 6 inputs: Round-trip time, Response size, QUIC datagram payload, Initial congestion window, 0-RTT resumption available, Packet loss. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.