Introduction to QUIC

14
Introduction to QUIC Quick UDP Internet Protocol Shuya OSAKI @otimsuya69 RG:shuya KEIO SFC Jun Murai Lab. KUMO Kenkyu Gundan

Transcript of Introduction to QUIC

Page 1: Introduction to QUIC

Introduction to QUIC Quick UDP Internet Protocol

Shuya OSAKI@otimsuya69 RG:shuyaKEIO SFC Jun Murai Lab. KUMO Kenkyu Gundan

Page 2: Introduction to QUIC

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.”

Page 3: Introduction to 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

Page 4: Introduction to QUIC

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.

Page 5: Introduction to QUIC

Multiplexing Protocol

4

Page 6: Introduction to QUIC

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/

Page 7: Introduction to QUIC

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.

Page 8: Introduction to QUIC

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

Page 9: Introduction to QUIC

Congestion Control Algorithm

8

Page 10: Introduction to QUIC

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

Page 11: Introduction to QUIC

QUIC ’s Features

10

Page 12: Introduction to QUIC

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.

Page 13: Introduction to QUIC

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.

Page 14: Introduction to QUIC

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