Multipath QUIC: Design and Evaluation Quentin De Coninck , Olivier Bonaventure quentin.deconinck@uclouvain.be multipath-quic.org
QUIC = Quick UDP Internet Connection ● TCP/TLS1.3 atop UDP ● Stream multiplexing → HTTP/2 use case ● 0-RTT establishment (most of the time) HTTP/2 shim HTTP/2 TLS QUIC TCP UDP IP IP 2
QUIC Packet Flags Connection ID Packet Number Encrypted Payload... 3
QUIC Packet Flags Connection ID Packet Number Encrypted Payload... Cleartext Public Header 4
QUIC Packet Does not depend on 4-tuple Flags Connection ID Packet Number Encrypted Payload... Cleartext Public Header 5
QUIC Packet Monotonically Increasing Does not depend on 4-tuple Flags Connection ID Packet Number Encrypted Payload... Cleartext Public Header 6
QUIC Packet Monotonically Increasing Contains control/data frames Does not depend on 4-tuple Flags Connection ID Packet Number Encrypted Payload... Cleartext Public Header 7
QUIC Data Transfer H1 H2 8
QUIC Data Transfer H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” 9
QUIC Data Transfer Actual data H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” 10
QUIC Data Transfer H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” F CID PN=19 ACK(25) MAX_DATA(for stream=5): 1=24 11
QUIC Data Transfer H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” Control Frames F CID PN=19 ACK(25) MAX_DATA(for stream=5): 1=24 12
QUIC Data Transfer H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” F CID PN=19 ACK(25) MAX_DATA(for stream=5): 1=24 PN=26 STREAM(id=5,of=26):”.” STREAM(id=7,of==):”Y” ACK(19) F CID 13
QUIC Data Transfer H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” F CID PN=19 ACK(25) MAX_DATA(for stream=5): 1=24 Multiplexing PN=26 STREAM(id=5,of=26):”.” STREAM(id=7,of==):”Y” ACK(19) F CID 14
QUIC Data Transfer H1 H2 F CID PN=25 STREAM(id=5,of==):”Some data in my long frame” F CID PN=19 ACK(25) MAX_DATA(for stream=5): 1=24 PN=26 STREAM(id=5,of=26):”.” STREAM(id=7,of==):”Y” ACK(19) F CID F CID PN=2= ACK(26) 15
Why Multipath QUIC? ● QUIC assumes a single-path foo 16
Why Multipath QUIC? ● QUIC assumes a single-path foo 17
Why Multipath QUIC? ● QUIC assumes a single-path foo 18
Why Multipath QUIC? ● QUIC assumes a single-path foo ● Multipath QUIC – Bandwidth aggregation – Seamless network handover ● Can try new WiFi while keeping using LTE 19
Design of Multipath QUIC ● Connection is composed of a set of paths 20
Design of Multipath QUIC ● Connection is composed of a set of paths 21
Design of Multipath QUIC ● Connection is composed of a set of paths ? Pkt Performance monitoring? Loss detection? Path congestion control? 22
Design of Multipath QUIC ● Connection is composed of a set of paths Pkt 23
Design of Multipath QUIC ● Connection is composed of a set of paths Pkt Flags Connection ID Path ID Packet Number Encrypted Payload... Explicit path identifcation 24
Design of Multipath QUIC ● Connection is composed of a set of paths Pkt Flags Connection ID Path ID Packet Number Encrypted Payload... Explicit path identifcation No path handshake 25
Design of Multipath QUIC ● Connection is composed of a set of paths Pkt Flags Connection ID Path ID Packet Number Encrypted Payload... Per-path numbering space Explicit path identifcation No path handshake 26
Multipath QUIC Data Transfer Server Server Phone via WiFi via LTE Path 1: WiFi Path 2: L TE 27
Multipath QUIC Data Transfer Server Server Phone via WiFi via LTE F CID 1 PN=1 STR(id=5) Path 1: WiFi Path 2: L TE 28
Multipath QUIC Data Transfer Server Server Phone via WiFi via LTE F CID 1 PN=1 STR(id=5) F CID 1 PN=1 STR(id=7,of==) F CID 2 PN=1 STR(id=7,of=1=24) Path 1: WiFi Path 2: L TE 29
Multipath QUIC Data Transfer Server Server Phone via WiFi via LTE F CID 1 PN=1 STR(id=5) F CID 1 PN=1 STR(id=7,of==) F CID 2 PN=1 STR(id=7,of=1=24) F CID 1 PN=2 ACK(pid=1,1) ACK(pid=2,1) Path 1: WiFi Path 2: L TE 30
Multipath QUIC Data Transfer Server Server Phone via WiFi via LTE F CID 1 PN=1 STR(id=5) F CID 1 PN=1 STR(id=7,of==) F CID 2 PN=1 STR(id=7,of=1=24) F CID 1 PN=2 ACK(pid=1,1) ACK(pid=2,1) Multiple paths acked on a single path Path 1: WiFi Path 2: L TE 31
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 32
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 33
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 ● Packet scheduling 2= ms RTT 10 ms RTT 34
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 ● Packet scheduling 2= ms RTT 10 ms RTT 35
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 ● Packet scheduling 2= ms RTT 2= ms RTT ? 10 ms RTT 36
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 ● Packet scheduling 2= ms RTT 2= ms RTT Duplicate ? 10 ms RTT 37
Multipath Mechanisms ● Path management IP1 IP3 IP2 IP4 ● Packet scheduling 2= ms RTT 2= ms RTT Duplicate ? 10 ms RTT ● Congestion control – Opportunistic Linked Increase Algorithm 38
Evaluation of Multipath QUIC ● (Multipath) QUIC vs. (Multipath) TCP – Multipath QUIC: quic-go – Linux Multipath TCP v=.91 with default settings ● Mininet environment oith 2 paths 39
Evaluating Bandoith Aggregation ● Doonload of 20 MB fle – Over a single stream – Collect the transfer time 40
Evaluating Bandoith Aggregation ● Doonload of 20 MB fle 2=ms RTT, 2= Mbps – Over a single stream – Collect the transfer time 4=ms RTT, 15 Mbps ● For a loss-free scenario 41
Evaluating Bandoith Aggregation ● Doonload of 20 MB fle 2=ms RTT, 2= Mbps – Over a single stream – Collect the transfer time 4=ms RTT, 15 Mbps ● For a loss-free scenario – MPQUIC has 13% speedup compared to MPTCP 42
Evaluating Bandoith Aggregation ● Doonload of 20 MB fle 2=ms RTT, 2= Mbps – Over a single stream – Collect the transfer time 4=ms RTT, 15 Mbps ● For a loss-free scenario – MPQUIC has 13% speedup compared to MPTCP ● But ohat about other topologies? 43
Evaluating Bandoidth Aggregation ● Experimental design, WSP algorithm ● 2x253 netoork scenarios – Vary the initial path ● Median over 15 runs Factor Minimum Maximum Capacity [Mbps] 0.1 100 Round-Trip-Time [ms] 0 50 Queuing Delay [ms] 0 100 Random Loss [%] 0 2.5 44
Large File Doonload – No Loss TCP better QUIC better 45
Large File Doonload – No Loss Single-path TCP better QUIC better 46
Large File Doonload – No Loss 47
Large File Doonload – No Loss MPQUIC better in 85% of cases 48
Large File Doonload – No Loss MPQUIC better in 85% of cases Our extracted scenario 49
Large File Doonload – No Loss Path 1: 49.4 ms RTT, 18.9= Mbps, 82 ms queing delay MPQUIC better Path 2: 1=.6 ms RTT, =.43 Mbps, in 85% of cases 11 ms queuing delay Path 1: 27.2 ms RTT, =.14 Mbps, 34 ms queuing delay Our extracted scenario Path 2: 46.4 ms RTT, 49.72 Mbps, 47 ms queuing delay 50
Large File Doonload – Losses 51
Large File Doonload – Losses QUIC copes better with losses 52
Additional Results (see paper) ● QUIC benefts more of Multipath than TCP ● Bandoidth aggregation in high BDP – MPQUIC still better performs than MPTCP ● Short fle transfers – (MP)QUIC better thanks to its low latency handshake ● Netoork handover – MPQUIC can be very efcient – New frame to communicate path state 53
Conclusion ● Multipath should be part of any transport protocol – Most devices are multihomed ● Designed and implemented Multipath QUIC – Source code + artifacts + IETF draft available – See multipath-quic.org ● Multipath more promising oith QUIC than TCP 54
What’s Next? ● Perform tests in actual netoorks – Does (MP)QUIC work in your networks? – Does MPQUIC provides better performances? – Application running on iOS11 https://itunes.apple.com/fr/app/quictester/id1322=19644?mt=8 ● – Feel free to provide feedback :-) QUICTester 55
Thanks! multipath-quic.org 56
Recommend
More recommend