Draft: draft-ietf-quic-recovery

Commentary: Update based on my review of the editor 's copy .
Paragraph (version A):
QUIC implements the spirit of existing TCP loss recovery mechanisms,
described in RFCs, various Internet-drafts, and also those prevalent
in the Linux TCP implementation.  This document describes QUIC
congestion control and loss recovery, and where applicable,
attributes the TCP equivalent in RFCs, Internet-drafts, academic
papers, and/or TCP implementations.
Paragraph (version B):
QUIC implements the spirit of existing TCP congestion control and
loss recovery mechanisms, described in RFCs, various Internet-drafts,
and also those prevalent in the Linux TCP implementation.  This
document describes QUIC congestion control and loss recovery, and
where applicable, attributes the TCP equivalent in RFCs, Internet-
drafts, academic papers, and/or TCP implementations.
Paragraph (version A):
Packets containing CRYPTO data sent in Initial or Handshake
packets.
Paragraph (version A):
To avoid generating multiple RTT samples using the same packet, an
ACK frame SHOULD NOT be used to update RTT estimates if it does not
newly acknowledge the largest acknowledged packet.
Paragraph (version B):
To avoid generating multiple RTT samples for a single packet, an ACK
frame SHOULD NOT be used to update RTT estimates if it does not newly
acknowledge the largest acknowledged packet.
Paragraph (version A):
QUIC senders use both ack information and timeouts to detect lost
packets, and this section provides a description of these algorithms.
Paragraph (version B):
QUIC senders use acknowledgements to detect lost packets, and a probe
time out pto to ensure acknowledgements are received.  This section
provides a description of these algorithms.
Paragraph (version A):
When a PTO timer expires, the PTO period MUST be set to twice its
current value.  This exponential reduction in the sender's rate is
important because the PTOs might be caused by loss of packets or
acknowledgements due to severe congestion.  Even when there are ack-
eliciting packets in-flight in multiple packet number spaces, the
exponential increase in probe timeout 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.
Paragraph (version B):
When a PTO timer expires, the PTO period MUST be set to twice its
current value.  This exponential reduction in the sender's rate is
important because consecutive PTOs might be caused by loss of packets
or acknowledgements due to severe congestion.  Even when there are
ack-eliciting packets in-flight in multiple packet number spaces, the
exponential increase in probe timeout 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.
Paragraph (version A):
Initial packets and Handshake packets could never be acknowledged,
but they are removed from bytes in flight when the Initial and
Handshake keys are discarded.
Paragraph (version B):
Initial packets and Handshake packets could be never acknowledged,
but they are removed from bytes in flight when the Initial and
Handshake keys are discarded.
Paragraph (version A):
When the PTO timer expires, and there is new or previously sent
unacknowledged data, it MUST be sent.  Data that was previously sent
with Initial encryption MUST be sent before Handshake data and data
previously sent at Handshake encryption MUST be sent before any
ApplicationData data.
Paragraph (version B):
When the PTO timer expires, and there is new or previously sent
unacknowledged data, it MUST be sent.