Towards the end of 2018, the Internet Engineering Task Force (IETF) revealed that the HTTP-over-QUIC protocol would be renamed HTTP/3. As the original name suggests, HTTP/3 will be using QUIC as the underlying transport protocol instead of TCP. So what is QUIC, and what benefits does it provide? These are questions we’ll take a look at in this post.
QUIC and its benefits
QUIC started as an experiment by Google back in 2012 and was then proposed as a draft standard in 2015. Originally its name was an acronym for “Quick UDP Internet Connections,” although the acronym has now been dropped by the IETF.
Implemented on top of UDP, QUIC offers similar features as TCP, without some of the pain points. Which means, by using QUIC instead of TCP as its base, HTTP/3 can take advantage of the many benefits it provides.
No head-of-line blocking
For instance, although HTTP/2 (which is built on top of TCP) currently allows for multiplexing, it suffers from what is known as “head-of-line blocking.” Each physical connection can be used to stream multiple resources, but if one of those resources has a failure, all the other resources on that connection will be held up while the missing packets are retransmitted.
With QUIC, there is still the ability to multiplex, but if one resource loses packets along the way, only that resource will be affected, not all the other resources that may be streamed over the same connection.
Faster connection setup
QUIC also reduces the time it takes to set up a connection. By handling security features itself—instead of handing them off to a higher layer protocol like TLS—QUIC reduces the number of round-trips it takes to establish a connection. Instead of two round-trips, a new secure connection will only require one round-trip (1-RTT). It also offers the possibility of zero round-trip connections (0-RTT) in certain circumstances.
Reducing the number of round trips required to make a connection may not be that noticeable on low-latency networks, but on high-latency networks, it could make a noticeable difference.
Better transitions between networks
Instead of requiring an IP address for the source and destination of each request, QUIC uses a unique connection ID to ensure that all packets get delivered to the right place. The benefit of using these connection IDs instead of IP addresses is these IDs will stay the same even if you switch networks in the middle of a connection.
For instance, if your phone is connected to a local wifi network, and then it switches connection to use LTE, the change in IP address will not affect the QUIC connection. If you’re in the middle of a download, that download can continue even if you switch networks. This is currently not the case with HTTP/2.
From a performance standpoint, mobile users appear to be ones who will reap the most benefits, especially those on higher latency networks. In some tests done by Google, they found:
QUIC outshines TCP under poor network conditions, shaving a full second off the Google Search page load time for the slowest 1% of connections.
By using QUIC as its foundation, HTTP/3 aims to provide faster connections and smoother transitions between networks. Although mobile users on slow networks may notice the difference the most, these are benefits that everyone can appreciate.
HTTP/3 is scheduled to be finalized later this year. If you’re interested in learning more, here are a few resources worth checking out:
HTTP/3 explained, by Daniel Stenberg
Online book outlining HTTP/3 and its underlying protocol, QUIC
The Road to QUIC, by Alessandro Ghedini
Overview of the improvement that QUIC provides
QUIC and HTTP/3: Too big to fail?!, by Robin Marx
Article that outlines some of the cases for and against HTTP/3’s success
Hypertext Transfer Protocol Version 3 (HTTP/3), IETF
Latest draft of the HTTP/3 protocol.