Multipath TCP

  • View
    42

  • Download
    2

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Text of Multipath TCP

Opportunistic Mobility with Multipath TCP

Multipath TCPCostin RaiciuUniversity Politehnica of Bucharest

Joint work with: Mark Handley, Damon Wischik, University College LondonOlivier Bonaventure, Sbastien Barr, Universit catholique de Louvain and many many othersChristoph PaaschUniversit catholique de Louvain

Thanks to

Networks are becoming multipath

Mobile devices have multiple wireless connections Mention coverage, performance, range, etc.2Networks are becoming multipath

Mention coverage, performance, range, etc.3Networks are becoming multipath

Mention coverage, performance, range, etc.4Networks are becoming multipathDatacenters have redundant topologiesMention coverage, performance, range, etc.5Networks are becoming multipathServers are multi-homed

ClientMention coverage, performance, range, etc.6How 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]TCP is single pathA TCP connection Uses a single-path in the network regardless of network topology

Is tied to the source and destination addresses of the endpoints

Mismatch between network and transport creates problemsPoor Performance for Mobile Users3G celltower

Poor Performance for Mobile Users3G celltower

Poor Performance for Mobile Users3G celltower

Poor Performance for Mobile Users3G celltowerOffload to WiFi

Poor Performance for Mobile Users3G celltowerAll ongoing TCP connections die

Collisions in datacenters[Fares et al - A Scalable, Commodity Data Center Network Architecture - Sigcomm 2008]15Show multiple paths between serversSay that network is rearrangeably non blockingClos15Single-path TCP collisions reduce throughput

[Raiciu et. Al Sigcomm 2011]Multipath TCPMultipath TCP (MPTCP) is an evolution of TCP that can effectively use multiple paths within a single transport connectionSupports unmodified applicationsWorks over todays networksStandardized at the IETF (almost there)Multipath TCP componentsConnection setupSending data over multiple pathsEncoding control informationDealing with (many) middleboxesCongestion control[Raiciu et. al NSDI 2012][Wischik et. al NSDI 2011]Multipath TCP componentsConnection setupSending data over multiple pathsEncoding control informationDealing with (many) middleboxesCongestion control[Raiciu et. al NSDI 2012][Wischik et. al NSDI 2011]MPTCP Connection Management

SYN MP_CAPABLE X

MPTCP Connection Management

SYN/ACK MP_CAPABLE YMPTCP Connection Management

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNO

FLOW YMPTCP Connection Management

SYN JOIN Y

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Connection Management

SYN/ACK JOIN XSUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Connection ManagementSUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YTCP Packet HeaderSource PortDestination PortSequence NumberAcknowledgment NumberReceive WindowHeaderLengthReservedCode bitsChecksumOptionsUrgent PointerDataBit 0Bit 15Bit 16Bit 3120Bytes0 - 40Bytes27TCP Packet HeaderSource PortDestination PortSequence NumberAcknowledgment NumberReceive WindowHeaderLengthReservedCode bitsChecksumOptionsUrgent PointerDataBit 0Bit 15Bit 16Bit 3120Bytes0 - 40Bytes28Sequence NumbersPackets 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?29Sequence NumbersOne 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?30MPTCP Packet HeaderSource PortDestination PortSequence NumberAcknowledgment NumberReceive WindowHeaderLengthReservedCode bitsChecksumOptionsUrgent PointerDataBit 0Bit 15Bit 16Bit 3120Bytes0 - 40BytesSubflowSubflowSubflowSubflowData sequence number Data ACK31MPTCP Operation

DATA

SEQ1000DSEQ10000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

DATA

SEQ1000DSEQ10000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

DATA

SEQ1000DSEQ10000options

DATA

SEQ5000DSEQ11000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

DATA

SEQ1000DSEQ10000options

DATA

SEQ5000DSEQ11000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

DATA

SEQ1000DSEQ10000options

DATA

SEQ5000DSEQ11000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

ACK2000Data ACK11000

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNOSUBFLOW 1CWNDSnd.SEQNORcv.SEQNODATA

SEQ5000DSEQ11000options

FLOW YMPTCP Operation

DATA

SEQ5000DSEQ11000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

DATA

SEQ5000DSEQ11000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMPTCP Operation

DATA

SEQ2000DSEQ11000options

SUBFLOW 2CWNDSnd.SEQNORcv.SEQNO

SUBFLOW 1CWNDSnd.SEQNORcv.SEQNOFLOW YMultipath TCPCongestion ControlPacket switching pools circuits.Multipath pools linksTCP controls how a link is shared.How should a pool be shared? Two circuitsA linkTwo separate linksA pool of links42In a circuit-switched network, there is a dedicated channel for each flow. Its rigid and inflexible: when one flow is silent, the other flow cant fill in. Packet switching gives you much more flexibility (whether you use it for ATM virtual circuits, or for full-blown IP).

Multipath brings flexibility of the same sort. Pic 3 is rigid and inflexible, Pic 4 is flexible.

In the case of packet switching, you need to be careful about how the flows share the link. Pic 1 circuits made it easy they give strict isolation between flows. But with Pic 2 packet switching, you need a control plane. It could be with ATM and admission control. Or it could be TCP congestion control, which says how end-systems should adapt their rates so that the network shares its capacity fairly.

What sort of control plane do we need, to ensure that a multipath network works well?

42To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 1:Multipath TCP should be fair to regular TCP at shared bottlenecksTo be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many subflows it is using.A multipath TCP flow with two subflowsRegular TCP43This is the very first thing that comes to mind with multipath TCP, and its something that many other people have solved in different ways.

This is just a warm-up... Design Goal 3 is a much richer generalization of this goal, which accommodates different topologies, different RTTs. So theres no point giving an evaluation here.43To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 2:MPTCP should use efficient pathsEach flow has a choice of a 1-hop and a 2-hop path. How should split its traffic?12Mb/s12Mb/s12Mb/s44Im thinking of the paths as given. MPTCP has the choice of how to split its traffic over those given paths.44To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 2:MPTCP should use efficient pathsIf each flow split its traffic 1:1 ...8Mb/s8Mb/s8Mb/s12Mb/s12Mb/s12Mb/s4545To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 2:MPTCP should use efficient pathsIf each flow split its traffic 2:1 ...9Mb/s9Mb/s9Mb/s12Mb/s12Mb/s12Mb/s46To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 2:MPTCP should use efficient pathsIf each flow split its traffic 4:1 ...10Mb/s10Mb/s10Mb/s12Mb/s12Mb/s12Mb/s47To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 2:MPTCP should use efficient pathsIf each flow split its traffic :1 ...12Mb/s12Mb/s12Mb/s12Mb/s12Mb/s12Mb/s48To be fair, Multipath TCP should take as much capacity as TCP at a bottleneck link, no matter how many paths it is using.Design goal 3:MPTCP should get at least as much as TCP on the best pathDesign 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.wifi path: high loss, small RTT3G path: low loss, high RTT49

Lets get back to fairness. This is a more systematic and general way to think about fairness, than the simple bottleneck idea I started with.

If we follow Design Goal 2, well push all our traffic onto the low-loss path, i.e. 3G. But 3G has high RTT, which means that a TCP flow would get low throughput. In order to be fair to TCP, we shouldnt send very much traffic over 3G. But then the user is suffering because of MPTCP, which is no good.

We want the user to have an incentive to use MPTCP, and we want the network to have an incentive to permit MPTCP. Heres a more precise way to put it.

49Maintain a congestion window w.

Increase w for e