-
Notifications
You must be signed in to change notification settings - Fork 429
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
[WIP] sACK and basic congestion control, to be broken I into separate PRs #450
base: main
Are you sure you want to change the base?
Conversation
This has become sort of a catch all for various improvements I need to use this library in playit.gg. After more real world testing and adhoc patches I'll be looking to make a proper PR. |
Add test test_sack_tx_skip Update congestion control on first dup ACK
Ping me if you would like me to test something, @loriopatrick. I have a pretty good software setup that found issues in my original phase 1 PR. Before I saw your comment, I was about to say: doing all of sACK support at once seems like a big PR! 😄 The "finish then split" approach makes sense. (I would probably change the title and change it back, but since this is Draft I don't think it matters that much.) I would also note, I broke my implementation plan into phases not only for testing, but so it would be easier to review. Several times in the past, people have opened large PRs which completely implement a feature or overhaul a system like this. @whitequark always wanted them broken up, either into stand-alone parts of the feature or improvements it required that came before. |
Thanks @jhwgh1968! I still have a good number of unit tests to write but doing some real world testing we've seen great performance improvements. If the setup isn't too difficult to run I could use some early feedback, tho I understand if you'd prefer to wait for a bit more testing before starting that engine. Your phase breakdowns were really helpful to get me started. Once I the aggregate patches feel solid I'll start breaking them up into smaller PRs for review. |
Great. I'll see how it goes over the next week or so, and plan to give it a test run on the weekend. |
Didn't have a look, but are you aware of https://github.com/cbranch/smoltcp/branches/stale? |
So, I don't know if it is your fix @loriopatrick or an existing issue (because I remember patching before), but the
|
It's a bug in FaultInjector, fixed in #463 |
Thanks, @Dirbaio. I have now tested it, and the verdict is: there might be a timer interaction. I ran the This is actually an intentional test, because the rx buffer drops things, and the TCP protocol is expected to handle that. While the sACKs seem correct, it never the less timed out when the buffer got too full:
I think sACK should reset the keep-alive timer, shouldn't it? |
One more hint for Congestion Control: There is Cubic and BBR in https://github.com/quinn-rs/quinn/tree/0.8.0 which could be ported |
No description provided.