QUIC
What it is for
TCP's reliability is built into the kernel, so changing it means waiting for every operating system on earth to ship -- a decade of standstill.
★★★ QUIC moves sequencing, retransmission and congestion control into user space and fuses the TLS handshake with the connection handshake -- upgrading it takes a new browser build.
★★ It picked UDP not because UDP is good but because only UDP gets through: firewalls and NATs recognise TCP and UDP, and a new protocol number would be dropped en route.
★★★ Five differences from TCP
· Handshake: one round trip, against two or three for TCP plus TLS;
· One lost packet stalls only its own stream, against TCP's single byte stream where everything stalls;
· Connection identity is a connection ID, against TCP's four-tuple, where a new network means a new connection;
· Encryption is mandatory and covers its own header, against TLS bolted on top of TCP;
· Where it lives: a user-space library, against TCP in the kernel, where a change takes a decade.
★★★ Each line maps to a scenario on the right or a block in the frame.
★ Common misconceptions
★★★ "QUIC uses UDP, so it is unreliable" -- the reliability is all still there, just moved inside the UDP payload and run by the QUIC library at each end.
★★★ "HTTP/3 is HTTP/2 with a different transport" -- head-of-line blocking is genuinely fixed, because multiplexing moved down into the transport.
★★ "Encryption is optional" -- QUIC mandates it, and encrypts most of its own header too.