Non-renegable selective acknowledgments and scheduling for TCP and multipath TCP

Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
University of Delaware
Abstract
We investigate two issues related to the transport layer and propose solutions to address these issues. All proposed solutions are implemented in the Linux kernel and evaluated with real network topologies. First, we explore what performance gains can be obtained when a TCP or Multipath TCP (MPTCP) receiver guarantees never to discard received out-of-order PDUs from the receive buffer (i.e., never reneg). TCP is designed to tolerate reneging. This design has been challenged since (i) reneging rarely occurs in practice, and (ii) even when reneging does occur, it alone generally does not help the operating system resume normal operation when the system is starving for memory. In the current MPTCP standard, an MPTCP receiver cannot selectively acknowledge the reception of out-of-order PDUs to an MPTCP sender. We investigate how freeing received out-of-order PDUs from the send buffer by using Non-Renegable Selective Acknowledgments (NR-SACKs) can improve end-to-end performance. This improvement results when send buffer blocking occurs in both TCP and MPTCP. Preliminary results for TCP NR-SACKs show that (i) TCP data transfers with NR-SACKs never perform worse than those without NR-SACKs, and (ii) NR-SACKs can improve end-to-end throughput when send buffer blocking occurs. Under certain circumstances, we observe throughput increasing by using TCP NR-SACKs as much as 15%. Preliminary results for MPTCP NR-SACKs show that (i) MPTCP data transfers with NR-SACKs never perform worse than those without NR-SACKs, and (ii) NR-SACKs can improve end-to-end throughput in MPTCP when send buffer blocking occurs. Under certain circumstances, we observe throughput increasing by using MPTCP NR-SACKs as much as 38%. Second, we explore potential application performance gains from two innovative scheduling policies for MPTCP. Whenever an MPTCP sender wants to send data, the scheduler needs to decide on which subflow to send each byte. We explain problems with the default scheduler used by Linux MPTCP, and propose the design of a scheduler based not only on a subflow's speed but also the subflow's congestion. Preliminary results show that our proposed scheduler improves the throughput in MPTCP by alleviating the problems caused by the default scheduler. We also define and use one-way communication delay of a TCP connection to design an MPTCP scheduler that transmits PDUs out-of-order over different subflows such that their arrival is in-order. Preliminary results show our proposed scheduler can reduce receive buffer utilization, and increase throughput when a small receive buffer size results in receive buffer blocking.
Description
Keywords
Citation