Google announced last week their plan to formally propose their QUIC Internet Protocol to the Internet Engineering Task Force (IETF). Simply put, Google wants to make QUIC a standard for the modern Internet.
QUIC, or Quick UDP Internet Connections, is a transport layer network protocol that was implemented around 2013. It’s okay if you haven’t heard of it, but you’d be surprised if I told you that you have used it. Google recently revealed that they have been experimenting with QUIC and currently half the requests from Google Chrome to Google servers are sent via QUIC.
So what exactly is QUIC and why does Google claim that it can speed up the Internet? For those of you who may not know this, the Internet runs on two main protocols: User Datagram Protocol (UDP) and Transmission Control Protocol (TCP). Applications like the World Wide Web, email and file transfer, basically any application that requires reliable data transfer uses TCP. Those applications which don’t give high priority to reliable data transfer use UDP: DNS and VoIP. One of the most appealing features of UDP is that it is faster than TCP, but it doesn’t spend extra time to make sure if the packages have been successfully received, which is why it is used for gaming applications. For such services we want to reduce the overall latency and it would defeat the purpose if we tried to make sure that all requests have been received by the server. We would, however, not use UDP to request a website.
With QUIC Google aims to speed up the Internet by combining the best of UDP and TCP. TCP offers reliable data transfer but it also adds to latency by its round trip time (RTT) because it must establish a connection with the server every time. But with QUIC, users will experience a faster browsing experience because at the back-end the browser does not need to establish a connection with a server it has already talked to before. This means zero RTT. Some of the other results reported by Google are:
- QUIC has better loss recovery and congestion control.
- It works better than TCP even in the poorest of network conditions.
- Packet sequence numbers are never reused during re-transmission.
- The testing phase also revealed that users get 30% less re-buffers while watching videos over QUIC.
All this is well and good, some of you might say, but why doesn’t Google improve the pre-existing TCP? According to Google, TCP support is built into Operating System kernels – something they have no control over. Also, don’t mistake QUIC for a new internet protocol. If Google were to design a new protocol all machines that are the backbone of the internet would have to understand it. But they already understand UDP and UDP forms the basis of QUIC.
Before Google officially proposes QUIC to IETF they say they need a few things straightened like changing their wire format and updating their reference implementation from SPDY-over-QUIC to HTTP2-over-QUIC.
If you feel like, you can check out the code and also experiment with it. Also, if you want to check if your connection to Chrome uses QUIC you can find it out by using this browser extension.
Some facts and figures taken from the Google Chrome blog.