Skip to content

Commit c0f49a5

Browse files
authored
Update draft-ietf-quic-recovery.md
1 parent b17e18f commit c0f49a5

File tree

1 file changed

+34
-33
lines changed

1 file changed

+34
-33
lines changed

draft-ietf-quic-recovery.md

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,42 @@ alarm for TCP as well, and this document incorporates this advancement.
262262

263263
## Timer-based Detection
264264

265-
Timer-based loss detection implements the spirit of TCP's Tail Loss Probe
265+
Timer-based loss detection implements a handshake retransmission timer that
266+
is optimized for QUIC as well as the spirit of TCP's Tail Loss Probe
266267
and Retransmission Timeout mechanisms.
267268

269+
### Handshake Timeout
270+
271+
Handshake packets, which contain STREAM frames for stream 0, are critical to
272+
QUIC transport and crypto negotiation, so a separate alarm is used for them.
273+
274+
The initial handshake timeout SHOULD be set to twice the initial RTT.
275+
276+
At the beginning, there are no prior RTT samples within a connection.
277+
Resumed connections over the same network SHOULD use the previous
278+
connection's final smoothed RTT value as the resumed connection's initial RTT.
279+
280+
If no previous RTT is available, or if the network changes, the initial RTT
281+
SHOULD be set to 100ms.
282+
283+
When a handshake packet is sent, the sender SHOULD set an alarm for the
284+
handshake timeout period.
285+
286+
When the alarm fires, the sender MUST retransmit all unacknowledged handshake
287+
data, by calling RetransmitAllUnackedHandshakeData(). On each consecutive
288+
firing of the handshake alarm, the sender SHOULD double the handshake timeout
289+
and set an alarm for this period.
290+
291+
When an acknowledgement is received for a handshake packet, the new RTT is
292+
computed and the alarm SHOULD be set for twice the newly computed smoothed RTT.
293+
294+
Handshake data may be cancelled by handshake state transitions. In particular,
295+
all non-protected data SHOULD no longer be transmitted once packet protection
296+
is available.
297+
298+
(TODO: Work this section some more. Add text on client vs. server, and on
299+
stateless retry.)
300+
268301
### Tail Loss Probe {#tlp}
269302

270303
The algorithm described in this section is an adaptation of the Tail Loss Probe
@@ -365,38 +398,6 @@ A packet sent on an RTO alarm MUST NOT be blocked by the sender's congestion
365398
controller. A sender MUST however count these bytes as additional bytes in
366399
flight, since this packet adds network load without establishing packet loss.
367400

368-
369-
### Handshake Timeout
370-
371-
Handshake packets, which contain STREAM frames for stream 0, are critical to
372-
QUIC transport and crypto negotiation, so a separate alarm is used for them.
373-
374-
The initial handshake timeout SHOULD be set to twice the initial RTT.
375-
376-
At the beginning, there are no prior RTT samples within a connection.
377-
Resumed connections over the same network SHOULD use the previous
378-
connection's final smoothed RTT value as the resumed connection's initial RTT.
379-
380-
If no previous RTT is available, or if the network changes, the initial RTT
381-
SHOULD be set to 100ms.
382-
383-
When a handshake packet is sent, the sender SHOULD set an alarm for the
384-
handshake timeout period.
385-
386-
When the alarm fires, the sender MUST retransmit all unacknowledged handshake
387-
data. On each consecutive firing of the handshake alarm, the sender SHOULD
388-
double the handshake timeout and set an alarm for this period.
389-
390-
When an acknowledgement is received for a handshake packet, the new RTT is
391-
computed and the alarm SHOULD be set for twice the newly computed smoothed RTT.
392-
393-
Handshake data may be cancelled by handshake state transitions. In particular,
394-
all non-protected data SHOULD no longer be transmitted once packet protection
395-
is available.
396-
397-
(TODO: Work this section some more. Add text on client vs. server, and on
398-
stateless retry.)
399-
400401
## Generating Acknowledgements
401402

402403
QUIC SHOULD delay sending acknowledgements in response to packets,

0 commit comments

Comments
 (0)