-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
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 |
I have fixed the issue mentioned above and rebase the commit on v0.45.0 |
Thank you for the PR. Unfortunately, we won't be able to merge a 4000 LOC change. I've opened #4565 to track BBRv3 support. |
The performance of cubic in high latency networks is indeed unsatisfactory, so if this PR can play a driving role, it is also very good. |
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