shadow / shadow

Shadow is a discrete-event network simulator that directly executes real application code, enabling you to simulate distributed systems with thousands of network-connected processes in realistic and scalable private network experiments using your laptop, desktop, or server running Linux.
https://shadow.github.io
Other
1.43k stars 237 forks source link

Add support for TCP Bottleneck Bandwidth and RRT (BBR) algorithm #1927

Open sporksmith opened 2 years ago

sporksmith commented 2 years ago

It looks like this new congestion control algorithm is gaining traction. See https://www.linuxcapable.com/enable-tcp-bbr-on-ubuntu-22-04-boost-internet-speed/

cc @mikeperry-tor

sporksmith commented 2 years ago

Tor discussion on whether to recommend BBR for relay operators: https://gitlab.torproject.org/tpo/core/tor/-/issues/30420

mikeperry-tor commented 2 years ago

Given BBRv1's fairness issues, an interesting experiment would be investigation of what happens when some fraction of relays and/or webservers run BBR, and some do not. But I bet such a thing is quite complicated, wrt kernel support.

sporksmith commented 2 years ago

Shadow uses its own implementation of TCP, so it doesn't really matter whether the kernel Shadow is running on has BBR support enabled. The bulk of the complexity+work is faithfully reimplementing BBR in Shadow.