Introduction to QUIC Quick UDP Internet Protocol Shuya OSAKI @otimsuya69 RG:shuya KEIO SFC Jun Murai Lab. KUMO Kenkyu Gundan
For a kickoﬀ 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. QUIC’s layer ˒ ɾThis is run on UDP. ɾQUIC succeed to SPDY’s features. Features of QUIC Site from HTTP over UDP: an Experimental Investigation 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
Related Work 3 Multiplexing Protocols HTTP/2’s multiplexing ɾHTTP/1.1 ɾSPDY ɾQUIC They are at the higher application level. Site from High Performance Browser Networking Congestion Control Algorithms ɾTCP-CUBIC ɾWebRTC Inter-Arrival ɾSprout-EWMA They are at the lower transport level. This schedule when packets sent on the wire.
Multiplexing protocols 6 SPDY SPDY is proposed by Google. Which is succeed to HTTP/2. ɾMultiple HTTP request on one TCP socket Server Push 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. ɾServer Push Site from http://www.iij.ad.jp/company/development/tech/activities/spdy/ 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. 41%:`T SPMF XJMM CF PWFS )551 BMUFSOBUF 41%: 4P UIF TVQQPSU GPS 41%: XJMM FOE PO .BZ `
Multiplexing protocols 7 QUIC QUIC is proposed by Google. Which inherits SPDY. Multiplexing ɾQUIC runs over UDP QUIC runs over UDP, NOT TCP. This means eliminate HOL blocking. Same benefit as SPDY ɾCompress HTTP headers ˒ This reduces size of the packet. Site from HTTP over UDP: an Experimental Investigation of QUIC ɾ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 Congestion Control Algorithm
Congestion Control Algorithm 9 TCP-CUBIC TCP’s Congestion Control 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. WebRTC Inter-Arrival Site from CUBIC: A New TCP-Friendly High-Speed TCP Variant ɾ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
10 QUIC ’s Features
QUIC’s Features 11 QUIC RTT ɾ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 Site from HTTP over UDP: an Experimental Investigation of QUIC QUIC uses its own encryption algorithm named QUIC-Crypto. This avoids serialized decoding dependency. ɾ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.
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. QUIC is canceled the adoption of XOR. 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
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Λ ͢ - ΅ͪ΅ͪ ه ɹIUUQ E IBUFOB OF KQ KPWJ ɾେ थ. HTTP/2͔Β26*$ ଓ͘8FCϓϩτίϧͷਐԽ ɹIUUQ XXX JJK BE KQ DPNQBOZ EFWFMPQNFOU UFDI UFDIXFFL QEG @ QEGɹ