Dissertation Defense/Michael F. Nowlan
Title: A Wire-Compatible TCP Implementation for Low-Latency Applications
Advisor: Bryan Ford
Other committee members:
Y. Richard Yang
Janardhan Iyengar (Google)
Abstract: Despite alternative transport protocols designed specifically for latency-sensitive applications, TCP remains the de facto standard for Internet traffic, including many interactive applications requiring low-latency delivery. As such, applications often tweak the TCP protocol to better suit their needs but run the risk that any change to TCP’s wire format can cause reachability issues or complete failure.
This work presents two changes to TCP’s implementation, one sender-side and one receiver-side, to reduce end-to-end latency without modifying TCP’s wire format.
Bufferbloat Resilient (BBR) TCP is a sender-side modification that detects and mitigates instances of so-called “bufferbloat” in a TCP connection. Large network buffers coupled with TCP’s additive increase often result in standing queues and drastically higher round-trip times. BBR throttles the TCP sender by identifying bufferbloat through the correlation of sending rate and delay. A live production deployment shows drastic improvement in latency, bandwidth efficiency and retransmissions for a video streaming platform.
Random losses and losses due to congestion significantly increase latency at the receiver due to TCP’s strict in-order delivery model.
Unordered TCP (uTCP) is a receiver-side change that exposes to applications out-of-order data segments that the OS normally delays in socket buffers. This small change enables applications to build generic unordered datagram transports and improves end-to-end latency for interactive applications. Evaluations show that uTCP can approximate the latency performance of UDP for various application workloads.