Adaptive linux-based TCP congestion control algorithm for high-speed networks - Alrshah, Mohamed A. (2017)
Recently, high-speed networks are widely deployed and their necessity is rapidly increasing everyday. In general, high-speed networks are deployed to provide connectivity among computing elements, storage devices and/or data centers in order to provide fast and reliable services for end-users. High-speed networks can be classified as: (1) short-distance networks, such as local area networks and data center networks, and (2) long-distance networks, such as metropolitan and wide area networks, which occasionally employ the oceanic and/or transatlantic links to provide a fast connectivity among the scattered data centers located in different places around the world. Indeed, the overall performance of such networks is significantly influenced by the Transmission Control Protocol (TCP). Although TCP is the predominant transmission protocol used in Internet, its Congestion Control Algorithm (CCA) is still unable to adapt to high-speed networks, which are not the typical environment for which most CCAs were designed. For this reason, the employment of TCP over high-speed networks causes an extreme performance degradation leads to a poor bandwidth utilization due to the unavoidable network characteristics such as small buffer, long RTT and non-congestion loss. In order to reduce the sensitivity to packet loss and to improve the ability of TCP CCA on dealing with small buffer regimes as in short-distance and low-BDP networks, this work proposes a novel loss-based TCP CCA, namely AF-based, designed for high-speed and short-distance networks. Thereafter, extensive simulation experiments are carried out to evaluate the performance of the proposed AF-based CCA compared to C-TCP and Cubic-TCP, which are the default CCAs of the most commonly used operating systems. The results show that AF-based CCA outperforms the compared CCAs in terms of average throughput, loss ratio and fairness, especially when a small buffer regime is applied. Moreover, the AF-based CCA shows lower sensitivity to the change of buffer size and packet error rate, which increases its efficiency. Further, we propose a novel mathematical model to calculate the average throughput of the AF-based CCA. The main contributions of this model are: First, to validate the simulation results of AF-based CCA by comparing them to the numerical results of this model and to the results of NewReno as a benchmark. Second, to study the impact of ʎmax parameter on the throughput and epoch time. Third, to formulate an equation to automate the configuration of ʎmax parameter in order to increase the scalability of AF-based CCA. Fortunately, the results confirm the validity of the proposed algorithm. Furthermore, we propose a new delay-based CCA to increase bandwidth utilization over long-distance networks, in which RTTs are very long, buffers are very large and packet loss is very common. This CCA contributes the novel Window-correlated Weighting Function (WWF), which correlates the value of the increase in cwnd to the magnitude of it. Thereafter, the gained increase is balanced using the weighting function according to the variation of RTT in order to maintain the fairness. Consequently, this behavior improves the ability of TCP to adapt to different long-distance network scenarios, which especially improves bandwidth utilization over high-BDP networks. Extensive simulation experiments show that WWF-based CCA achieves higher performance than the other CCAs while maintaining fairness. Moreover, it shows higher efficiency and stability than the compared CCAs, especially in the cases of big buffers which cause an additional delay. Fundamentally, TCP-based applications naturally need to deal with links of anydistance without the need of human reconfiguration. For this reason, it becomes very necessary to design an adaptive CCA, which is able to serve simultaneously any-distance networks. Thus, we propose a novel adaptive TCP CCA, namely Agile-TCP, which combines both AF-based and WWF-based approaches. This combination reduces the sensitivity to packet loss, buffer size and RTT variation, which in turn, improves the total performance of TCP over any-distance networks. Beyond that, a Linux kernel CCA module is implemented as a real product of the Agile-TCP. For evaluation purpose, a real test-bed of single dumbbell topology is carried out using the well-known Dummynet network emulator. Fortunately, the results show that Agile-TCP outperforms the compared CCAs in most scenarios, which is very promising for many application such as cloud computing and big data transfer.