Google Wants to Speed Up the Internet with QUIC
QUIC (Quick UDP Internet Connections, pronounced 'quick') is a multiplexing transport protocol running over UDP with the main goal to have 0-RTT connectivity overhead. Robbie Shade, a Google developer, has introduced QUIC in a recent video, having the following main features:
It has all the benefits of SPDY (multiplexing, priorities, etc.)
Packet pacing that reduces packet loss
Forward error correction that reduces retransmission latency
Adaptive congestion control (friendly to TCP), reducing reconnections for mobile clients
Encryption equivalent to TLS
Chrome can talk QUIC to Google today
QUIC deals with transmission reliability, missing or out of order packets, something which UDP does not do by default. Multiplexing in QUIC means that the protocol uses multiple channels to deliver data, so if a packet is lost in one stream of data, the others are not blocked waiting on the missing one as it happens with SPDY, which does multiplexing but over a single channel. This approach in QUIC solves the head-of-line blocking issue that may happen during TCP transmissions, said Shade.
A major benefit of using QUIC is the fact that it does not require a handshake step when making the first contact between a client and a server, somewhat similar to TCP Fast Open, which has been discussed since 2011 but has not seen broad adoption yet. According to Shade, the TCP handshake can take up to 300ms over a transatlantic connection if TLS is involved, while QUIC can cut that latency down to 100ms.
Another advantage of QUIC is that communication channels are not defined by IP+Port but by an ID, which makes it possible to continue a connection while switching networks, such as leaving a WiFi zone and entering a mobile one.
All QUIC connections are encrypted using a specific mechanism detailed in the QUIC Crypto document.
When asked why not use an improved version of TCP +TLS, Shade said that while TCP and TLS are being improved, the protocol iteration and its deployment are very slow, and QUIC is deployed at the client level not the kernel one, being subject to much faster iterations, “weeks rather than years.”
According to Shade, SPDY could run on top of QUIC in the future, making it even better than what it is today. Some of the lessons learned and tested by Google in practice with QUIC could be incorporated into TCP in the future.
Currently there is a client and a server available in Chromium, and QUIC is used by google.com, GMail, YouTube, and other Google services.