背景:
早在2007年,IETF推出Streaming Control Transmission Protocol (SCTP), Stewart, R., Stream Control Transmission Protocol, RFC 4960, September 2007. SCTP主要特色是提供 多路径通信(concurrent multipath transfer). 然而SCTP有2个主要缺点: 1) 开发者需要修改application层 2) 当今因特网架构中的middlebox比如Network Address Translator (NAT) 或 防火墙会阻止SCTP包。这些middlebox对TCP包是开放通行的。基于这点,IETF于2011年推出draft文档,Multipath TCP-基于传统TCP协议提供多路径通信。
MPTCP performance analysis
Throughput
The multipath capability of MPTCP provides greater bandwidth for applications in comparison with regular single-path TCP. If there is a shared bottleneck between the flows, the congestion control algorithms will ensure that load is evenly distributed among regular and multipath TCP sessions, so that there is no worse performance than if all end users were using single-path TCP.
Notices:
1) MPTCP can add and remove subflows as paths change, leading to variability of connection bandwidth.Applications that adapt to available bandwidth (e.g. video/audio streaming that adapt codecs based on bw) might need to take this into account.
2) MPTCP signalling information introduces a small overhead. When multiple subflows share a same bottleneck, this overhead slightly reduces network capacity. Yet, the influences are generally negligible in many usage scenarios.
Delay
If the delays experienced by each subflow of an MPTCP connection differ, the jitter of an application may appear higher. This is as the data is distributed across the subflows.
Notices:
1) Applications running over MPTCP must be able to cope with burstier data than may be usual with single-path TCP.
2) Applications that estimates RTT at the application level might get impacted due to multiple subflows.
Resilience
MPTCP provides better resilience:
1) if one flow fails, all traffic will move to other subflows.
2) make-before-break and break-before-make handovers between subflows
Network Stack
| Application |
+-------------------------------+
^ |
~~~~~~~~~~|Socket Interface |~~~~~~~~
| v
+-------------------------------+
| MPTCP |
+ - - - - - - - + - - - - - - - +
| Subflow (TCP) | Subflow (TCP) |
+-------------------------------+
| IP | IP |
+-------------------------------+
Figure 1: MPTCP protocol stack
There are two types of applications:
1) Legacy apps (Default case), that are unaware of MPTCP and use existing API towards TCP without any changes.
2) MPTCP-aware apps
MPTCP Usage Scenarios and Applications Requirements
1) High Bandwidth. High throughput-oriented bulk data transfer. It is highly possible that the total bandwidth required is less than that available on an individual path, therefore, it is beneficial to spread the overall load.
2) Low latency and jitter stability. Always use the lowest latency subflow to transmit highly interactive traffic. The challenge is that, the delay on a path may fluctuate significantly and such strategy might result in instability.
3) High reliability. Duplicate data over different subflows