4 ms·
HTTP/3 doesn't use TCP, that's the entire reason they invented it.
by suprfsat 4y ago
HTTP/3 doesn't use TCP, that's the entire reason they invented it.
- arghwhat 4y agoThe exact same applies to UDP. Your connection is (usually) a single full duplex stream of Ethernet packets, sending and receiving packets one at a time, providing concurrency across the many open connections through time sharing, not parallelism.
- tialaramex 4y agoThe crucial thing QUIC being UDP enabled them to do (it would also have worked if you could just make a new transport protocol on IP, but you can't because that extension point is rusted shut on the public Internet) was avoid TCP head-of-line blocking. Suppose for some crazy reason, the fifth of ten packets with the JPEG of the cute puppy inside it gets lost on the network. It's sent, but it's never received. With HTTP/1 the TCP session that was being used to send the Puppy JPEG is stalled until the loss is detected and the packet is resent, which will be about one full round trip latency and maybe more. But, it's usual to have several parallel connections, the one we're using to fetch a JPEG of a kitten continues as normal. With HTTP/2 the whole HTTP session is stalled, not just the Puppy, a JPEG of a kitten you asked is also stalled, as is the Font we were going to use to render placeholder text. With HTTP/3 we're back to just the Puppy JPEG is stalled, the kitten, font etc. are unaffected even though they're in the same HTTP session.