1 / 108

Multipath TCP

Multipath TCP. Christoph Paasch Université c atholique de Louvain. Costin Raiciu University Politehnica of Bucharest. Joint work with: Mark Handley , Damon Wischik, University College London Olivier Bonaventure , Sébastien Barré , Université catholique de Louvain

cleo
Download Presentation

Multipath TCP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multipath TCP ChristophPaasch Universitécatholique de Louvain Costin Raiciu University Politehnica of Bucharest Joint work with: Mark Handley, Damon Wischik, University College London Olivier Bonaventure, SébastienBarré, Universitécatholique de Louvain and many many others Thanks to

  2. Networks are becoming multipath • Mobile devices have multiple wireless connections

  3. Networks are becoming multipath

  4. Networks are becoming multipath

  5. Networks are becoming multipath • Datacenters have redundant topologies

  6. Networks are becoming multipath Client • Servers are multi-homed

  7. How do we use these networks? TCP. Used by most applications, offers byte-oriented reliable delivery, adjusts load to network conditions [Labovits et al – Internet Interdomain traffic – Sigcomm 2010]

  8. TCP is single path A TCP connection Uses a single-path in the network regardless of network topology Is tied to the source and destination addresses of the endpoints

  9. Mismatch between network and transport creates problems

  10. Poor Performance for Mobile Users 3G celltower

  11. Poor Performance for Mobile Users 3G celltower

  12. Poor Performance for Mobile Users 3G celltower

  13. Poor Performance for Mobile Users 3G celltower Offload to WiFi

  14. Poor Performance for Mobile Users 3G celltower All ongoing TCP connections die

  15. Collisions in datacenters [Fares et al - A Scalable, Commodity Data Center Network Architecture - Sigcomm 2008]

  16. Single-path TCP collisions reduce throughput [Raiciu et. Al – Sigcomm 2011]

  17. Multipath TCP

  18. Multipath TCP (MPTCP) is an evolution of TCP that can effectively use multiple paths within a single transport connection • Supports unmodified applications • Works over today’s networks • Standardized at the IETF (almost there)

  19. Multipath TCP components Connection setup Sending data over multiple paths Encoding control information Dealing with (many) middleboxes Congestion control [Raiciu et. al – NSDI 2012] [Wischik et. al – NSDI 2011]

  20. Multipath TCP components Connection setup Sending data over multiple paths Encoding control information Dealing with (many) middleboxes Congestion control [Raiciu et. al – NSDI 2012] [Wischik et. al – NSDI 2011]

  21. MPTCP Connection Management SYN MP_CAPABLE X

  22. MPTCP Connection Management SYN/ACK MP_CAPABLE Y

  23. MPTCP Connection Management SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y

  24. MPTCP Connection Management SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SYN JOIN Y

  25. MPTCP Connection Management SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SYN/ACK JOIN X

  26. MPTCP Connection Management SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO

  27. TCP Packet Header Bit 0 Bit 15 Bit 16 Bit 31 Source Port Destination Port Sequence Number 20 Bytes Acknowledgment Number Header Length Reserved Code bits Receive Window Checksum Urgent Pointer 0 - 40 Bytes Options Data

  28. TCP Packet Header Bit 0 Bit 15 Bit 16 Bit 31 Source Port Destination Port Sequence Number 20 Bytes Acknowledgment Number Header Length Reserved Code bits Receive Window Checksum Urgent Pointer 0 - 40 Bytes Options Data

  29. Sequence Numbers Packets go multiple paths. • Need sequence numbers to put them back in sequence. • Need sequence numbers to infer loss on a single path. Options: • One sequence space shared across all paths? • One sequence space per path, plus an extra one to put data back in the correct order at the receiver?

  30. Sequence Numbers • One sequence space per path is preferable. • Loss inference is more reliable. • Some firewalls/proxies expect to see all the sequence numbers on a path. • Outer TCP header holds subflow sequence numbers. • Where do we put the data sequence numbers?

  31. MPTCP Packet Header Bit 0 Bit 15 Bit 16 Bit 31 Source Port Destination Port Subflow Subflow Sequence Number Subflow 20 Bytes Acknowledgment Number Subflow Header Length Reserved Code bits Receive Window Checksum Urgent Pointer 0 - 40 Bytes Options Data sequence number Data ACK Data

  32. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 1000 … DSEQ 10000 DATA

  33. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 1000 … DSEQ 10000 DATA

  34. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA

  35. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA

  36. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options options … … SEQ 1000 SEQ 5000 … … DSEQ 10000 DSEQ 11000 DATA DATA

  37. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO Data ACK 11000 … … ACK 2000 FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 5000 … DSEQ 11000 DATA

  38. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 5000 … DSEQ 11000 DATA

  39. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 5000 … DSEQ 11000 DATA

  40. MPTCP Operation SUBFLOW 1 CWND Snd.SEQNO Rcv.SEQNO FLOW Y SUBFLOW 2 CWND Snd.SEQNO Rcv.SEQNO options … SEQ 2000 … DSEQ 11000 DATA

  41. Multipath TCPCongestion Control

  42. Packet switching ‘pools’ circuits. Multipath ‘pools’ links TCP controls how a link is shared. How should a pool be shared? Two circuits A link A pool of links Two separate links

  43. Design goal 1:Multipath TCP should be fair to regular TCP at shared bottlenecks To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many subflows it is using. To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. A multipath TCP flow with two subflows Regular TCP

  44. Design goal 2:MPTCP should use efficient paths To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. Each flow has a choice of a 1-hop and a 2-hop path. How should split its traffic? 12Mb/s 12Mb/s 12Mb/s

  45. Design goal 2:MPTCP should use efficient paths To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. If each flow split its traffic 1:1 ... 12Mb/s 8Mb/s 12Mb/s 8Mb/s 8Mb/s 12Mb/s

  46. Design goal 2:MPTCP should use efficient paths To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. If each flow split its traffic 2:1 ... 12Mb/s 9Mb/s 12Mb/s 9Mb/s 9Mb/s 12Mb/s

  47. Design goal 2:MPTCP should use efficient paths To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. • If each flow split its traffic 4:1 ... 12Mb/s 10Mb/s 12Mb/s 10Mb/s 10Mb/s 12Mb/s

  48. Design goal 2:MPTCP should use efficient paths To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. • If each flow split its traffic ∞:1 ... 12Mb/s 12Mb/s 12Mb/s 12Mb/s 12Mb/s 12Mb/s

  49. Design goal 3:MPTCP should get at least as much as TCP on the best path Design Goal 2 says to send all your traffic on the least congested path, in this case 3G. But this has high RTT, hence it will give low throughput. To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using. wifi path: high loss, small RTT 3G path: low loss, high RTT

  50. How does TCP congestion control work? Maintain a congestion window w. Increase w for each ACK, by 1/w Decrease w for each drop, by w/2

More Related