Skip to content
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

Closed
martinthomson opened this issue Dec 13, 2018 · 5 comments
Closed

How long idle is idle? #2138

martinthomson opened this issue Dec 13, 2018 · 5 comments
Labels
-recovery design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@martinthomson
Copy link
Member

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.

@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -recovery labels Dec 13, 2018
@mikkelfj
Copy link
Contributor

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.
#2023 (comment)

@ianswett
Copy link
Contributor

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.

@martinthomson
Copy link
Member Author

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.

@ianswett
Copy link
Contributor

ianswett commented Dec 14, 2018

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.

@janaiyengar
Copy link
Contributor

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.

@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Mar 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-recovery design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

No branches or pull requests

5 participants