Same network. Different delivery rules.
Follow five concepts. Change one condition and see what the receiver can do.
QUIC uses UDP. It adds its own transport rules.
Read downward from the application to the network. These examples compare HTTP/2 and HTTP/3.
TLS over TCP
- HTTP/2 requests and responses
- TLS 1.3 encryption
- TCP one ordered byte stream
- IP addressing and routing
QUIC over UDP
- HTTP/3 requests and responses
- QUIC + TLS 1.3 streams and encryption
- UDP datagram carrier
- IP addressing and routing
UDP does not recover lost data. QUIC implements recovery for its reliable streams above UDP.
Read more: RFC 9000 §1 and RFC 9001 §4. Link and physical layers are omitted here.
Count the waits before a client sends a request.
A fresh connection, TLS 1.3, no loss, no Retry, and no TCP Fast Open. DNS and processing time are excluded.
Two sequential setup exchanges
ms 2 × RTT before request send
Transport and crypto together
ms 1 × RTT before request send
0-RTT is a separate resumption case. Eligible clients can send early data, but the server can reject it and replay remains a concern.
These counts describe request-send timing, not response latency or a speed benchmark. RFC 9001 §4; RFC 8446 §8.
A gap in A does not have to block B.
A and B are independent application streams on one connection. The lost packet in this example carries only A2.
One transport delivery order
Application chunks in TCP byte orderLater bytes wait behind the missing range.
A delivery order for each stream
Stream AA1 and B1 arrived. A2 and B2 are in flight. Drop A2 to compare delivery.
QUIC packets can carry data from several streams. Streams still share congestion control, and application dependencies can cause additional waiting.
The boxes represent application chunks, not complete packet formats. RFC 9000 §2 and §13.
A new path can keep the same QUIC connection.
Assume an established connection, supported client migration, and a reachable server on the new path.
The address tuple changes
Original connection active
Ordinary TCP identifies the connection by its addresses and ports.
Connection identity and path differ
Original connection active
Connection IDs help associate packets with the existing connection.
Both examples use Wi-Fi. Switch the client's network to change its address.
Path validation uses PATH_CHALLENGE and PATH_RESPONSE. Connection IDs can change; an unchanged ID is not required. Migration is not a zero-loss guarantee.
This comparison excludes TCP extensions and VPNs that preserve a stable address. RFC 9000 §8–9.
Choose what the application needs to preserve.
Recover missing bytes
The receiver gets bytes in order while the stream remains active. A gap can delay later bytes on that stream.
Useful when the complete content matters.
Permit missing messages
Lost DATAGRAM frames are not retransmitted. The application handles missing, late, or reordered messages.
Useful when a newer value replaces an older one.
Select a policy, then explain how the receiver detects stale data.
Reliable does not mean on time. Datagram does not mean congestion-free. Commands also need expiry, acknowledgment, and failure behavior where appropriate.
This example concerns position telemetry, not an emergency-stop system. RFC 9221 §5.