Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to QUIC

1,664 views

Published on

研究室用に作成したQUICの入門スライド。
This is slide of introduction to QUIC that I created for the lab.

Published in: Internet
  • Be the first to comment

Introduction to QUIC

  1. 1. Introduction to QUIC 
 Quick UDP Internet Protocol Shuya OSAKI
 @otimsuya69 RG:shuya
 KEIO SFC Jun Murai Lab. KUMO Kenkyu Gundan
  2. 2. 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.”
  3. 3. 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 QUIC Stream 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
  4. 4. Related Work 3 Multiplexing Protocols HTTP/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.
  5. 5. Multiplexing Protocol 4
  6. 6. Multiplexing protocols 5 HTTP/1.1 HTTP/1.1 doesn’t have multiplexing. However, some techniques can use. HTTP Pipeline Which 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/
  7. 7. Multiplexing protocols 6 SPDY SPDY is proposed by Google. Which is succeed to HTTP/2. Multiple HTTP request on one TCP socket Which enables to avoid handshakes and slow start
 SPDY makes multiple streams, 
 this reduces waiting time for download. Compress HTTP headers This reduces size of the packet. Site from http://www.iij.ad.jp/company/development/tech/activities/spdy/ Server Push Server Push Server forecasts next request.And sends packet in advance. Prioritization among parallel request Server assigns priority to packet 0 to 7. Which optimizes data processing for client.
  8. 8. Multiplexing protocols 7 QUIC QUIC is proposed by Google. Which inherits SPDY. QUIC runs over UDP QUIC runs over UDP, NOT TCP. 
 This means eliminate HOL blocking. Compress HTTP headers This reduces size of the packet. Site from HTTP over UDP: an Experimental Investigation of QUIC Multiplexing Server Push Server forecasts next request.And sends packet in advance. Prioritization among parallel request Server assigns priority to packet 0 to 7. Which optimizes data processing for client. Same benefit as SPDY
  9. 9. Congestion Control Algorithm 8
  10. 10. Congestion Control Algorithm 9 TCP-CUBIC Default TCP implementation in Linux.
 CUBIC is enhanced version of BIC-TCP. How to Control If 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-Arrival How to Control Instead of reacting of failed packet delivers, Inter-Arrival proactively paces out
 at a certain rate. It measures the current sending rate and estimate available bandwidth. Sprout-EWMA How 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
  11. 11. QUIC ’s Features 10
  12. 12. QUIC’s Features 11 Stream Multiplexing This has been inherited from SPDY.
 1) prioritization among QUIC streams
 2) traffic bundling over the same UDP
 3) compression of HTTP Headers TLS-like security QUIC 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-RTT QUIC forces out TCP-handshakes, 
 QUIC establishes secure connection with 0-RTT overhead. UDP resilience to loss QUIC, over UDP, can bypass HOL and deliver data for other streams.
  13. 13. QUIC’s Features 12 Connection Identifier A 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 loss Forward 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 Control QUIC 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.
  14. 14. 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


×