Claypool

Courses

Publications

Students

Projects

Service

Downloads

Misc


Implementation of the SEARCH Slow Start Algorithm in the Linux Kernel
[SEARCH]

Implementation of the SEARCH Slow Start Algorithm in the Linux Kernel


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

In Proceedings of the 0x18 NetDev Conference
Santa Clara, CA, USA
July 2024


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 - 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 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. Over all 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.


Download:


More information:

SEARCH project page.


See also: