introduction to quic
TRANSCRIPT
Introduction to QUIC Quick UDP Internet Protocol
Shuya OSAKI@otimsuya69 RG:shuyaKEIO SFC Jun Murai Lab. KUMO Kenkyu Gundan
For a kickoff 1
This slide is add-up of my study
of QUIC (Quick UDP Internet Protocol)
All of this based on 2 papers. “Evaluation of QUIC on Web Page Performance” “HTTP over UDP: an Experimental Investigation of QUIC.”
What is QUIC ?? 2
What is QUIC ??QUIC is Google’s new multiplexing protocol.
This is run on UDP.
QUIC succeed to SPDY’s features.
Site from HTTP over UDP: an Experimental Investigation of QUIC
QUIC’s layer
Features of QUICStream multiplexing over the same UDP Connections.
UDP resilience to loss (QUIC divorced HOL blocking !!)
FEC resilience to loss QUIC sends XORsum of the packets.
TLS-like security
Low cost, 0-RTT start instead of TCP handshake
Pluggable congestion control TCP-CUBIC and Pacing-based
Related Work 3
Multiplexing ProtocolsHTTP/1.1
SPDY
QUIC
They are at the higher application level.
Congestion Control Algorithms
Site from High Performance Browser Networking
HTTP/2’s multiplexing
TCP-CUBIC
WebRTC Inter-Arrival
Sprout-EWMA
They are at the lower transport level.This schedule when packets sent on the wire.
Multiplexing Protocol
4
Multiplexing protocols 5
HTTP/1.1HTTP/1.1 doesn’t have multiplexing.However, some techniques can use.
HTTP PipelineWhich enables to send multiple request without waiting ACK packets.
HTTP Pipeline
Site from https://en.wikipedia.org/wiki/HTTP_pipelining
Use Multiple TCP Connection
HTTP/1.1 doesn’t have multiplexing. So uses multiple TCP connection. This connection is limited up to 6.
Multiple TCP Connection
Site from https://www.cloudflare.com/http2/what-is-http2/
Multiplexing protocols 6
SPDYSPDY is proposed by Google. Which is succeed to HTTP/2.
Multiple HTTP request on one TCP socketWhich enables to avoid handshakes and slow start SPDY makes multiple streams, this reduces waiting time for download.
Compress HTTP headersThis reduces size of the packet.
Site from http://www.iij.ad.jp/company/development/tech/activities/spdy/
Server Push
Server PushServer forecasts next request.And sends packet in advance.
Prioritization among parallel requestServer assigns priority to packet 0 to 7. Which optimizes data processing for client.
Multiplexing protocols 7
QUICQUIC is proposed by Google. Which inherits SPDY.
QUIC runs over UDPQUIC runs over UDP, NOT TCP. This means eliminate HOL blocking.
Compress HTTP headersThis reduces size of the packet. Site from HTTP over UDP: an Experimental Investigation of QUIC
Multiplexing
Server PushServer forecasts next request.And sends packet in advance.
Prioritization among parallel requestServer assigns priority to packet 0 to 7. Which optimizes data processing for client.
Same benefit as SPDY
Congestion Control Algorithm
8
Congestion Control Algorithm 9
TCP-CUBICDefault TCP implementation in Linux.CUBIC is enhanced version of BIC-TCP.
How to ControlIf occur packet loss,BIC-TCP sets the point of congestion window parallel point. In CUBIC this point sets by cubic function.
Site from CUBIC: A New TCP-Friendly High-Speed TCP Variant
TCP’s Congestion Control
WebRTC Inter-ArrivalHow to Control
Instead of reacting of failed packet delivers, Inter-Arrival proactively paces outat a certain rate. It measures the current sending rate and estimate available bandwidth.
Sprout-EWMAHow to Control
Sprout is an end-toned transport protocol. It’s window-based protocol like Cubic, but it calculates similar to Inter-Arrival. Sprout-EWMA is simpler version of Sprout
QUIC ’s Features
10
QUIC’s Features 11
Stream MultiplexingThis has been inherited from SPDY.
1) prioritization among QUIC streams2) traffic bundling over the same UDP3) compression of HTTP Headers
TLS-like securityQUIC uses its own encryption algorithm named QUIC-Crypto. This avoids serialized decoding dependency.
Site from HTTP over UDP: an Experimental Investigation of QUIC
QUIC RTT
Low-cost, 0-RTTQUIC forces out TCP-handshakes, QUIC establishes secure connection with 0-RTT overhead.
UDP resilience to lossQUIC, over UDP, can bypass HOL and deliver data for other streams.
QUIC’s Features 12
Connection IdentifierA QUIC connection is identified by a CID (Connection IDentifier) at application layer.
1) CID is not based IP address, client don’t have to re-establish a connection.2) CID is useful the case of NAT unbinding. 3) QUIC native supports to multi-path which is good for mobile clients that roaming.
FEC resilience to lossForward Error Correction (FEC) module copes with packet losses. This could be reducing HOL by recovering a lost packet. If single packet is lost, client can recover it from using XORed packet.
Pluggable Congestion ControlQUIC supports two congestion control algorithms.
1) TCP-CUBIC 2) pacing-based congestion control algorithms
ex. WebRTC Inter-Arrival , Sprout-EWMA
QUIC is canceled the adoption of XOR.
Bibliography 13
Das, Somak R. Evaluation of QUIC on Web Page Performance. Diss. Massachusetts Institute of Technology, 2014.
Carlucci, Gaetano, Luca De Cicco, and Saverio Mascolo. "HTTP over UDP: an Experimental Investigation of QUIC." Proceedings of the 30th Annual ACM
Symposium on Applied Computing. ACM, 2015.
Google QUIC -
. HTTP/2
The Chromium Projects QUIC