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

Remove unnecessary pacing text and reword RTO text #977

Merged
merged 6 commits into from Dec 7, 2017
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
46 changes: 21 additions & 25 deletions draft-ietf-quic-recovery.md
Expand Up @@ -812,10 +812,10 @@ both the median and mean min_rtt typically observed on the public internet.

# Congestion Control

QUIC's congestion control is based on TCP NewReno{{?RFC6582}}
congestion control to determine the congestion window and
pacing rate. QUIC congestion control is specified in bytes due to
finer control and the ease of appropriate byte counting{{?RFC3465}}.
QUIC's congestion control is based on TCP NewReno {{?RFC6582}} congestion
control to determine the congestion window. QUIC congestion control is
specified in bytes due to finer control and the ease of appropriate byte
counting {{?RFC3465}}.

## Slow Start

Expand Down Expand Up @@ -850,30 +850,26 @@ the reduction to once per round trip.

## Tail Loss Probe

If recovery sends a tail loss probe, no change is made to the congestion
window or pacing rate. Acknowledgement or loss of tail loss probes are
treated like any other packet.
If recovery sends a tail loss probe, no change is made to the congestion window.
Acknowledgement or loss of tail loss probes are treated like any other packet.

## Retransmission Timeout

When retransmissions are sent due to a retransmission timeout alarm, no
change is made to the congestion window or pacing rate until the next
acknowledgement arrives. When an ack arrives, if packets prior to the first
retransmission timeout are acknowledged, then the congestion window
remains the same. If no packets prior to the first retransmission timeout
are acknowledged, the retransmission timeout has been validated and the
congestion window must be reduced to the minimum congestion window and
slow start is begun.

## Pacing Rate

The pacing rate is a function of the mode, the congestion window, and
the smoothed rtt. Specifically, the pacing rate is 2 times the
congestion window divided by the smoothed RTT during slow start
and 1.25 times the congestion window divided by the smoothed RTT during
congestion avoidance. In order to fairly compete with flows that are not
pacing, it is recommended to not pace the first 10 sent packets when
exiting quiescence.
When retransmissions are sent due to a retransmission timeout alarm, no change
is made to the congestion window until the next acknowledgement arrives. When
an ack arrives, if packets prior to the first retransmission timeout are
acknowledged, then the congestion window remains the same. If no packets prior
to the first retransmission timeout are acknowledged, the retransmission timeout
has been validated and the congestion window must be reduced to the minimum
congestion window and slow start is begun.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: begun is weird in retrospect. Maybe re-entered?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

reworded paragraph


## Pacing

It is RECOMMENDED that a sender pace sending of all data, distributing the
congestion window over the SRTT. This document does not specify a pacer. As an
example pacer, implementers are referred to the Fair Queue packet scheduler (fq
qdisc) in Linux (3.11 onwards) as a well-known and publicly available
implementation of a flow pacer.

## Pseudocode

Expand Down