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

Add some MUSTs to congestion control #3978

Merged
merged 17 commits into from
Sep 1, 2020
Merged
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions draft-ietf-quic-recovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -767,20 +767,22 @@ While in slow start, QUIC increases the congestion window by the
number of bytes acknowledged when each acknowledgment is processed, resulting
in exponential growth of the congestion window.

QUIC exits slow start upon loss or upon increase in the ECN-CE counter.
When slow start is exited, the congestion window halves and the slow start
threshold is set to the new congestion window. QUIC re-enters slow start
any time the congestion window is less than the slow start threshold,
which only occurs after persistent congestion is declared.
QUIC MUST exit slow start and enter congestion avoidance upon loss or upon
increase in the ECN-CE counter. When slow start is exited, the congestion
window halves and the slow start threshold is set to the new congestion
larseggert marked this conversation as resolved.
Show resolved Hide resolved
window. QUIC re-enters slow start any time the congestion window is less
than the slow start threshold, which only occurs after persistent congestion
is declared.

## Congestion Avoidance

Slow start exits to congestion avoidance. Congestion avoidance uses an
Additive Increase Multiplicative Decrease (AIMD) approach that increases
the congestion window by one maximum packet size per congestion window
acknowledged. When a loss or ECN-CE marking is detected, NewReno halves
the congestion window, sets the slow start threshold to the new
congestion window, and then enters the recovery period.
NewReno congestion avoidance uses an Additive Increase Multiplicative Decrease
(AIMD) approach that typically increases the congestion window by one maximum
datagram size per congestion window acknowledged, and MUST NOT increase the
congestion window faster. When a loss or ECN-CE marking is detected, the sender
MUST reduce the congestion window. NewReno halves the congestion window, sets the
slow start threshold to the new congestion window, and then enters the recovery
period.

## Recovery Period

Expand Down Expand Up @@ -996,11 +998,12 @@ Reporting additional ECN-CE markings will cause a sender to reduce their sending
rate, which is similar in effect to advertising reduced connection flow control
limits and so no advantage is gained by doing so.

Endpoints choose the congestion controller that they use. Though congestion
controllers generally treat reports of ECN-CE markings as equivalent to loss
({{?RFC8311}}), the exact response for each controller could be different.
Failure to correctly respond to information about ECN markings is therefore
difficult to detect.
Endpoints choose the congestion controller that they use. Congestion controllers
respond to reports of ECN-CE by reducing their rate, but the response may vary.
Markings can be treated as equivalent to loss ({{?RFC3168}}), but other
responses can be specified, such as ({{?RFC8511}}) or ({{?RFC8311}}). Failure to
correctly respond to information about ECN markings is therefore difficult to
detect.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually don't really understand the intention of the last sentence. This is also true for lost base congestion control or even controller which are not based on loss at all.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This text is pre-existing, but I agree it doesn't say anything important and probably could be removed.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I think we should remove it because it almost sounds like an incentive to deviate which we don't want to encourage.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SG, sentence removed.



# IANA Considerations
Expand Down