Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Restarting from idle #2023
Restarting from idle #2023
Changes from 1 commit
4149b3c
75482c7
5d9203f
2fde7b9
d776217
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"if there are no bytes in flight"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"If the sender uses pacing"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this initial burst bit is necessary. All you need to say is that if the sender uses pacing, the cwnd does not need to be reduced. How about "A sender that uses pacing can retain its congestion window through an idle period."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the goal is to reduce bursts, I think we need to advocate for limiting the burst of a paced connection to nothing larger than the restarting window of an unpaced connection.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"If the sender does not use pacing"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similarly, I would reduce this to a sentence and remove the sentence about slow start. I'm ok with leaving the ref to 5681 in here, but I would like to remove it in a later PR and replace it with more text explaining the rationale directly (instead of pointing to 5681).
For now, how about "A sender that does not use pacing SHOULD reset its congestion window to the minimum of the current congestion window and the initial congestion window. This recommendation is based on Section 4.1 of {{?RFC5681}}."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't comment on @janaiyengar's other comment for some reason. But my suggestion is only to decay exponentially, not to aggressively grow the window from where at landed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about slowly reducing the current window thorugh exponential decay down to initial window? Otherwise e.g. video might get quite chunky as buffers fill and the connection idles. But of course other connetions might have taken the bandwidth meanwhile, so it might not be a good idea after all, depending on decay speed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know of a best practice for doing what you're describing, so unless you can find one in a TCP RFC or elsewhere, I'm hesitant to recommend it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI: I have not read this paper, except the abstract, but it seems to touch upon the current text (no my suggestion) related to pacing packets on idle restart https://www.isi.edu/~johnh/PAPERS/Visweswaraiah97b.pdf
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, only abstract read, ,but it speaks of decaying the cwnd on idle.
https://tools.ietf.org/html/rfc2861
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5681 obsoletes 2581, but makes no mention of 2861. I'll let @janaiyengar decide what to do here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RFC 2861 describes how to do this exponentially, but that was always considered too aggressive and resulted in folks turning it off in real deployments. The new one is RFC 7661, which reduces the cwnd once to max(cwnd/2, IW) and ssthresh to max(ssthresh, 3/4 x cwnd). We could use these reductions here, though 7661 is an experimental RFC, since it has gone through TCPM review.