-
Notifications
You must be signed in to change notification settings - Fork 180
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
Careful Resume draft-ietf-tsvwg-careful-resume #1654
Comments
Great! Did you build upon the existing implementation of careful resume that I did when writing the draft? |
Not sure what exactly you mean with existing careful resume and to which version of the draft you are refering to, but yes, we are largely using your existing code (notifications, ticket store, seed). In your current implementation, you jump to a full BDP. We added the Careful Resume phases (reconnaissance, unvalidated, validating, safe retreat) and tried to follow the latest version of the draft (draft-ietf-tsvwg-careful-resume-07) as closely as possible. Also we included some test cases, but this is work in progress. |
I will wait to see the PR do comment more, but the unvalidated/validated transitions were already part of the implementation. The validation was implemented as part of |
I'll let you know again as soon as I have commented more on the code.
I'll take another look at it. We were just surprised that according to the current draft, the path is verified if the RTT is between saved_rtt / 2 and saved_rtt * 10. So we moved the verification to our own implementation.
Thanks for the tip, I've already fixed it. Should be changed with the next commit. We are currently only testing with one connection. Accordingly, this has never been noticed. Keep you up to date here. |
I deliberately did not entirely follow the draft... Especially parts like "between saved_rtt / 2 and saved_rtt * 10". That's way too loose, and will have to change before the draft is published. The part about "safe retreat" varies depending on the congestion control algorithm. Mostly, I tested this function with BBR, and the safe retreat is automatic. If the server tries to send too fast, packets will be queued or lost. The measured throughput will indicate the actual capacity of the link, which will be the correct value. If packets are lost, BBR will exit startup, go in "draining" mode to clear the excess buffer, and then enter the "probe BW" state with the correct parameters. |
We have a series of tests for the careful resume functionality: all the tests labelled bdp_*, and also the test labelled "satellite_seeded". The test "bdp_ip", for example, verifies that the BDP seeding is not applied if the IP address changed. |
Thanks for the discussion at tsvwg/careful-resume#28 We only considered CUBIC (and partly NewReno) so far, but we'll have a look at BBR. |
I already did, and tested, the implementation in BBR. May I suggest that you observe it and enter the issues that you find? For the other cases, my main concern is replacing an existing implementation by another based on a draft. We risk to have regressions -- but hopefully we can check that by running the tests. We also risk duplication of efforts, but we will see that when reviewing the PR. |
FYI: We are working on an implementation of https://datatracker.ietf.org/doc/draft-ietf-tsvwg-careful-resume
It is available here: https://github.com/hfstco/picoquic/tree/careful_resume
Not ready for a pull request yet, but maybe in the near future :-)
The text was updated successfully, but these errors were encountered: