CS 204: Multipath TCP
Jiasi Chen Lectures: MWF 12:10-1pm in WCH 139 http://www.cs.ucr.edu/~jiasi/teaching/cs204_spring16/
1
CS 204: Multipath TCP Jiasi Chen Lectures: MWF 12:10-1pm in WCH - - PowerPoint PPT Presentation
CS 204: Multipath TCP Jiasi Chen Lectures: MWF 12:10-1pm in WCH 139 http://www.cs.ucr.edu/~jiasi/teaching/cs204_spring16/ 1 Goals Use the available network paths at least as well as regular TCP, but without starving TCP. Usable as
Jiasi Chen Lectures: MWF 12:10-1pm in WCH 139 http://www.cs.ucr.edu/~jiasi/teaching/cs204_spring16/
1
without starving TCP.
regular TCP works.
2
3
Source: http://queue.acm.org/detail.cfm?id=2591369
4
Source: https://en.wikibooks.org/wiki/Communication_Networks/NAT_and_PAT_Protocols
sender has MPTCP capability
TCP options
5
Host B Host A
SYN, MP-CAPABLE SYN/ACK, MP-CAPABLE ACK
sender has MPTCP capability
à fall back to TCP
à host A and host B’s views are inconsistent àadd another MPT-CAPABLE to msg 3 if MP-CAPABLE recv’d in msg 2
6
Host B Host A
SYN, MP-CAPABLE SYN/ACK, MP-CAPABLE ACK, MP-CAPABLE
addresses and starts sending data to both
allow data to be sent without SYN à need 3-way handshake for new subflows
7
Host B Host A
SYN, MP-CAPABLE SYN/ACK, MP-CAPABLE ACK, MP-CAPABLE
A1 A2
Data Data SYN, MP-JOIN SYN/ACK, MP-JOIN ACK, MP-JOIN
<source IP, source port, dest IP, dest port>
subflow to existing connection, don’t know the source IP
8
Host A Host B 10.0.0.2 à 71.93.165.196 I want to join <10.0.0.2:12345 , 128.112.49.87:80> I don’t know that connection.
<source IP, source port, dest IP, dest port>
subflow to existing connection, don’t know the source IP à add a token to identify the connection
9
Host B Host A
SYN, MP-CAPABLE, key A SYN/ACK, MP-CAPABLE, key B ACK, MP-CAPABLE
A1 A2
Data Data SYN, MP-JOIN, token B SYN/ACK, MP-JOIN ACK, MP-JOIN
same token à authentication using HMAC
10
Host B Host A
SYN, MP-CAPABLE, key A SYN/ACK, MP-CAPABLE, key B ACK, MP-CAPABLE
A1 A2
Data Data SYN, MP-JOIN, token B SYN/ACK, MP-JOIN ACK, MP-JOIN SYN, MP- JOIN, token B
11
Source: http://www.networkworld.com/article/2268575/lan-wan/chapter-2--ssl-vpn-technology.html
same token à authentication using HMAC
HMAC, otherwise rand changes
12
Host B Host A
SYN, MP-CAPABLE, key A SYN/ACK, MP-CAPABLE, key B ACK, MP-CAPABLE
A1 A2
Data Data SYN, MP-JOIN, token B, rand A SYN/ACK, MP-JOIN, rand B, HMAC B ACK, MP-JOIN,HMAC A SYN, MP- JOIN, token B, rand Z
13
Host A Host B Host B Host A
each subflow
14
934 935 936 937 938 939 940 941 942 943 Host A1 Host A2
à use flow-level sequence numbers along with per-subflow sequence numbers
15
Source: [3]
à record exact mapping between subflow and data sequence numbers
16
17
à Encode data sequence numbers and ACKs in TCP options
S can’t read until finished sending C can’t ACK until S reads Source: [3]
à one receive window for each subflow
18
Application buffer Subflow 1 rwnd Subflow 2 rwnd
à One receive window for the overall flow
subflow
19
20
For example: 2 clients Client A has 2 MPTCP subflows Client B is regular TCP Client A will receive 2/3 of capacity
Source: [2]
21
Source: [2]
transmit on?
22
23
Source: [2]
24
25
Queue, 2014.
RFC 2684.
Multipath TCP,” Raiciu et al., NSDI 2012.
26