QUIC�
Redefining Internet Transport
�
Presenter: Jana Iyengar
QUIC�
Redefining Internet Transport
�
Reinventing?
�
Presenter:�Jana Iyengar
QUIC�
Redefining Internet Transport
�
Doing
�
Right!
�
Presenter:�Jana Iyengar
How do you make the web faster?
$BROWSER
HTTP/1.1
TLS 1.2
TCP
IP
Physical Network
google.com
User-perceived latency
How do you make the web faster?
$BROWSER
HTTP/1.1
TLS 1.2
TCP
IP
Physical Network
google.com
Google CDN
User-perceived latency
Build a carrier-grade network
google.com
How do you make the web faster?
$BROWSER
HTTP/1.1
TLS 1.2
TCP
IP
Physical Network
Chrome
HTTP/2
google.com
Google CDN
User-perceived latency
Launch your own browser
Update HTTP
Build a carrier-grade network
google.com
How do you make the web faster?
$BROWSER
HTTP/1.1
TLS 1.2
TCP
IP
Physical Network
Chrome
HTTP/2
???
google.com
Google CDN
User-perceived latency
Launch your own browser
Update HTTP
Build a carrier-grade network
Update
transport
google.com
What is QUIC?
QUIC
Quick UDP Internet Connections
What is QUIC?
New transport designed to reduce web latency
*except for HTTP/2 headers, which should be fixed as well.
Where does it fit?
TLS 1.2
HTTP/2
TCP
IP
QUIC
UDP
HTTP/2 API
Always encrypted
Comparable to TLS
Perfect forward secrecy, with more efficient handshake
IP spoofing protection
Signed proof of address
Inspired TLS 1.3’s 0-RTT handshake
Plan to adopt TLS 1.3 when complete�
Connection establishment
Connection identified by Connection ID
0-RTT connection establishment
TCP
TCP + TLS
QUIC
(equivalent to TCP + TLS)
First-ever connection - 1 RTT
No cached information available
First CHLO is inchoate (empty)
Simply includes version and server name
Server responds with REJ
Includes server config, certs, etc
Allows client to make forward progress
Second CHLO is complete
Followed by initially encrypted request data
Server responds with SHLO
Followed immediately by forward-secure encrypted response data
Subsequent connections - 0 RTT
First CHLO is complete
Based on information from previous connection
Followed by initially encrypted data.
Server responds with SHLO
Followed immediately by forward-secure encrypted data
Congestion control & reliability
QUIC builds on decades of experience with TCP
Incorporates TCP best practices
TCP Cubic - fair with TCP
FACK, TLP, F-RTO, Early Retransmit...
More flexibility going forward
Improved congestion feedback, control over acking
Better signaling than TCP
Better signaling than TCP
Retransmitted packets consume new sequence number
No retransmission ambiguity
Prevents loss of retransmission from causing RTO
More verbose ACK
TCP supports up to 3 SACK ranges
QUIC supports up to 256 NACK ranges
Per-packet receive times, even with delayed ACKs
ACK packets consume a sequence number
Effective
How quick is QUIC?
Measuring performance
Controlled Experiments
Client Side
Latency, Bandwidth, Quality of Experience, Errors
Server Side
Latency, Bandwidth, QUIC Success Rate
Fine Grained Analysis
By ASN, Server, OS, Version
Deployment timeline
Tested at scale, with millions of users
QUIC: Does it work?
QUIC handshakes fail when RTTs are greater than 2.5 seconds or
when UDP is blocked
Performance on Google properties
Faster page loading times
Improved YouTube Quality of Experience
Where are the gains from?
0-RTT
Improved loss recovery
Other, smaller benefits
Safe
What we’re doing to protect users and networks
Client-side protection
What if UDP is blocked?
What if the path MTU is too small?
What if a client doesn’t want to use QUIC?
When client-side protection is not enough...
As a last resort, Google disables QUIC to specific ASNs
Why do we disable QUIC delivery?
Debugging Tools: Chrome
Debugging Tools: Wireshark
Parses
What’s Next?
Future Improvements
Open source implementations
Servers
Clients
QUIC at the IETF
Nov 2013 Initially Presented
Mar 2015 QUIC Crypto
July 2015 BarBoF
Ongoing Subsuming QUIC's 0-RTT handshake in TLS1.3
Review: QUIC Summary
QUIC�
Source: QUIC in Chromium
Page: www.chromium.org/quic
Public Mailing list: proto-quic@chromium.org
IETF draft: draft-tsvwg-quic-protocol-01