MultiPath TCP - The path to multipath


Published on

Multipath TCP - The path to multipath

Published in: Engineering, Technology
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

MultiPath TCP - The path to multipath

  1. 1. MultiPath TCP The path to multipath Diogo Mónica (@diogomonica)
  2. 2. motivation User streaming radio 4G BS WiFI AP User streaming radio 4G BS WiFI AP
  3. 3. motivation Unnecessary Collision
  4. 4. motivation • Adds Redundancy and Persistence • Connection stays up when one link fails • Reduces Congestion • Ability to steer traffic away from congested links • Increases Efficiency • Takes advantage of additional interfaces, parallel paths
  5. 5. what • Multipath TCP is an evolution of TCP that can effectively use multiple paths within a single transport connection • RFC6824 • 30 (decimal) in the TCP kind field
  6. 6. features • Supports unmodified network and applications • Copes with NATs on the path • Defensive fall back to normal TCP (strictly better than normal TCP)
  7. 7. how • Replaces the lower-level socket implementations • Three independent implementations • Working linux kernel implementation • iPhones currently use MPTCP for Siri connections
  8. 8. why not SCTP? • Does not support middle boxes • Requires application changes
  9. 9. Connection establishment • Three-way handshake with MP_CAPABLE options set Syn Syn/Ack Ack
  10. 10. Connection establishment Syn MP_CAPABLE, A's key, flags Syn/Ack MP_CAPABLE, B's key, flags Ack MP_CAPABLE, A's key, B's key, flags
  11. 11. Connection establishment • Optional TCP checksums • Crypto algorithm negotiation based on optional flags • Currently only supports SHA-1
  12. 12. Subflow creation Socket MTCP Connection Socket MTCP Connection
  13. 13. Subflow creation Syn MP_JOIN, B's token, A's nonce, A's Address ID, flags Syn/Ack MP_JOIN, B's HMAC, B's nonce, B's Address ID, flags Ack MP_JOIN, A's HMAC Ack token = H(key || nonce)[:32] Address ID = Unique (Implementation specific)
  14. 14. data transfer • 64-bit data sequence number (DSN) to number all data sent over the MPTCP connection • Each subflow has its own 32-bit sequence number space
  15. 15. data transfer • All subflows share the same receive buffer and advertise the same receive window. • Two level of ACKs, regular ACKs on each subflow and connection-level ACKs for the data sequence space
  16. 16. data transfer • Initial sequence number is generated from the key (deterministic, but random). • ISDN-A = H(Key-A)[:64] • Receiver can ensure no gaps in sequence space at the start of the connection
  17. 17. path priorities • Hosts can indicate whether they wish a subflow to be used as a regular or backup path • A backup path is only used if there are no regular paths available. • Final bit of the MP_JOIN option
  18. 18. security considerations • Time-Shifted Hijacking Attacks become harder • Flooding attacks still have a stateless solution • Possibility of using other crypto algorithms in the future • Security of MTCP is “no worse” than regular TCP
  19. 19. Conclusion • MPTCP is strictly better than TCP* * this claim is totally implementation dependent
  20. 20. References • • • attachments/250_BSDCan2013_MPTCP.pdf • hard-can-it-be-designing-and-implementing- deployable-multipath-tcp • html/2013/09/18/mptcp.html
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.