1 / 30

Multipath TCP (MPTCP)

This reference material introduces Multipath TCP (MPTCP), a protocol that allows for improved network performance and resilience by utilizing multiple network paths simultaneously. It discusses the motivation behind MPTCP, provides usage scenarios and examples, and explains the protocol stack and connection initiation process. It also covers features such as subflow setup, sequence numbering, and data acknowledgement. The document concludes with information on MPTCP implementation and references for further reading.

idaliae
Download Presentation

Multipath TCP (MPTCP)

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 (MPTCP) Wei Wang 04/19/2011 CISC856 University of Delaware

  2. Reference Materials • Draft-ietf-mptcp-multiaddressed-03 • Draft-ietf-mptcp-architecture-05 • Draft-ietf-mptcp-congestion-02

  3. 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)

  4. Possible Scenario: Mobile Client 3G Celltower Mobile Client Server

  5. Scenario: Mobile Client (2) Mobile Client Server Wifi Wifi

  6. Server Mobile Client Wifi Wifi Scenario: Mobile Client (3)

  7. Scenario: Mobile Client (4) Server Wifi Mobile Client Wifi

  8. MPTCP in the Networking Stack Standard TCP vs. MPTCP Protocol Stack

  9. MPTCP Option

  10. Example Usage Scenario Host A Host B A1 A2 B1 B2 Initial Connection Setup Additional Subflow Setup

  11. B (Listener) A (Initiator) A’s Key (SYN) B’s Key (ACK+SYN) A’s Key & B’s Key (ACK) Connection Initiation • Single path

  12. 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

  13. 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

  14. 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

  15. 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))

  16. Starting a New Subflow (4) • MP_JOIN option (third ACK) • MAC-A = MAC (Key=(Key-A+Key-B), Msg=(R-A+R-B))

  17. 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?

  18. Single Sequence Space • Stripe the data sequence numbers across subflows • Use data cumulative ack ACK: 1, 3, 5 ACK: 2, 4, 6

  19. Lost PDU • Problem • Cannot tell which subflows lost data ACK: 1, 1, 1 ACK: 1, 1, 1

  20. 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

  21. (Explicit) Data Sequence Mapping ACK: 1, 2, 3 ACK: 1, 2, 3 Subflow sequence number Data sequence number

  22. Lost PDU ACK: 1, 1, 1 ACK: 1, 2, 3 ACK: 1, 2, 3, 4 Subflow sequence number Data sequence number

  23. 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

  24. 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.

  25. 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

  26. Backup Slides

  27. MPTCP Terminology Path Subflow MPTCP Connection Data-level (Connection-level) Token Host

  28. Summary of Goals • Improve throughput • Be “fair” • Improve resilience • Application compatibility • Network compatibility • Fallback to regular TCP

  29. 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

  30. Graceful Degradation (Fallback) • Connection Initiation • Page 13

More Related