20

Click here to load reader

MultiPath TCP - The path to multipath

Embed Size (px)

DESCRIPTION

Multipath TCP - The path to multipath

Citation preview

Page 1: MultiPath TCP - The path to multipath

MultiPath TCPThe path to multipath

Diogo Mónica (@diogomonica)

Page 2: MultiPath TCP - The path to multipath

motivation

User streamingradio

4G BS

WiFI AP

User streamingradio

4G BS

WiFI AP

Page 3: MultiPath TCP - The path to multipath

motivation

UnnecessaryCollision

Page 4: MultiPath TCP - The path to multipath

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

Page 5: MultiPath TCP - The path to multipath

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

Page 6: MultiPath TCP - The path to multipath

features

• Supports unmodified network and applications

• Copes with NATs on the path

• Defensive fall back to normal TCP (strictly better than normal TCP)

Page 7: MultiPath TCP - The path to multipath

how

• Replaces the lower-level socket implementations

• Three independent implementations

• Working linux kernel implementation

• iPhones currently use MPTCP for Siri connections

Page 8: MultiPath TCP - The path to multipath

why not SCTP?

• Does not support middle boxes

• Requires application changes

Page 9: MultiPath TCP - The path to multipath

Connection establishment

• Three-way handshake with MP_CAPABLE options set

Syn

Syn/Ack

Ack

Page 10: MultiPath TCP - The path to multipath

Connection establishment

SynMP_CAPABLE, A's key, flags

Syn/AckMP_CAPABLE, B's key, flags

AckMP_CAPABLE, A's key, B's key, flags

Page 11: MultiPath TCP - The path to multipath

Connection establishment

• Optional TCP checksums

• Crypto algorithm negotiation based on optional flags

• Currently only supports SHA-1

Page 12: MultiPath TCP - The path to multipath

Subflow creation

Socket MTCPConnection SocketMTCP

Connection

Page 13: MultiPath TCP - The path to multipath

Subflow creation

SynMP_JOIN, B's token, A's nonce,

A's Address ID, flags

Syn/AckMP_JOIN, B's HMAC, B's nonce,

B's Address ID, flags

AckMP_JOIN, A's HMAC

Ack

token = H(key || nonce)[:32]

Address ID = Unique (Implementation

specific)

Page 14: MultiPath TCP - The path to multipath

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

Page 15: MultiPath TCP - The path to multipath

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

Page 16: MultiPath TCP - The path to multipath

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

Page 17: MultiPath TCP - The path to multipath

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

Page 18: MultiPath TCP - The path to multipath

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

Page 19: MultiPath TCP - The path to multipath

Conclusion

• MPTCP is strictly better than TCP*

* this claim is totally implementation dependent

Page 20: MultiPath TCP - The path to multipath

References• http://tools.ietf.org/html/rfc6824

• http://tools.ietf.org/html/rfc6181

• http://www.bsdcan.org/2013/schedule/attachments/250_BSDCan2013_MPTCP.pdf

• https://www.usenix.org/conference/nsdi12/how-hard-can-it-be-designing-and-implementing-deployable-multipath-tcp

• http://perso.uclouvain.be/olivier.bonaventure/blog/html/2013/09/18/mptcp.html