Draft: draft-ietf-quic-recovery

Commentary: When writing , I found some of the text organization to be odd , so this moves it some .
Paragraph (version A):
A sender computes its PTO timer every time an ack-eliciting packet is
sent.  When ack-eliciting packets are in-flight in multiple packet
number spaces, the timer MUST be set for the packet number space with
the earliest timeout, except for ApplicationData, which MUST be
ignored until the handshake completes; see Section 4.1.1 of QUIC-TLS.
Not arming the PTO for ApplicationData prevents a client from
retransmitting a 0-RTT packet on a PTO expiration before confirming
that the server is able to decrypt 0-RTT packets, and prevents a
server from sending a 1-RTT packet on a PTO expiration before it has
the keys to process an acknowledgement.
Paragraph (version B):
A sender recomputes and may need to reset its PTO timer every time an
ack-eliciting packet is sent.  When ack-eliciting packets are in-
flight in multiple packet number spaces, the timer MUST be set for
the packet number space with the earliest timeout, except for
ApplicationData, which MUST be ignored until the handshake completes;
see Section 4.1.1 of QUIC-TLS.  Not arming the PTO for
ApplicationData prevents a client from retransmitting a 0-RTT packet
on a PTO expiration before confirming that the server is able to
decrypt 0-RTT packets, and prevents a server from sending a 1-RTT
packet on a PTO expiration before it has the keys to process an
acknowledgement.
Paragraph (version A):
When a PTO timer expires, a sender MUST send at least one ack-
eliciting packet in the packet number space as a probe, unless there
is no data available to send.  An endpoint MAY send up to two full-
sized datagrams containing ack-eliciting packets, to avoid an
expensive consecutive PTO expiration due to a single lost datagram or
transmit data from multiple packet number spaces.
Paragraph (version B):
When a PTO timer expires, a sender MUST send at least one ack-
eliciting packet in the packet number space as a probe, unless there
is no data available to send.  An endpoint MAY send up to two full-
sized datagrams containing ack-eliciting packets, to avoid an
expensive consecutive PTO expiration due to a single lost datagram or
transmit data from multiple packet number spaces.  All probe packets
sent on a PTO MUST be ack-eliciting.
Paragraph (version A):
When the PTO timer expires, and there is new or previously sent
unacknowledged data, it MUST be sent.
Paragraph (version B):
When the PTO timer expires, and there is new or previously sent
unacknowledged data, it MUST be sent.  A probe packet SHOULD carry
new data when possible.  A probe packet MAY carry retransmitted
unacknowledged data when new data is unavailable, when flow control
does not permit new data to be sent, or to opportunistically reduce
loss recovery delay.  Implementations MAY use alternative strategies
for determining the content of probe packets, including sending new
or retransmitted data based on the application's priorities.
Paragraph (version A):
Probe packets sent on a PTO MUST be ack-eliciting.  A probe packet
SHOULD carry new data when possible.  A probe packet MAY carry
retransmitted unacknowledged data when new data is unavailable, when
flow control does not permit new data to be sent, or to
opportunistically reduce loss recovery delay.  Implementations MAY
use alternative strategies for determining the content of probe
packets, including sending new or retransmitted data based on the
application's priorities.