New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add BBR to QUIC Congestion Control Algorithm #2516
Comments
This is an interesting feature and for sure a must-have for our haproxy QUIC implementation. Thank you for this reminder. I have begun to read the RFC of BBRv2 here https://www.ietf.org/archive/id/draft-cardwell-iccrg-bbr-congestion-control-02.html and I stopped reading it as soon as it mentions the packet pacing, so in relation with this part https://datatracker.ietf.org/doc/html/rfc9002#name-pacing. This is something we have not already implemented. If we look at the BBR RFC contents, a pacing rate state must be maintain. Here is a short extract about pacing and BBR:
But this does not mean we will never implement BBR, this only means there are some changes to be made on the TX part/path to stop sending bursts of packets if we want to support BBR . |
This is interesting, can it use the system configured congestion control algorithm?
Or at the very least, use the system one, if it's one of the supported ones, and if it's not specified? So can be overridden if |
I am not sure to understand what you meant. Linux TCP statck uses its own congestion control algorithm implementations. There is no congestion control algorithm in the linux UDP stack. The sysctls you mentioned are for TCP. Nothing to see with UDP or QUIC. |
Right, I mean, check the system's TCP congestion control algorithm and have HAProxy default to using the same for QUIC (of course, with adding BBR support as per the OP) with the option to override by specifying So on systems where |
Im waiting too |
Your Feature Request
The congestion control algorithm utilized when using QUIC with HAProxy is currently Cubic.
Cubic tends to overly react to physical packet loss such as CRC errors, leading to a decrease in throughput. Therefore, it would be helpful to have the option to choose the BBR.
References:
BBR
When to use and when not to use BBR: An empirical analysis and evaluation study
What are you trying to do?
HAProxy can maintain stable throughput even in lossy communication environments with QUIC BBR.
quic-cc-algo { cubic | newreno | bbr }(max_window)
Example:
Output of
haproxy -vv
The text was updated successfully, but these errors were encountered: