Abstract
TCP latency is critical to the performance of Web services. However, packet loss greatly impairs the TCP performance due to its poor loss recovery mechanisms. Recent work FUSO addressed this problem by leveraging multi-path diversity for proactive loss recovery, i.e., using “good” paths to proactively retransmit the potentially lost packet on “bad” paths before they are retransmitted after duplicate ACKs or timeout. Nevertheless, since it has no clue about which packet is (or will be) lost, FUSO simply proactively retransmits the oldest unACKed packet whenever there is a chance for proactive loss recovery. Through analysis and comprehensive experiments, we show that although FUSO behaves well in data center networks, which it is originally designed for, in the Internet scenario, such simple proactive retransmission of the oldest unACKed packet is not accurate enough to recover the lost packets, which causes performance penalty. To address the problem, this paper presents CoFUSO, a Coding-Based Fast Multi-Path Loss Recovery. Different from FUSO, when there is a chance for proactive loss recovery, CoFUSO generates a coding packet that codes all (or multiple) unACKed packets together. As such, CoFUSO can always proactively retransmit the “right” lost packet, since the receiver side can decode the lost packet by combining the coding packet with other received packets. We implement CoFUSO in Linux kernel with $$\sim$$ 2K lines of code. Testbed and simulation results show that, under lossy condition, CoFUSO can greatly improve the average and 99th percentile flow completion time (FCT) by $$\sim$$ 12% and $$\sim$$ 59% in the testbed, and up to $$\sim$$ 16.9% and $$\sim$$ 54.5% in the simulation, respectively.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have