MultipathTCP Netsys
MultipathTCP Netsys
Multipath TCP
Olivier Bonaventure
http://inl.info.ucl.ac.be
http://perso.uclouvain.be/olivier.bonaventure
Source : http://spectrum.ieee.org/computing/software/the-strange-birth-and-long-life-of-unix
The Unix pipe model
1234 abbsbbbs
echo wc
The TCP bytestream model
Client Server
ABCDEF...111232
IP:1.2.3.4 IP:4.5.6.7
Endhosts have evolved
IP 1.2.3.4
What technology provides
3G celltower
IP 1.2.3.4
IP 5.6.7.8
What technology provides
3G celltower
IP 1.2.3.4
IP 5.6.7.8
Network
Datalink
Physical
Physical
O. Bonaventure, Computer networking : Principles, Protocols and Practice, open ebook, http://inl.info.ucl.ac.be/cnp3
A typical "academic" network
Applicatio Applicatio
n n
Transport Transport
Network Network Network
Datalink Datalink Datalink Datalink
Physical Physical Physical Physical
The end-to-end principle
Applicatio Applicatio
n n
TCP
Transport Transport
Network Network Network
Datalink Datalink Datalink Datalink
Physical Physical Physical Physical
In reality
IP Telephony
Streamer Voice
Router
Gateway
NAT
Content
Engine
http://www.cisco.com/web/about/ac50/ac47/2.html
How to model those middleboxes ?
• In the official architecture, they do not exist
• In reality...
Payload Payload
TCP segments processed by a NAT
Ver IHL ToS Total length Ver IHL ToS Total length
Identification Flags Frag. Offset Identification Flags Frag. Offset
TTL Protocol Checksum TTL Protocol Checksum
Source IP address Source IP address
Destination IP address Destination IP address
Source port Destination port Source port Destination port
Sequence number Sequence number
Acknowledgment number Acknowledgment number
THL Reserved Flags Window THL Reserved Flags Window
Checksum Urgent pointer Checksum Urgent pointer
Options Options
Payload Payload
TCP segments processed by a NAT (2)
Payload Payload
How transparent is the Internet ?
• 25th September 2010
to 30th April 2011
• 142 access networks
• 24 countries
• Sent specific TCP
segments from client
to a server in Japan
Honda, Michio, et al. "Is it still possible to extend TCP?" Proceedings of the 2011 ACM
SIGCOMM conference on Internet measurement conference. ACM, 2011. © O. Bonaventure, 2011
End-to-end transparency today
Ver IHL ToS Total length Ver IHL ToS Total length
many discard
Destination packets with an
IP address Destination IP address
Sourceunknown
port Protocol field
Destination port Source port Destination port
Payload Payload
Agenda
• The motivations for Multipath TCP
• Design objectives
– Support unmodified applications
– Work over today’s networks
– Works in all networks where regular TCP works
TCP Connection establishment
• Three-way handshake
SYN,seq=1234,Options
SYN+ACK,ack=1235,seq=5678,Options
ACK,seq=1235,ack=5679
Data transfer
seq=1234,"abcd"
ACK,ack=1238,win=4
seq=1238,"efgh"
ACK,ack=1242,win=0
Connection release
seq=1234,"abcd"
RST
Connection release
seq=1234,"abcd"
FIN, seq=1238
ACK,ack=1239
seq=345,"ijkl"
FIN,seq=349
FIN,ack=350
Identification of a TCP connection
Ver IHL ToS Total length Four tuple
IP
Identification Flags Frag. Offset
TTL Protocol Checksum
– IPsource
Source IP address
– IPdest
Destination IP address
Source port Destination port – Portsource
Sequence number
Acknowledgment number – Portdest
TCP
THL Reserved Flags Window
Checksum Urgent pointer
Options All TCP segments
contain the four
Payload tuple
The new bytestream model
Client Server
ABCDEF...111232
D C B A
IP:2.3.4.5 IP:6.7.8.9
IP:4.5.6.7
IP:1.2.3.4
38
The Multipath TCP protocol
• Control plane
– How to manage a Multipath TCP connection that
uses several paths ?
• Data plane
– How to transport data ?
• Congestion control
– How to control congestion over multiple paths ?
A naïve Multipath TCP
SYN+Option
SYN+ACK+Option
ACK
seq=123, "abc"
seq=126, "def"
A naïve Multipath TCP
In today's Internet ?
SYN+Option
SYN+ACK+Option
ACK
seq=123, "abc"
There is no
corresponding
TCP connection
seq=126, "def"
Design decision
Application
socket
Applicatio
n Multipath TCP
Transport
Network TCP1 TCP2 ... TCPn
Datalink
Physical
A. Ford, C. Raiciu, M. Handley, S. Barre, and J. Iyengar, “Architectural guidelines for multipath TCP
development", RFC6182 2011.
A regular TCP connection
• What is a regular TCP connection ?
SYN+OtherOption
SYN+ACK+OtherOption
ACK
How to combine two TCP subflows ?
SYN+Option
SYN+ACK+Option
ACK
SYN+ACK[...]
A NAT could change
ACK addresses and
port numbers
SYN, Portsrc=1235,Portdst=80
+Option[link Portsrc=1234,Portdst=80]
How to link TCP subflows ?
SYN, Portsrc=1234,Portdst=80
+Option[Token=5678]
SYN+ACK+Option[Token=6543]
ACK
MyToken=5678
YourToken=6543
MyToken=6543
YourToken=5678
SYN, Portsrc=1235,Portdst=80
+Option[Token=6543]
Subflow agility
• Multipath TCP supports
– addition of subflows
– removal of subflows
The Multipath TCP protocol
• Control plane
– How to manage a Multipath TCP connection that
uses several paths ?
• Data plane
– How to transport data ?
• Congestion control
– How to control congestion over multiple paths ?
How to transfer data ?
seq=123,"a"
ack=124
seq=125,"c"
ack=126
seq=124,"b"
ack=125
seq=126,"d"
ack=127
How to transfer data
in today's Internet ?
seq=123,"a"
ack=124
seq=125,"c"
ack=126
Gap in sequence numbering space
Some DPI will not allow this !
seq=124,"b"
ack=125
Multipath TCP Data transfer
• Two levels of sequence numbers
ABCDEF
socket socket
DAck=1,ack=124
DSeq=2, seq=124,"c"
DAck=3, ack=125
DSeq=1, seq=456,"b"
DAck=2,ack=457
Multipath TCP
How to deal with losses ?
• Data losses over one TCP subflow
– Fast retransmit and timeout as in regular TCP
Dseq=0,seq=123,"a"
DAck=1,ack=12
4 Dseq=0,seq=123,"a"
DAck=1,ack=124
Multipath TCP
• What happens when a TCP subflow fails ?
Dseq=0,seq=123,"a"
DSeq=1, seq=456,"b"
DSeq=0,ack=457
Dseq=0,seq=457,"a"
DAck=2,ack=458
Retransmission heuristics
• Heuristics used by current Linux implementation
Dseq=0,seq=123,"a"
DAck=1,ack=124,win=0
DSeq=1, seq=456,"b"
DAck=2,ack=457,win=100
Dseq=2,seq=457,"c"
DAck=3,ack=458,win=100
Independant windows
possible problem
Dseq=0,seq=123,"a"
DSeq=1, seq=456,"b"
DAck=2,ack=457,win=0
Dseq=0,seq=123,"a"
DAck=1,ack=124,win=10
DSeq=1, seq=456,"b"
DAck=2,ack=457,win=10
Dseq=2,seq=457,"c"
DAck=3,ack=458,win=10
A single window shared by all subflows
Impact of middleboxes
Dseq=0,seq=123,"a"
DAck=1,ack=124,win=10
0
DSeq=1, seq=456,"b"
DAck=2,ack=457,win=100
DAck=2,ack=457,win=5
Multipath TCP Windows
• Multipath TCP maintains one window per Multipath TCP
connection
Multipath TCP
Scheduler
TCP1
TCP2
• Option 1
– Use TLVs to encode data and control information inside
payload of subflows
• Option 2
– Use TCP options to encode all Multipath TCP
information
Option 1 : Michael Scharf, Thomas-Rolf Banniza , MCTCP: A Multipath Transport Shim Layer, GLOBECOM 2011
Is it safe to use TCP options ?
• Known option (TS) in Data segments
XD6BHM
Honda, Michio, et al. "Is it still possible to extend TCP?." Proceedings of the 2011 ACM
SIGCOMM conference on Internet measurement conference. ACM, 2011. © O. Bonaventure, 2011
Is it safe to use TCP options ?
• Unknown option in Data segments
XD6BHM
Honda, Michio, et al. "Is it still possible to extend TCP?." Proceedings of the 2011 ACM
SIGCOMM conference on Internet measurement conference. ACM, 2011. © O. Bonaventure, 2011
Multipath TCP options
• TCP option format
• Initial design
– One option kind for each purpose
(e.g. Data Sequence number)
• Final design
– A single variable-length Multipath TCP option
Multipath TCP option
• A single option type
– to minimise the risk of having one option accepted
by middleboxes in SYN segments and rejected in
segments carrying data
Kind LengthSubtype
Subtype specific data
(variable length)
Data sequence numbers
and TCP segments
• How to transport Data sequence numbers ?
– Same solution as for TCP
• Data sequence number in TCP option is the Data
sequence number of the first byte of the segment
Source port Destination port
Sequence number
Acknowledgment number
THL Reserved Flags Window
Checksum Urgent pointer
Datasequence number
Payload
Multipath TCP
Data transfer
Dseq=0,seq=123,"a"
DAck=1,ack=124
DSeq=2, seq=124,"c"
DAck=3, ack=125
DSeq=1, seq=456,"b"
DAck=2,ack=457
TCP sequence number
and middleboxes
Honda, Michio, et al. "Is it still possible to extend TCP?." Proceedings of the 2011 ACM
SIGCOMM conference on Internet measurement conference. ACM, 2011. © O. Bonaventure, 2011
Which middleboxes change
TCP sequence numbers ?
• Some firewalls change TCP sequence numbers
in SYN segments to ensure randomness
– fix for old windows95 bug
• Data segments
Data,seq=12,"ab"
Data,seq=14,"cd"
Data,seq=12,"abcd"
Honda, Michio, et al. "Is it still possible to extend TCP?." Proceedings of the 2011 ACM
SIGCOMM conference on Internet measurement conference. ACM, 2011. © O. Bonaventure, 2011
Data sequence numbers
and middleboxes
buffers small
seq=123,Dseq=0, "a" segments
seq=124, DSeq=2,"c" seq=123, DSeq=2, "ac"
seq=123,Dseq=0, "ab"
DSeq=0, seq=123,"a"
Middlebox only DSeq=0, seq=124,"b"
understands
regular TCP
A "middlebox" that both splits and coalesces
TCP segments
Data sequence numbers
and middleboxes
• How to avoid desynchronisation between the
bytestream and data sequence numbers ?
• Solution
– Multipath TCP option carries mapping between
Data sequence numbers and (difference between
initial and current) subflow sequence numbers
• mapping covers a part of the bytestream (length)
Multipath TCP
Data transfer
seq=123,DSS[0->123,len=1],"a"
DAck=1,ack=124
seq=124, DSS[2->124,len=1],"c"
DAck=3, ack=125
seq=456, DSS[1->456,len=1],"b"
DAck=2,ack=457
Data sequence numbers
and middleboxes
seq=123,DSS[0->123,len=1], "a"
seq=124, seq=123,
DSS[2->124, len=1],"c" DSS[0->123, len=1],
"ac"
DAck=2,ack=124
seq=124, DSS[2->124, len=1],"c"
– Unfortunately not
The worst middlebox
seq=123,
DSS[1->123,len=2], seq=123,
"ab" DSS[1->123, len=2],
"aXXXb"
DAck=3,ack=125
DAck=3,ack=128
seq=125,
DSS[3->125, len=2], seq=128,
"cd" DSS[3->125, len=2],
"cd"
– 32 bits
• compact and compatible with TCP
• wrap around problem at highspeed requires PAWS
– 64 bits
• wrap around is not an issue for most transfers today
• takes more space inside each segment
Multipath TCP
Data sequence numbers
• Data sequence numbers and Data
acknowledgements
C. Raiciu, et al. “How hard can it be? designing and implementing a deployable multipath TCP,” NSDI'12:
Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation, 2012.
The Multipath TCP protocol
• Control plane
– How to manage a Multipath TCP connection that
uses several paths ?
• Data plane
– How to transport data ?
• Congestion control
– How to control congestion over multiple paths ?
TCP congestion control
• A linear rate adaption algorithm
Fast retransmit
Threshold
Threshold
Time
Slow-start Congestion avoidance
exponential increase of cwnd linear increase of cwnd
Congestion control for Multipath TCP
• Simple approach
– independant congestion windows
Threshold
Threshold
Threshold
Independant congestion windows
• Problem
12Mbps
Coupling the congestion windows
• Principle
– The TCP subflows are not independant and their
congestion windows must be coupled
• EWTCP
– For each ACK on path r, cwinr=cwinr+a/cwinr (in segments)
– For each loss on path r, cwinr=cwinr/2
12Mbps
12Mbps 12Mbps
– Additive increase
cwndi
max( 2
)
(rtti ) 1
cwinr = cwinr + min( , )
cwndi 2 cwndr
(å )
i rtti
D. Wischik, C. Raiciu, A. Greenhalgh, and M. Handley, “Design, implementation and evaluation of congestion
control for multipath TCP,” NSDI'11: Proceedings of the 8th USENIX conference on Networked systems design
and implementation, 2011.
Other Multipath-aware
congestion control schemes
R. Khalili, N. Gast, M. Popovic, U. Upadhyay, J.-Y. Le Boudec , MPTCP is not
Pareto-optimal: Performance issues and a possible solution, Proc. ACM
Conext 2012
Y. Cao, X. Mingwei, and X. Fu, “Delay-based Congestion Control for Multipath
TCP,” ICNP2012, 2012.
T. A. Le, C. S. Hong, and E.-N. Huh, “Coordinated TCP Westwood congestion
control for multiple paths over wireless networks,” ICOIN '12: Proceedings of the
The International Conference on Information Network 2012, 2012, pp. 92–96.
T. A. Le, H. Rim, and C. S. Hong, “A Multipath Cubic TCP Congestion Control
with Multipath Fast Recovery over High Bandwidth-Delay Product Networks,”
IEICE Transactions, 2012.
T. Dreibholz, M. Becke, J. Pulinthanath, and E. P. Rathgeb, “Applying TCP-Friendly
Congestion Control to Concurrent Multipath Transfer,” Advanced Information
Networking and Applications (AINA), 2010 24th IEEE International Conference on,
2010, pp. 312–319.
The Multipath TCP protocol
• Control plane
– How to manage a Multipath TCP connection that
uses several paths ?
• Data plane
– How to transport data ?
• Congestion control
– How to control congestion over multiple paths ?
The Multipath TCP control plane
• Connection establishment in details
• Address dynamics
Security threats
• Three main security threats were considered
– flooding attack
J. Diez, M. Bagnulo, F. Valera, and I. Vidal, “Security for multipath TCP: a constructive approach,” International
Journal of Internet Protocol Technology, vol. 6, 2011.
Hijacking attack
Multipath TCP
Connection establishment
• Principle
SYN, MP_CAPABLE
SYN+ACK, MP_CAPABLE
ACK, MP_CAPABLE
SACK enabled
SYN+SACK Permitted
SYN+ACK SYN+ACK
SACK no
TCP options
• In SYN segments
XD6BHM
Honda, Michio, et al. "Is it still possible to extend TCP?." Proceedings of the 2011 ACM
SIGCOMM conference on Internet measurement conference. ACM, 2011. © O. Bonaventure, 2011
How to extend TCP ?
The worst case
• What happens when there are middleboxes
on the path ?
SYN, MP_CAPABLE[...]
SYN+ACK, MP_CAPABLE[...]
ACK+MPTCPOption
Why an option in
third ACK ?
Multipath TCP option in third ACK
SYN, MP_CAPABLE[...]
SYN+ACK, MP_CAPABLE[...]
SYN+ACK
ACK
No option, disable
Multipath TCP
Multipath TCP handshake
Token exchange
SYN, MP_CAPABLE[ClientToken=1234]
SYN+ACK, MP_CAPABLE[ServerToken=5678]
ACK, MP_CAPABLE[ClientToken=1234]
Useful if server
wants to send
SYN+ACK without
keeping any state
Initial Data Sequence number
• Why do we need an initial Data Sequence
number ?
SYN+ACK, MP_CAPABLE
ACK
seq=123,
DSS[456->123,len=2],"ab"
First Data or not ?
SYN...
SYN+ACK...
ACK
SYN+ACK, MP_CAPABLE[DSeq=67890]
ACK
How to secure Multipath TCP
• Main goal
– Authenticate the establishment of subflows
• Principles
– Each host announces a key during initial
handshake
• keys are exchanged in clear
– When establishing a subflow, use HMAC + key to
authenticate subflow
Key exchange
SYN, [MyKey="keyABC"]
SYN+ACK, [MyKey="keyDEF"]
ACK[MyKey="keyABC", YourKey="keyDEF"]
MyKey="keyABC" MyKey="keyDEF"
YourKey="keyDEF" YourKey="keyABC"
SYN,[NonceA=123]
SYN+ACK[NonceB=456,
HMAC(123,"keyDEF")]
ACK,[HMAC(456,"keyABC")]
Putting everything inside the SYN
• How can we place inside SYN segment ?
Payload
TCP options in the wild
• MSS option [4 bytes]
– Used only inside SYN segments
• Timestamp option [10 bytes] Only 20 bytes left
– Used in potentially all segments inside SYN !
• Window scale option [3 bytes]
– Used only inside SYN segments
• SACK permitted option [2 bytes]
– Used only inside SYN segments
• Selective Acknowledgements [N bytes]
– Used in data segments
http://www.iana.org/assignments/tcp-parameters/tcp-parameters.xml
The MP_CAPABLE option
crypto
A: DSN Checksum
required or not B: Extension
TokenA=Upper32(SHA-1(KeyA))
TokenB=Upper32(SHA-1(KeyB))
Cost of the Multipath TCP handshake
C. Raiciu, et al. “How hard can it be? designing and implementing a deployable multipath TCP,” NSDI'12:
Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation, 2012.
The Multipath TCP control plane
• Connection establishment in details
• Address dynamics
Closing a Multipath TCP connection
• How to close a Multipath TCP connection ?
– By closing all subflows ?
RST
RST
Closing a Multipath TCP connection
seq=123, DSS[1->123 ...], "ab"
seq=125, DSS[5->125,DATA_FIN ...], "end"
DAck=9,ack=128
seq=128, FIN
ack=129
SYN, [...]
SYN+ACK, [...]
ACK[...]
ACK+FAST_CLOSE
RST
SYN,[...]
SYN+ACK[...]
ACK[..]
RST
The Multipath TCP control plane
• Connection establishment in details
• Address dynamics
Multipath TCP
Address dynamics
• How to learn the addresses of a host ?
IP=2.3.4.5
IP=3.4.5.6
IP6=2a00:1450:400c:c05::69
IP=4.5.6.7
Address dynamics
• Basic solution : multihomed server
SYN, [...]
SYN+ACK, [...]
ACK[...]
ADD_ADDR[3.4.5.6] IP=2.3.4.5
IP=3.4.5.6
ADD_ADDR[2a00:1450:400c:c05::69
IP6=2a00:1450:400c:c05::69
]
SYN,[...]
SYN+ACK[...]
ACK[..]
Address dynamics
• Basic solution : mobile client
SYN, [...]
SYN+ACK, [...]
ACK[...]
ADD_ADDR [4.5.6.7]
IP=2.3.4.5
SYN,[...]
IP=1.2.3.4
SYN+ACK[...]
IP=4.5.6.7
ACK[..]
REMOVE_ADDR[1.2.3.4]
Address dynamics
in today's Internet
SYN, [...]
SYN+ACK, [...]
ACK[...]
ADD_ADDR [10.0.0.2]
ADD_ADDR [10.0.0.2]
IP=2.3.4.5
IP=1.2.3.4
IP=10.0.0.2 ? SYN [...]
Address dynamics with NATs
• Solution
SYN, [...]
SYN+ACK, [...]
ACK[...]
ADD_ADDR [4.5.6.7,id=1]
IP=2.3.4.5
SYN,[id=1...]
IP=1.2.3.4
SYN+ACK[...]
IP=4.5.6.7
ACK[..]
REMOVE_ADDR[id=0]
Agenda
• The motivations for Multipath TCP
C. Raiciu, et al. “Improving datacenter performance and robustness with multipath TCP,” ACM
SIGCOMM 2011.
Fat Tree Topology [Fares et al., 2008;
Clos, 1953]
K=4
Aggregation
Switches
K Pods with
K Switches
each
Racks of
servers
C. Raiciu, et al. “Improving datacenter performance and robustness with multipath TCP,” ACM
SIGCOMM 2011.
TCP in data centers
TCP in FAT tree networks
Cost of collissions
C. Raiciu, et al. “Improving datacenter performance and robustness with multipath TCP,” ACM
SIGCOMM 2011.
How to get rid of these collisions ?
• Consider TCP performance as an optimisation
problem
The Multipath TCP way
ECMP balances
the subflows
over different
paths
Two subflows
differ by their
C. Raiciu, et al. “Improving datacenter performance and robustness with multipath TCP,” ACM
source SIGCOMM
port 2011.
MPTCP better utilizes the FatTree network
C. Raiciu, et al. “Improving datacenter performance and robustness with multipath TCP,” ACM
SIGCOMM 2011.
Agenda
• The motivations for Multipath TCP
8Mbps, 20ms
2Mbps, 150ms
TCP over WiFi/3G
C. Raiciu, et al. “How hard can it be? designing and implementing a deployable multipath TCP,” NSDI'12:
Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation, 2012.
MPTCP over WiFi/3G
C. Raiciu, et al. “How hard can it be? designing and implementing a deployable multipath TCP,” NSDI'12:
Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation, 2012.
MPTCP over WiFi/3G
Multipath
TCP
increases
throughput
MPTCP over WiFi/3G
What
happened
here?
Understanding the performance issue
Window full !
D C B No new data can be sent on WiFi path
8Mbps, 20ms
– Full mode
• Both wireless networks are used at the same time
– Backup mode
• Prefer WiFi when available, open subflows on 3G and use them as
backup
SYN...
SYN+ACK...
ACK...
WiFi
3G/LTE
SYN...
SYN+ACK,...
ACK ...
Multipath TCP : Backup mode
SYN...
SYN+ACK...
ACK...
WiFi
3G/LTE
SYN,MP_JOIN[Backup...]
Dynamically
SYN+ACK,...
change backup
ACK ... status of flow
MP_PRIO[B]
Multipath TCP : Backup mode
• What happens when link fails ?
SYN...
SYN+ACK...
ACK...
WiFi
3G/LTE
SYN,MP_JOIN[Backup...]
SYN+ACK,...
ACK ...
REM_ADDR[id=0]
Multipath TCP : single-path mode
• Multipath TCP supports break before make
SYN...
SYN+ACK...
ACK...
WiFi
3G/LTE
SYN,MP_JOIN
SYN+ACK,...
ACK ...
REM_ADDR[id=0]
Evaluation scenario
WiFi:
Belgacom ADSL2+
(~8 Mbps, ~30 ms)
3G: Mobistar
(~2 Mbps, ~80ms)
Recovery after failure
C. Paasch, et al. , “Exploring mobile/WiFi handover with multipath TCP,” presented at the CellNet '12: Proceedings
of the 2012 ACM SIGCOMM workshop on Cellular networks: operations, challenges, and future design, 2012.
Recovery after failure
C. Paasch, et al. , “Exploring mobile/WiFi handover with multipath TCP,” presented at the CellNet '12: Proceedings
of the 2012 ACM SIGCOMM workshop on Cellular networks: operations, challenges, and future design, 2012.
Recovery after failure
C. Paasch, et al. , “Exploring mobile/WiFi handover with multipath TCP,” presented at the CellNet '12: Proceedings
of the 2012 ACM SIGCOMM workshop on Cellular networks: operations, challenges, and future design, 2012.
Conclusion
• Multipath TCP is becoming a reality
– Due to the middleboxes, the protocol is more
complex than initially expected
– RFC has been published
– there is running code !
– Multipath TCP works over today's Internet !
• What's next ?
– More use cases
• IPv4/IPv6, anycast, load balancing, deployment
– Measurements and improvements to the protocol
• Time to revisit 20+ years of heuristics added to TCP
References
• The Multipath TCP protocol
– http://www.multipath-tcp.org
– http://tools.ietf.org/wg/mptcp/
• FreeBSD
– http://caia.swin.edu.au/urp/newtcp/mptcp/
• Simulators
– http://nrg.cs.ucl.ac.uk/mptcp/implementation.html
– http://code.google.com/p/mptcp-ns3/
Middleboxes