QUIC�
video of talk: http://www.youtube.com/watch?v=hQZ-0mXFmk8
Google Developers Live: QUIC
QUIC
Quick UDP Internet Connections
Google Developers Live: QUIC
image from Wikipedia (http://en.wikipedia.org/wiki/File:Internet_map_1024.jpg)
Google Developers Live: QUIC
client
client
server
server
Google Developers Live: QUIC
data from httparchive.org
Google Developers Live: QUIC
What about TCP?
Google Developers Live: QUIC
What about SPDY/HTTP2?
SPDY/HTTP2 is already a significant step forward,
QUIC is a natural extension of this research.
Could we do even better if we ran SPDY/HTTP2 over a UDP transport?
Google Developers Live: QUIC
Making the web faster
Two paths to success:
A. QUIC makes headway on its own, delivers performance improvements
B. TCP and TLS leverage techniques and lessons learned in QUIC
Either way, the users win.
Google Developers Live: QUIC
multiplexing
Google Developers Live: QUIC
HTTP pipelining
GET /img.jpg
img.jpg
client
server
Google Developers Live: QUIC
Multiple TCP connections
client
server
Google Developers Live: QUIC
SPDY: multiplexing over TCP
Google Developers Live: QUIC
Head-of-line blocking in SPDY
Google Developers Live: QUIC
QUIC: multiplexing over UDP
Google Developers Live: QUIC
No head-of-line blocking in QUIC!
Google Developers Live: QUIC
latency
Google Developers Live: QUIC
Delay | User reaction |
< 100 ms | instant |
100 ms - 300 ms | reasonable |
300 ms - 1 s | getting tedious |
> 1 s | closes tab |
table adapted from High Performance Browser Networking (Grigorik 2013)
Google Developers Live: QUIC
image from High Performance Browser Networking (Grigorik 2013)
TCP: 1 round trip
Google Developers Live: QUIC
image from High Performance Browser Networking (Grigorik 2013)
TCP + TLS: 3 round trips
TCP
TLS
request
Google Developers Live: QUIC
Google Developers Live: QUIC
TCP
TCP + TLS
QUIC
100 ms
200 ms
300 ms
0 ms
100 ms
1. Repeat connection
2. Never talked to server before
1
1
2
2
Google Developers Live: QUIC
Encryption
Comparable to TLS
Perfect forward secrecy, with more efficient handshake
Replay attack protection
single-use cryptographic nonce
IP spoofing protection
signed proof of address
Google Developers Live: QUIC
Forward Error Correction
Google Developers Live: QUIC
Packet Pacing
Google Developers Live: QUIC
“Parking lot problem”
Google Developers Live: QUIC
Deployment
Google Developers Live: QUIC
QUIC in Chrome Dev/Canary
enable QUIC: chrome://flags/#enable-quic�
inspect QUIC: chrome://net-internals#quic
Google Developers Live: QUIC
QUIC
Multiplexed, encrypted transport over UDP
Google Developers Live: QUIC
QUIC�
Source: QUIC in Chromium
Further reading: Design doc and rationale, Wire spec, Crypto doc
Mailing list: proto-quic@chromium.org
Robbie Shade
video of talk: http://www.youtube.com/watch?v=hQZ-0mXFmk8
Google Developers Live: QUIC