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

A few of gorry's nits #4085

Merged
merged 10 commits into from Sep 10, 2020
28 changes: 15 additions & 13 deletions draft-ietf-quic-recovery.md
Expand Up @@ -481,10 +481,10 @@ implementations SHOULD NOT use a packet threshold less than 3; see {{?RFC5681}}.
Some networks may exhibit higher degrees of packet reordering, causing a sender
to detect spurious losses. Additionally, packet reordering could be more common
with QUIC than TCP, because network elements that could observe and reorder
out-of-order TCP packets cannot do that for QUIC, because packet numbers
are encrypted. Algorithms that increase the reordering threshold after
spuriously detecting losses, such as RACK {{?RACK}}, have proven to be useful
in TCP and are expected to be at least as useful in QUIC.
TCP packets cannot do that for QUIC, because QUIC packet numbers are encrypted.
Algorithms that increase the reordering threshold after spuriously detecting
losses, such as RACK {{?RACK}}, have proven to be useful in TCP and are
expected to be at least as useful in QUIC.

### Time Threshold {#time-threshold}

Expand Down Expand Up @@ -601,8 +601,8 @@ occurs across all spaces to prevent excess load on the network. For example,
a timeout in the Initial packet number space doubles the length of the timeout
in the Handshake packet number space.

The time length of a connection that is experiencing consecutive PTOs is
limited by the endpoint's idle timeout.
The total length of time over which consecutive PTOs expire is limited by the
idle timeout.

The probe timer MUST NOT be set if the time threshold ({{time-threshold}}) loss
detection timer is set. The time threshold loss detection timer is expected
Expand Down Expand Up @@ -646,7 +646,8 @@ probe timer if the client has not received an acknowledgement for one of its
Handshake packets and the handshake is not confirmed (see Section 4.1.2 of
{{QUIC-TLS}}), even if there are no packets in flight. When the PTO fires,
the client MUST send a Handshake packet if it has Handshake keys, otherwise it
MUST send an Initial packet in a UDP datagram of at least 1200 bytes.
MUST send an Initial packet in a UDP datagram with a payload of at least 1200
bytes.

### Speeding Up Handshake Completion

Expand All @@ -660,8 +661,9 @@ To speed up handshake completion under these conditions, an endpoint MAY send
a packet containing unacknowledged CRYPTO data earlier than the PTO expiry,
subject to the address validation limits in Section 8.1 of {{QUIC-TRANSPORT}}.

Endpoints can also use coalesced packets to ensure that each datagram elicits at
least one acknowledgement. For example, a client can coalesce an Initial packet
Endpoints can also use coalesced packets (see Section 12.2 of
{{QUIC-TRANSPORT}}) to ensure that each datagram elicits at least one
acknowledgement. For example, a client can coalesce an Initial packet
containing PING and PADDING frames with a 0-RTT data packet and a server can
coalesce an Initial packet containing a PING frame with one or more packets in
its first flight.
Expand Down Expand Up @@ -796,10 +798,10 @@ receives packets with the ECN-CE codepoint.

QUIC begins every connection in slow start with the congestion window set to
an initial value. Endpoints SHOULD use an initial congestion window of 10 times
the maximum datagram size (max_datagram_size), limited to the larger of 14720 or
twice the maximum datagram size. This follows the analysis and recommendations
in {{?RFC6928}}, increasing the byte limit to account for the smaller 8 byte
overhead of UDP compared to the 20 byte overhead for TCP.
the maximum datagram size (max_datagram_size), limited to the larger of 14720
bytes or twice the maximum datagram size. This follows the analysis and
recommendations in {{?RFC6928}}, increasing the byte limit to account for the
smaller 8 byte overhead of UDP compared to the 20 byte overhead for TCP.

If the maximum datagram size changes during the connection, the initial
congestion window SHOULD be recalculated with the new size. If the maximum
Expand Down