400 likes | 758 Views
Multipath TCP (MPTCP). Wei Wang 04/19/2011. CISC856 University of Delaware. Reference Materials. Draft-ietf-mptcp-multiaddressed-03 Draft-ietf-mptcp-architecture-05 Draft-ietf-mptcp-congestion-02. Motivation. Growing number of multihomed hosts IPad and Smart Phones with 3G + WIFI
E N D
Multipath TCP (MPTCP) Wei Wang 04/19/2011 CISC856 University of Delaware
Reference Materials • Draft-ietf-mptcp-multiaddressed-03 • Draft-ietf-mptcp-architecture-05 • Draft-ietf-mptcp-congestion-02
Motivation • Growing number of multihomed hosts • IPad and Smart Phones with 3G + WIFI • Laptops with wired and wireless connections • When TCP encounters multihomed host • Inefficient (Throughput) • One interface, one connection (Reliability)
Possible Scenario: Mobile Client 3G Celltower Mobile Client Server
Scenario: Mobile Client (2) Mobile Client Server Wifi Wifi
Server Mobile Client Wifi Wifi Scenario: Mobile Client (3)
Scenario: Mobile Client (4) Server Wifi Mobile Client Wifi
MPTCP in the Networking Stack Standard TCP vs. MPTCP Protocol Stack
Example Usage Scenario Host A Host B A1 A2 B1 B2 Initial Connection Setup Additional Subflow Setup
B (Listener) A (Initiator) A’s Key (SYN) B’s Key (ACK+SYN) A’s Key & B’s Key (ACK) Connection Initiation • Single path
Connection Token (KeyA,KeyB) Connection Initiation (2) • MP_CAPABLE option • 64-bit key to authenticate the addition of future subflows • The mapping • Initial Data Sequence Number (64-bit truncation of hash of the key) • Used in the first subflow of a connection
Host A HostB A1 A2 B1 SYN+MP_CAPABLE (Key-A) SYN/ACK+MP_CAPABLE(Key-B) ACK+MP_CAPABLE(Key-A,Key-B) SYN+MP_JOIN(Token-B,R-A) SYN/ACK+MP_JOIN(MAC-B,R-B) ACK+MP_JOIN(MAC-A) Starting a New Subflow • SYN/ACK Exchange w/ MP_JOIN option
Starting a New Subflow (2) • MP_JOIN option (initial SYN) • Token • Identify the MPTCP connection • Mapped to 5-tuples after arrival • Demultiplexing using 5-tuples upon successful subflow setup • Cryptographic hash of the receiver’s key • Random number • Prevent replay attacks on authentication
Starting a New Subflow (3) • MP_JOIN option (responding SYN + ACK) • MAC(Key, Msg) • Key from initial handshake, Msg from Random Numbers • MAC-B = MAC (Key=(Key-B+Key-A), Msg=(R-B+R-A))
Starting a New Subflow (4) • MP_JOIN option (third ACK) • MAC-A = MAC (Key=(Key-A+Key-B), Msg=(R-A+R-B))
Sequence Numbers • PDUs 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?
Single Sequence Space • Stripe the data sequence numbers across subflows • Use data cumulative ack ACK: 1, 3, 5 ACK: 2, 4, 6
Lost PDU • Problem • Cannot tell which subflows lost data ACK: 1, 1, 1 ACK: 1, 1, 1
Multiple Sequence Spaces • Each subflow has its own sequence number space • Data sequence numbers are mapped on the subflow that sends them (DSN) • Use cumulative ack on each subflow for simplicity
(Explicit) Data Sequence Mapping ACK: 1, 2, 3 ACK: 1, 2, 3 Subflow sequence number Data sequence number
Lost PDU ACK: 1, 1, 1 ACK: 1, 2, 3 ACK: 1, 2, 3, 4 Subflow sequence number Data sequence number
Data ACK • Rationale • Deadlock conditions: acked at subflow level but failed to reach application • Freedom to drop segments at subflow level • Left edge of the advertised receive window • Shared by all subflows • Relative to Data ACK
Closing a Connection • FIN in MPTCP only affects the subflow on which it is sent • DATA FIN • Decoupled from subflow FIN • Included in the Data-level Length, not at subflow level • Once acked, remaining subflows close w/ standard FIN exchanges • Connection closed after both host’s DATA FIN acked A segment with DSN 80, and length 11, with DATA FIN set, would be acked with a DATA ACK of 91.
Acknowledgement • Multipath TCP Implementors Workshop, Maastricht et al • Work in progress (MPTCP), Mark Handley et al • Designing a Multipath Transport Protocol, Costin Raiciu & Mark Handley
MPTCP Terminology Path Subflow MPTCP Connection Data-level (Connection-level) Token Host
Summary of Goals • Improve throughput • Be “fair” • Improve resilience • Application compatibility • Network compatibility • Fallback to regular TCP
Summary of Design Decisions • Improve throughput & Be “fair” • Congestion control: coupled increases algorithm • Improve resilience • Either end can add paths • Re-transmit on any path • Application compatibility • TCP API – no mods to apps • Modify TCP stack • Network compatibility • Subflows look like regular TCP • Connection & subflow sequence spaces, acks… • Signal “MPTCP capable” with TCP option on SYN • Fallback to regular TCP
Graceful Degradation (Fallback) • Connection Initiation • Page 13