-
Notifications
You must be signed in to change notification settings - Fork 204
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
How long idle is idle? #2138
Comments
I did propose an exponential decay in some other issue and added a link to some TCP RFC 2861 and research that touches upon this. |
The intent is this is triggered after an idle period of any length. As it says in the draft, the reason is to limit bursts into the network. It turns out bursting 100 packets at once into the network almost always causes losses, and two solutions are pacing and resetting the CWND to a lower value out of idle and allowing ack-clocking to smooth the flow. |
Idleness happens very frequently. You are basically saying that you always have to pace. Or that you can only burst packets up to the initial congestion window If that's the intent, please say so. |
I think that's what the text does say. If you think it's unclear, tell me wht and I can fix it or feel free to send a PR. |
The text in Section 7.8 says that if you enter idle, then you leave in one of two ways: pace, or reduce your cwnd to init_cwnd. We're choosing to not really spend energy on performance for the non-pacing cases, because pacing is an undocumented BCP. When not pacing, it's reasonable to do something along the lines of what @mikkelfj suggests -- indeed that's roughly what NewCWV (RFC 7661) stipulates. I don't think we need to get into defining exactly how to do this, but I'll propose some text that allows senders to do some sort of slow decaying when not pacing. |
Section 7.8 of -recovery specifies rules for what a sender does when it starts sending after an idle period. But surely this doesn't apply when the idle period is short. Reading that text, an idle period of any duration would trigger this requirement, but I don't think that is the intent. The period should be defined.
The text was updated successfully, but these errors were encountered: