Session

A Linux Implementation of SEARCH -- a New TCP Slow Start Algorithm

Speakers

Maryam Ataei Kachooei
Joshua Chung
Amber Cronin
Benjamin Peters
Feng Li
Jae Won Chung
Mark Claypool

Label

Nuts and Bolts

Session Type

Talk

Contents

Description

TCP slow start is designed to ramp up to the network congestion point quickly, doubling the congestion window each round-trip time until the congestion point is reached, whereupon TCP exits the slow start phase. Unfortunately, the default Linux TCP slow start implementation – TCP Cubic with HyStart [1] – can cause premature exit from slow start, especially over wireless links, degrading link utilization. However, without HyStart, TCP exits too late, causing unnecessary packet loss. To improve TCP performance during slow start, we developed the Slow start Exit At Right CHokepoint (SEARCH) algorithm [2] where the congestion point is determined based on bytes delivered compared to the expected bytes delivered, smoothed to account for link latency variation and normalized to accommodate link capacities. In prior work, we implemented SEARCH and evaluated it over 4G LTE, low earth orbit (LEO), and geosynchronous (GEO) satellite links. In this paper, we implemented search as a Linux kernel v5.16 module, illustrate its performance over GEO satellite links by example, and evaluate SEARCH over Wi-Fi. Overall networks, SEARCH reliably exits from slow after the congestion point is reached but before inducing packet loss. Our Linux kernel module is open-source and available for general use and further evaluation.

[1] Ha, S., and Rhee, I. 2011. Taming the elephants: New tcp slow start. Computer Networks 55(9):2092–2110. [2] Kachooei, M. A.; Chung, J.; Li, F.; Peters, B.; and Claypool, M. 2023a. Search: Robust tcp slow start performance over satellite networks. In 2023 IEEE 48th Conference on Local Computer Networks (LCN), 1–4.