You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice to (optionally) have a different congestion controller than NewReno available. I'm skeptical if we can actually provide an interface that's general enough to allow for truly pluggable congestion control (#776), but multiple users have expressed interested in BBR in the past.
In terms of BBR versions, we should support BBRv3, since BBRv1 suffered from (under certain circumstances) severe fairness issues, since it completely disregarded packet loss and ECN. BBRv2 was an improvement over that, but it looks like Google has moved on the v3 now.
Unfortunately, the most recent draft describes BBRv2, is more than 2 years old and has expired: https://datatracker.ietf.org/doc/html/draft-cardwell-iccrg-bbr-congestion-control. While the BBR team at Google regularly updates the ICCRG group at IETF about new developments in BBR-land, I'm not aware of any BBRv3 specification.
Implementing a complex congestion controller like BBR is a massive amount of work, both in terms of initial implementation . At the very least, we'll need:
A specification. I don't want to just blindly copy-paste Chrome code and translate it to Go.
A production setup capable of generating meaningful metrics.
For anyone commenting here, please don't suggest testing with tc / netem, or just run some transfers between two cloud machines. That's by no means sufficient to evaluate the performance of a congestion controller.
Note: The fact that I'm opening this issue doesn't mean that implementation of BBR will happen any time soon, or at all. There's also little point in sending a massive PR that adds BBR support. Merging a new congestion controller is by no means free, as it commits us to supporting it long term.
The text was updated successfully, but these errors were encountered:
It would be nice to (optionally) have a different congestion controller than NewReno available. I'm skeptical if we can actually provide an interface that's general enough to allow for truly pluggable congestion control (#776), but multiple users have expressed interested in BBR in the past.
In terms of BBR versions, we should support BBRv3, since BBRv1 suffered from (under certain circumstances) severe fairness issues, since it completely disregarded packet loss and ECN. BBRv2 was an improvement over that, but it looks like Google has moved on the v3 now.
Unfortunately, the most recent draft describes BBRv2, is more than 2 years old and has expired: https://datatracker.ietf.org/doc/html/draft-cardwell-iccrg-bbr-congestion-control. While the BBR team at Google regularly updates the ICCRG group at IETF about new developments in BBR-land, I'm not aware of any BBRv3 specification.
Implementing a complex congestion controller like BBR is a massive amount of work, both in terms of initial implementation . At the very least, we'll need:
For anyone commenting here, please don't suggest testing with tc / netem, or just run some transfers between two cloud machines. That's by no means sufficient to evaluate the performance of a congestion controller.
Note: The fact that I'm opening this issue doesn't mean that implementation of BBR will happen any time soon, or at all. There's also little point in sending a massive PR that adds BBR support. Merging a new congestion controller is by no means free, as it commits us to supporting it long term.
The text was updated successfully, but these errors were encountered: