2

How can I enumerate the complete list of TCP Congestion Control Algorithms that my Android device supports? And how can I see which apps are using which algorithm?

I'm trying to figure out why some open-source apps suck so bad at uploading and downloading on networks with bad Goodput (eg high packet loss, jitter, and latency).

One thing that can be done to drastically improve Goodput on poor networks is to modify the TCP Congestion Control Algorithm. Doing so requires both the server and the client to support a given algorithm. So the first step is to determine which algorithms are available, which are provided by the OS (Android).

How can I get a list of all the TCP Congestion Control Algorithms that my Android device supports?

1

1 Answer 1

2

To list available TCP Congestion Control Algorithm (CCA):

adb shell sysctl net.ipv4.tcp_available_congestion_control

To list allowed TCP CCA:

adb shell sysctl net.ipv4.tcp_allowed_congestion_control

To display which TCP CCA is currently used:

adb shell sysctl net.ipv4.tcp_congestion_control

Example on a stock Pixel 3a:

sargo:/ $ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = cubic reno

sargo:/ $ sysctl net.ipv4.tcp_allowed_congestion_control
net.ipv4.tcp_allowed_congestion_control = cubic reno

sargo:/ $ sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic

References:

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .