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
Support BBR congestion algorithm #4054
base: master
Are you sure you want to change the base?
Conversation
e8bae02
to
f87afc1
Compare
f87afc1
to
d23b00b
Compare
In Wi-Fi 433Mbps network environment, use BBR congestion algorithm can up to 13MiB/s but CUBIC can only up to 6MiB/s
|
Is this BBRV2 or BBRV3? |
@aggresss Thanks for your amazing work. However I believe there's a serious bug when using this over localhost connections (at least on Windows): Steps to reproduce the problem:.
Observations:.
I've tried debugging, but to no avail. I suspect this problem is due to the low latency or some other properties of localhost that make the code run into some edge cases. (This bug is NOT seen with the default cubic congestion control) I'm the developer of Hysteria, a QUIC-based proxy project, and I'm very interested in integrating your BBR implementation. If you are interested, we can work together to further debug this. |
Alloc & CPU pprof files of the server (during connection hanging & CPU 100%) are attached.
This
pprof-alloc.pb.gz @marten-seemann EDIT: please ignore my previous message saying cubic has the same bug - it doesn't. During the testing process, I actually ran into a Go compiler optimization bug around |
Reference to #341 and #1888
This PR implements the BBR congestion algorithm.
For reference only.
BBR Version: https://github.com/google/quiche/blob/e7872fc9e12bb1d46a118949c3d4da36de58aa44/quiche/quic/core/congestion_control/bbr_sender.cc