Change one condition
Use the five tabs below. The arrow keys move between tabs when a tab has keyboard focus. Nothing connects to a server. The diagrams illustrate protocol rules; they do not run a benchmark.
Open the tour in a separate page for more space.
That page also shows all five explanations when JavaScript is disabled.
- Select Setup. Change the assumed round-trip time from 20 ms to 200 ms.
- Select Packet loss. Drop A2, then recover it. Observe when B2 becomes available.
- Select Migration. Switch networks, then validate the new path.
- Select Delivery. Compare both policies for position telemetry.
What the diagrams show
The setup comparison assumes a fresh connection and TLS 1.3.
It excludes DNS, loss, Retry, processing time, and TCP Fast Open.
Its values show when the client can send a request, not when the response arrives.
Explain the result
At an 80 ms RTT, why does the tour show 160 ms for TCP and 80 ms for QUIC?
At an 80 ms RTT, why does the tour show 160 ms for TCP and 80 ms for QUIC?
TCP setup takes one round trip before the TLS 1.3 exchange takes another.
QUIC combines transport and TLS setup into one round trip under the stated assumptions.
These counts do not establish that an application runs twice as fast.
Does one lost QUIC packet affect exactly one stream?
Does one lost QUIC packet affect exactly one stream?
No. One packet can contain data from several streams.
The example deliberately loses a packet that contains only A2.
QUIC can deliver B2 because stream B has no missing bytes before B2.
Congestion control can still reduce the sending rate for the connection.
Does every returning client get 0-RTT?
Does every returning client get 0-RTT?
No. The client needs suitable resumption state, and the server can reject early data.
Early data also has replay risks. Applications must restrict which operations can use it.
Why is a reliable stream not always the best choice for current position?
Why is a reliable stream not always the best choice for current position?
A missing old value can delay newer values on the same stream.
Datagrams can suit replaceable position updates when the receiver detects stale data and handles missing updates.
A command that must execute once needs additional application rules, regardless of transport choice.
Sources and inspiration
- RFC 9000: streams, path validation, and migration.
- RFC 9001: QUIC handshake.
- RFC 8446: early data and replay.
- RFC 9221: unreliable datagrams.