yggdrasil-go icon indicating copy to clipboard operation
yggdrasil-go copied to clipboard

Configurable TCP congestion control algorithm

Open pfactum opened this issue 4 years ago • 3 comments

Currently, BBR is a hard-coded choice, but given there's BBRv2 coming it would be nice to have a possibility to choose. FWIW, it is already available in the Liquorix and pf-kernel Linux forks.

What's suggested is having a knob in the config file for the user to choose the congestion control algorithm and not limiting Yggdrasil to BBR only.

pfactum avatar Jan 16 '21 22:01 pfactum

Wouldn't different congestion algorithms start to clash with eachother and produce weird behaviour?

ShadowJonathan avatar Mar 01 '21 13:03 ShadowJonathan

FWIW, I'm totally for ditching this option altogether in favour of using system-wide knob.

pfactum avatar Mar 01 '21 15:03 pfactum

FWIW, I'm totally for ditching this option altogether in favour of using system-wide knob.

+1 on this, tweaking TCP congestion control is usually a bad idea, does more harm than good when users follow the advice of "TCP congestion control comparison" articles and select some weird experimental congestion control algorithm like YeAH TCP that are just overly aggressive and win "benchmarks" because of that. Just stick to the default (CUBIC for now) and switch to BBR/BBRv2 when/if it becomes Linux default.

In any case, all these TCP congestion control algorithms were designed to operate end-to-end. It may be easily possible that when you run a mesh network, and each link runs its own TCP algorithm, algorithms like BBR that periodically unload the link to measure latency make things worse. Most likely though it does not matter at all which algorithm you use for a low-latency single point-to-point connection.

Also don't forget that Yggdrasil is tunneling system TCP (likely CUBIC) with high MTU over Yggdrasil TCP (currently BBR) with low MTU. Without proper research using a tool such as meshnet-lab it's impossible to tell how these tweaks affect the network performance.

link2xt avatar Jul 26 '21 12:07 link2xt

v0.5 will no longer request BBR. We will leave the TCP congestion control algorithm up to the host.

neilalexander avatar Oct 21 '23 20:10 neilalexander