# An Analysis of MPTCP Congestion Control
## 7 MPTCP Congestion Control
### Analysing How Coupled CC Algorithms Perform
The simulator initialises all flows with an initial window of 10 Assuming that both links are identical (share the same RTT) and that no other traffic goes through any of the links, each connection/flow starts with the initial window of \(10\) (\(initial\text{\text{\text{\text{\text{cmd}}}}}=10\)) and can simulate situations where the RTTs on the two paths are integer multiples of each other. All simulations are run over \(600\) cycles. The simulator outputs the \(c\text{\text{\text{\text{cmd}}}}\) values for all (sub-)flows over time for the duration of the simulation. We first examine the behaviour of the algorithms with regards to \(c\text{\text{\text{\text{cmd}}}}\) when not competing against any other flows For the case when both paths experience the same RTT, the \(c\text{\text{\text{\text{cmd}}}}\) for a single TCP flow is plotted against the \(c\text{\text{\text{\text{cmd}}}}\) for all MPTCP subflows in Figure 6. As is evident from the graphs, we can see that the growth of \(c\text{\text{\text{\text{cmd}}}}\) for all MPTCP flows is much less aggressive. Given the paths are disjoint, this would imply that MPTCP would be unlikely to achieve it's share of bandwidth when competing with TCP over the first path. We next modify the path RTT to understand CC behaviour when the path characteristics differ, all the other simulation conditions stay the same. We consider window growth when the first link is twice as fast as the second link as well as when the first link is three times faster than the second link. Figure 6: Window growth-Same RTT. When looking at _cwnd_ growth for different RTTs (Figures 7 and 8), we can see that LIA favours the faster subflow but is still much less aggressive than TCP NewReno. Algorithm performance appears to decrease as the difference in RTT increases (subflow \(2\ RTT=3x\)). The subflow with larger RTT is more heavily impacted and this results in the faster subflow being slightly less aggressive. For OLIA, with the second subflow having larger RTT, the algorithm increased aggressiveness on the faster path but massively decreased on the slower path. As the RTT difference changes (subflow \(2\ RTT=3x\)), the difference between the faster and slower subflows also increases. BALIA tried to equalise the path loads, resulting in the faster subflow being slightly less aggressive. As the difference in path RTT increases, the differential between the faster and slower subflows also increases. The simulation results show that MPTCP subflows are less aggressive for all CC algorithms. Given the paths are disjoint, this would result in poor performance on the faster, congested path as well as poor performance on the slower, uncongested path. This outcome will not satisfy the fairness goals with MPTCP attaining less throughput than expected. Even if the faster path is aggressive enough to properly compete with TCP (for flow fairness), the other subflow path remains unused and full throughput will not be achieved (network fairness). The second scenario was then simulated where the MPTCP subflows continued to traverse disjoint paths, but in this case the first subflow was competing against a single TCP New Reno flow. The results for the case where the RTT for both paths are equal are plotted in Figures 9-11. Figure 8: Window growth-\(Subflow_{1}RTT=x\), \(Subflow_{2}RTT=3x\). LIA and OLIA started by using both paths (with the second subflow being much slower). However, the first subflow window quickly drops to zero while the second subflow window grows to use the available resources. The outcome is that despite being on a disjoint path where it is not competing with TCP, the MPTCP flow does not acquire any bandwidth on the first path which it should equally share with TCP. BALIA tries to use the first path's capacity. However, it is much less aggressive as compared with TCP. The outcome is that BALIA is somewhat more able to attain a fair share but will still accede throughput to the TCP flow. Figure 11: BALIA—Competing Window Growth—Same RTT. Figure 10: OLIA—Competing Window Growth—Same RTT.