HTTP/3 QUIC Calculator
Compare HTTP/3 over QUIC against TCP plus TLS: handshake round trips, congestion-window growth and total transfer time.
Inputs
Total Transfer Time
173.8ms
Time to First Byte
40.0ms
Congestion-Window Growth Rounds
3
Time Lost to Retransmission
13.8ms
Saving vs TCP + TLS 1.3
80.0ms
Datagrams to Send
46
Step by step
Values used
Round-trip time = 40 ms; Response size = 60 KB; QUIC datagram payload = 1,350 bytes; Initial congestion window = 10 packets; 0-RTT resumption available = Yes; Packet loss = 1.50 %
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.
Total Transfer Time
= 173.8 ms
Time to First Byte
= 40.0 ms
Congestion-Window Growth Rounds
= 3
Time Lost to Retransmission
= 13.8 ms
Saving vs TCP + TLS 1.3
= 80.0 ms
Datagrams to Send
= 46
How it works
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.
Formulas
HTTP/3 QUIC
datagrams = response ÷ payload size; growth rounds = ceil(log2(datagrams ÷ initial cwnd + 1)); transfer = (setup RTTs + 1) × RTT + rounds × RTT.
- setupRtt
- 0 with QUIC 0-RTT resumption, 1 for a fresh QUIC handshake, 2 for TCP + TLS 1.3
- congestionRounds
- Round trips for slow start to open the window wide enough
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.
Frequently Asked Questions
How is HTTP/3 QUIC calculated?
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.
Why does HTTP/3 QUIC matter?
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.
What values do I need to enter?
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.