An evolutionary approach to improve end-to-end performance in tcp/ip networks

Despite the persistent change and growth that characterizes the Internet, the Transmission Control Protocol (TCP) still dominates at the transport layer, carrying more than 90% of the global traffic. Despite its astonishing success, it has been observed that TCP can cause poor end-to-end performance, especially for large transfers and in network paths with high bandwidth-delay product. In this thesis, we focus on mechanisms that can address key problems in TCP performance, without any modification in the protocol itself. This evolutionary approach is important in practice, as the deployment of clean-slate transport protocols in the Internet has been proved to be extremely difficult. Specifically, we identify a number of TCP-related problems that can cause poor end-to-end performance. These problems include poorly dimensioned socket buffer sizes at the end-hosts, suboptimal buffer sizing at routers and switches, and congestion unresponsive TCP traffic aggregates. We propose solutions that can address these issues, without any modification to TCP. In network paths with significant available bandwidth, increasing the TCP window till observing loss can result in much lower throughput than the path's available bandwidth. We show that changes in TCP are not required to utilize all the available bandwidth, and propose the application-layer SOcket Buffer Auto-Sizing (SOBAS) mechanism to achieve this goal. SOBAS relies on run-time estimation of the round trip time (RTT) and receive rate, and limits its socket buffer size when the receive rate approaches the path's available bandwidth. In a congested network, SOBAS does not limit its socket buffer size. Our experiment results show that SOBAS improves TCP throughput in uncongested network without hurting TCP performance in congested networks. Improper router buffer sizing can also result in poor TCP throughput. Previous research in router buffer sizing focused on network performance metrics such as link utilization or loss rate. Instead, we focus on the impact of buffer sizing on end-to-end TCP performance. We find that the router buffer size that optimizes TCP throughput is largely determined by the link's output to input capacity ratio. If that ratio is larger than one, the loss rate drops exponentially with the buffer size and the optimal buffer size is close to zero. Otherwise, if the output to input capacity ratio is lower than one, the loss rate follows a power-law reduction with the buffer size and significant buffering is needed. The amount of buffering required in this case depends on whether most flows end in the slow-start phase or in the congestion avoidance phase. TCP throughput also depends on whether the cross-traffic reduces its send rate upon congestion. We define this cross-traffic property as congestion responsiveness. Since the majority of Internet traffic uses TCP, which reduces its send rate upon congestion, an aggregate of many TCP flows is believed to be congestion responsive. Here, we show that the congestion responsiveness of aggregate traffic also depends on the flow arrival process. If the ow arrival process follows an open-loop model, then even if the traffic consists exclusively of TCP transfers, the aggregate traffic can still be unresponsive to congestion. TCP flows that arrive in the network in a closed-loop manner are always congestion responsive, on the other hand. We also propose a scheme to estimate the fraction of traffic that follows the closed-loop model in a given link, and give practical guidelines to increase that fraction with simple application-layer modifications.