Existing congestion control algorithms for MPTCP that care about only long flow transmission aim at the Congestion-Avoidance (CA) phase and they need a long time to reach convergence states. We verified that the exponential growth of congestion window (cwnd) in the uncoupled Slow-Start (SS) leads to not only unfairness to TCP but also buffer overflow due to burst data. Moreover, these algorithms cannot support fair bandwidth sharing among TCP/MPTCP flows before reaching convergence at the bottleneck, which may reduce the transmission efficiency of short flows and even hurts long flows. In this paper, we propose a Throughput Consistency Congestion Control (TCCC) algorithm consisting of Coupled Slow-Start (CSS) and Aggressive Congestion Avoidance (ACA). To prevent packet loss caused by excessive burst data, CSS couples the increment of subflows’ cwnd and reset the ssthresh value to safely move the flows to CA when it achieves expected throughput. Based on CSS, ACA periodically detects path states and allocates the same throughput increment as the best TCP to subflows to achieve fair bandwidth share in CA. Finally, we implement TCCC in both NS3 and real testbed. The results show that TCCC reduces retransmissions, improves transmission efficiency, and maintains better fairness.
Read full abstract