Coupled Congestion Control for Multipath transport protocols [draft-ietf-mptcp-congestion-07]
Link: http://tools.ietf.org/html/draft-ietf-mptcp-congestion-07
Important documents:
[1] wischik, D ., raiciu, C ., greenhalgh, ., and M. handley, "design, implementation and evaluation of congestion control for Multipath TCP", usenix NSDI, March 2011.
[2] Damon's NSDI conference video: http://www.youtube.com/watch? V = iqx1cshqh6i
Design goals:
1) Each subflow shocould have its own congestion control state (I. e. cwnd) in order to adapt the offered load
The capacity on that path. A simple way to achieve this is to employ standard TCP congestion control on each subflow. however, the problem is that, there will be unfair share between these subflows when their path share a common bottleneck.
2)
Be fair to TCP at bottleneck links: A Multipath flow shold
Perform at least as well as a single path flow wocould on the best of the paths available to it
3) use efficient paths: Send all traffic using the least congested Link
4) adapt quickly when congestion changes
5) do not oscillate
Example when applying for the design goals:
It is true that 3G path has lower loss and higher RTT than that of Wi-Fi. therefore, in the case of mptcp, 3G is the least congested link which shoshould take as much traffic as possible. [goal]
However, today's Wi-Fi has higher bandwidth than 3G. therefore, in the case of mptcp, Wi-Fi is the best path where a regular TCP can achieve its best throughput. [go_3]
Assuming the bandwidth for a regular TCP over wi-fi and 3G are 5 Mbps and 0.5mbps. combining Goal 2 and Goal 3, the bandwidth allocation policy for mptcp over 3G and Wi-Fi interfaces are: Send 4.5 Mbps on Wi-Fi and 0.5 Mbps
Over 3G.
Algorithms (to achieve the five goals above):
-> Principle: Couples the additive increasefunction of the subflows, And, uses original TCP behavior in case of a drop
The congestion controller sets the aggregate bandwidth of multipath flow to be the same as a regular TCP flow wocould get on the best path available to the multipath flow.
The congestion controller estimates the bandwidth of a regular TCP flow by predicting loss rates and RTT and computing the target rate. Then the overall aggressiveness is adapted to achieve the desired rate.
-> Details:
Mptcp maintains a congestion windowWR,One window for each path
IncreaseWRFor each ack on pathR,
alpha * bytes_acked * mss_i bytes_acked * mss_i min ( --------------------------- , ------------------- ) tot_cwnd cwnd_i
[This function is based on bytes, official document in IETF also providePacket-basedComputation, because the standard TCP congestion control is based on Packet]
"Alpha" is a parameter of the algorithm that describesAggresivenessOf the multipath flow. The value of Alpha is chosen such that the aggregate throughput of the multipath flow is equal to the throughput a TCP flow wocould get if
It ran on the best path.
[Descriptions of each parameter is introduced in draft-ietf-mptcp-congestion-07]
The total throughput of A Multipath flow depends on the valueAlphaAndLoss rates,Maximum Segment sizesAnd
Round trip timesOf its paths. Alpha must be computed based on the observed properties of the paths, in order to provide fairness to regular TCP.
The formula to compute alpha is: cwnd_i max -------- i 2 rtt_i alpha = tot_cwnd * ---------------- / cwnd_i \ 2 | sum ---------| \ i rtt_i /
This is derived by equalizing the rate of the multipath flow with the rate of a TCP running on the best path
DecreaseWRFor each drop on pathR,WR/2.
Each server and client IP address pair maintains a single path, so multihome (multiaddress) hosts are required.
-> What are the same with standard TCP [rfc5681]
1) Slow Start
2) Fast retrasmit
3) Fast Recovery
4) multiplicative decrease of the congestion avoidance state