TCP suffers from low throughput and high latency because of its expensive timeout based loss recovery mechanism in data center networks (DCNs). In this paper, we propose TCP with Adaptive Complementary Coding (TCP-ACC) to effectively address these problems.
Without revising existing TCP congestion control, we first design a light-weight complementary coding scheme to avoid TCP timeout which will result in higher throughput and lower latency.
In our scheme, the redundancy setting is adaptive to the real-time packet loss rate. Then we introduce Lyapunov optimization framework to find the optimal number of redundant coding packets for TCP-ACC, and we also prove that TCP-ACC can reduce the flow timeout probability close to that of the optimal complementary coding solution.
Extensive NS2 simulations show that, compared with other three solutions for TCP’s problems in DCNs, TCP-ACC can reduce the flow completion time by 45% and improve the flow throughput by 40% on average.
Design of the Adaptive Complementary Coding Scheme:
In this section, we first introduce the framework and notations of TCP-ACC, and then represent the details about the sender and receiver operations in our scheme respectively.
A. Framework and Notations:
The compatibility is essential to the design of TCP extensions. Middle-boxes are widely used but hard to handle, which make the design of TCP with coding technology more complex.
B. Sender Operations in Complementary Coding Design:
At the sender side, TCP-ACC uses the light-wight coding redundancy to reduce the flow timeout probability while keeping necessary congestion control. The sender utilizes the new loss number dnew and the size of TCP congestion window w to calculate the real-time loss rate p and the timeout probability Pt.
C. Receiver Operations in Complementary Coding Design:
At the receiver side, there are two types of packets to handle, the original packets and coded packets. When a new TCP packet arrives, the receiver should first check whether it is coded. Only when the value of n in the coding header is larger than zero, it is a coded packet and requires decoding. The detailed operations at the receiver are described as follows.
Determining the Optimal Complementary Number:
In this section, we first model the T-C tradeoff through the Lyapunov optimization method. By solving this model, TCP-ACC can get the proper values of c1 and c2. Then we analyze this model and prove the finiteness of the timeout probability and the network congestion extent resulted from our scheme.
In this section, we evaluate the performance of TCP-ACC against three state-of-art transmission strategies through extensive simulations on NS-2.
In this paper, we proposed an coding redundant transmission based solution named TCP-ACC (TCP with Adaptive Complementary Coding) to improve TCP performance on throughout and latency in DCNs. TCP-ACC is implemented in a new light-weight coding layer between the TCP and IP layer, which keeps its good compatibility to existing the protocol stacks. With flexible redundancy setting, TCP-ACC can avoid timeout effectively even for multiple losses in one window and thus ensure continuous flow transmission.
Since our solution and all the other compared solutions do not make direct changes to TCP congestion window, to make a fair comparison, we only implement part of the whole Corrective solution. Specifically, we implement CCR as the key coding solution of Corrective, but does not implement the congestion control mechanism of Corrective which is similar to explicit congestion notification (ECN).
In this way, we are easy to illustrate the effects of different coding solutions with comparable analysis results, rather than just show the performance of the whole simulated solution without useful analysis. We will compare the complete implementation of whole Corrective solution in the future work. We are also targeting for a real-world implementation of TCP-ACC in DCNs.
Source: State Key Laboratory of Information Security
Author: Jiyan Sun | Yan Zhang | Ding Tang | Shuli Zhang | Zhen Xu | Jingguo Ge