Skip to content

Commit c174c8a

Browse files
authored
Merge pull request #267 from quicwg/mirjak-patch-33
Use terms consistently
2 parents 75804fa + 4e340a7 commit c174c8a

File tree

1 file changed

+42
-41
lines changed

1 file changed

+42
-41
lines changed

draft-ietf-quic-ack-frequency.md

+42-41
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ min_ack_delay (0xff04de1b):
175175
: A variable-length integer representing the minimum amount of time in
176176
microseconds by which the endpoint that is sending this value is able to
177177
delay an acknowledgment. This limit could be based on the receiver's clock
178-
or timer granularity. 'min_ack_delay' is used by the peer to avoid requesting
179-
too small a value in the Request Max Ack Delay field of the ACK_FREQUENCY
178+
or timer granularity. min_ack_delay is used by the peer to avoid requesting
179+
too small a value in the Requested Max Ack Delay field of the ACK_FREQUENCY
180180
frame.
181181

182182
An endpoint's min_ack_delay MUST NOT be greater than its max_ack_delay.
@@ -213,7 +213,7 @@ ACK_FREQUENCY Frame {
213213
Type (i) = 0xaf,
214214
Sequence Number (i),
215215
Ack-Eliciting Threshold (i),
216-
Request Max Ack Delay (i),
216+
Requested Max Ack Delay (i),
217217
Reordering Threshold (i),
218218
}
219219
~~~
@@ -240,16 +240,16 @@ Ack-Eliciting Threshold:
240240
endpoint sends an ACK frame for every other ack-eliciting packet, as specified in
241241
{{Section 13.2.2 of QUIC-TRANSPORT}}, which corresponds to a value of 1.
242242

243-
Request Max Ack Delay:
243+
Requested Max Ack Delay:
244244

245245
: A variable-length integer representing the value to which the endpoint
246-
requests the peer update its `max_ack_delay`
246+
requests the peer update its max_ack_delay
247247
({{Section 18.2 of QUIC-TRANSPORT}}). The value of this field is in
248-
microseconds, unlike the 'max_ack_delay' transport parameter, which is in
249-
milliseconds. Sending a value smaller than the `min_ack_delay` advertised
248+
microseconds, unlike the max_ack_delay transport parameter, which is in
249+
milliseconds. Sending a value smaller than the min_ack_delay advertised
250250
by the peer is invalid. Receipt of an invalid value MUST be treated as a
251251
connection error of type TRANSPORT_PARAMETER_ERROR. On receiving a valid value in
252-
this field, the endpoint MUST update its `max_ack_delay` to the value provided
252+
this field, the endpoint MUST update its max_ack_delay to the value provided
253253
by the peer.
254254

255255
Reordering Threshold:
@@ -305,14 +305,14 @@ IMMEDIATE_ACK Frame {
305305
Prior to receiving an ACK_FREQUENCY frame, endpoints send acknowledgments as
306306
specified in {{Section 13.2.1 of QUIC-TRANSPORT}}.
307307

308-
On receiving an ACK_FREQUENCY frame and updating its `max_ack_delay`
309-
and `Ack-Eliciting Threshold` values ({{ack-frequency-frame}}), the endpoint sends an
308+
On receiving an ACK_FREQUENCY frame and updating its max_ack_delay
309+
and Ack-Eliciting Threshold values ({{ack-frequency-frame}}), the endpoint sends an
310310
acknowledgment when one of the following conditions are met:
311311

312312
- Since the last acknowledgment was sent, the number of received ack-eliciting
313-
packets is greater than the `Ack-Eliciting Threshold`.
313+
packets is greater than the Ack-Eliciting Threshold.
314314

315-
- Since the last acknowledgment was sent, `max_ack_delay` amount of time has
315+
- Since the last acknowledgment was sent, max_ack_delay amount of time has
316316
passed.
317317

318318
{{out-of-order}}, {{congestion}}, and {{batch}} describe exceptions to this
@@ -334,14 +334,14 @@ send an acknowledgment immediately on receiving a reordered ack-eliciting
334334
packet. This extension modifies that behavior when an ACK_FREQUENCY frame with
335335
a Reordering Threshold value other than 1 has been received.
336336

337-
If the most recent ACK_FREQUENCY frame received from the peer has a `Reordering
338-
Threshold` value of 0, the endpoint SHOULD NOT send an immediate
337+
If the most recent ACK_FREQUENCY frame received from the peer has a Reordering
338+
Threshold value of 0, the endpoint SHOULD NOT send an immediate
339339
acknowledgment in response to packets received out of order, and instead
340-
rely on the peer's `Ack-Eliciting Threshold` and `max_ack_delay` thresholds
340+
rely on the peer's Ack-Eliciting Threshold and Requested Max Ack Delay
341341
for sending acknowledgments.
342342

343-
If the most recent ACK_FREQUENCY frame received from the peer has a `Reordering
344-
Threshold` value larger than 1, the endpoint tests the amount of reordering
343+
If the most recent ACK_FREQUENCY frame received from the peer has a Reordering
344+
Threshold value larger than 1, the endpoint tests the amount of reordering
345345
before deciding to send an acknowledgment. The specification uses the following
346346
definitions:
347347

@@ -363,7 +363,7 @@ An endpoint that receives an ACK_FREQUENCY frame with a non-zero Reordering
363363
Threshold value SHOULD send an immediate ACK when the gap
364364
between the smallest Unreported Missing packet and the Largest Unacked is greater
365365
than or equal to the Reordering Threshold value. Sending this additional ACK will
366-
reset the `max_ack_delay` timer and `Ack-Eliciting Threshold` counter (as any ACK
366+
reset the max_ack_delay timer and Ack-Eliciting Threshold counter (as any ACK
367367
would do).
368368

369369
See {{examples}} for examples explaining this behavior. See {{set-threshold}}
@@ -373,9 +373,9 @@ ACK_FREQUENCY frames.
373373
### Examples {#examples}
374374

375375
When the reordering threshold is 1, any time a packet is received
376-
and there is a missing packet, an immediate ACK is sent.
376+
and there is a missing packet, an immediate acknowledgement is sent.
377377

378-
If the reordering theshold is 3 and ACKs are only sent due to reordering:
378+
If the reordering theshold is 3 and acknowledgements are only sent due to reordering:
379379

380380
~~~
381381
Receive 1
@@ -387,7 +387,7 @@ If the reordering theshold is 3 and ACKs are only sent due to reordering:
387387
Receive 10 -> Send ACK because of 7
388388
~~~
389389

390-
If the reordering threshold is 5 and ACKs are only sent due to reordering:
390+
If the reordering threshold is 5 and acknowledgements are only sent due to reordering:
391391

392392
~~~
393393
Receive 1
@@ -403,7 +403,7 @@ If the reordering threshold is 5 and ACKs are only sent due to reordering:
403403

404404
To ensure timely loss detection, it is optimal to send a Reordering
405405
Threshold value of 1 less than the packet threshold used by the data sender for
406-
loss detection. If the threshold is smaller, an ACK frame is sent before the
406+
loss detection. If the threshold is smaller, an acknowledgement is (unnecessarily) sent before the
407407
packet can be declared lost based on the packet threshold. If the value is
408408
larger, it causes unnecessary delays. ({{Section 18.2 of QUIC-RECOVERY}})
409409
recommends a default packet threshold for loss detection of 3, equivalent to
@@ -429,34 +429,34 @@ in response, as stated in {{Section 13.2.2 of QUIC-TRANSPORT}}.
429429

430430
# Computation of Probe Timeout Period
431431

432-
On sending an update to the peer's `max_ack_delay`, an endpoint can use this new
432+
On sending an update to the peer's max_ack_delay, an endpoint can use this new
433433
value in later computations of its Probe Timeout (PTO) period; see {{Section 5.2.1
434434
of QUIC-RECOVERY}}.
435435

436436
Until the packet carrying the ACK_FREQUENCY frame is acknowledged, the endpoint
437-
MUST use the greater of the current `max_ack_delay` and the value that is in flight
437+
MUST use the greater of the current max_ack_delay and the value that is in flight
438438
when computing the PTO period. Doing so avoids spurious PTOs that can be caused by
439-
an update that decreases the peer's `max_ack_delay`.
439+
an update that decreases the peer's max_ack_delay.
440440

441441
While it is expected that endpoints will have only one ACK_FREQUENCY frame in
442442
flight at any given time, this extension does not prohibit having more than one
443-
in flight. When using `max_ack_delay` for PTO computations, endpoints MUST use
443+
in flight. When using max_ack_delay for PTO computations, endpoints MUST use
444444
the maximum of the current value and all those in flight.
445445

446446
When the number of in-flight ack-eliciting packets is larger than the
447447
ACK-Eliciting Threshold, an endpoint can expect that the peer will not need to
448-
wait for its `max_ack_delay` period before sending an acknowledgment. In such
449-
cases, the endpoint MAY therefore exclude the peer's 'max_ack_delay' from its PTO
448+
wait for its max_ack_delay period before sending an acknowledgment. In such
449+
cases, the endpoint MAY therefore exclude the peer's max_ack_delay from its PTO
450450
calculation. When Reordering Threshold is set to 0 and loss causes the peer to
451451
not receive enough packets to trigger an immediate acknowledgment, the receiver
452-
will wait 'max_ack_delay', increasing the chances of a premature PTO.
452+
will wait max_ack_delay, increasing the chances of a premature PTO.
453453
Therefore, if Reordering Threshold is set to 0, the PTO MUST be larger than the
454-
peer's 'max_ack_delay'.
454+
peer's max_ack_delay.
455455

456456
When sending PTO packets, one can include an IMMEDIATE_ACK frame to elicit an
457457
immediate acknowledgment. This avoids waiting the ack delay for
458458
acknowledgments of PTO packets, reducing tail latency and allowing the sender
459-
to exclude the peer's 'max_ack_delay' from subsequent PTO calculations.
459+
to exclude the peer's max_ack_delay from subsequent PTO calculations.
460460

461461
# Determining Acknowledgment Frequency {#implementation}
462462

@@ -476,19 +476,20 @@ To limit the consequences of reduced acknowledgment frequency, a sender
476476
can cause a receiver to send an acknowledgment at least once per round trip
477477
when there are ack-eliciting packets in flight.
478478

479-
A sender can accomplish this by setting the Request Max Ack
479+
A sender can accomplish this by setting the Requested Max Ack
480480
Delay value to no more than the estimated round trip time.
481481
The sender can also improve feedback and robustness to
482482
variation in the path RTT by setting the Ack-Eliciting Threshold
483483
to a value no larger than the current congestion window. Alternatively,
484484
a sender can accomplish this by sending an IMMEDIATE_ACK frame once each
485485
round trip time, although if the packet containing an IMMEDIATE_ACK is lost,
486-
detection of that loss will be delayed by the reordering threshold or requested
487-
max ack delay.
486+
detection of that loss will be delayed by the Reordering Threshold or Requested
487+
Max Ack Delay.
488488

489-
When setting the Request Max Ack Delay as a function of RTT, it is usually
490-
better to use the Smoothed RTT ({{Section 5.3 of QUIC-RECOVERY}}) or another
491-
estimate of the typical round trip time, but not Min RTT. This avoids eliciting an
489+
When setting the Requested Max Ack Delay as a function of the RTT, it is usually
490+
better to use the Smoothed RTT (smoothed_rtt) ({{Section 5.3 of QUIC-RECOVERY}}) or another
491+
estimate of the typical RTT, but not the minimum RTT (min_rtt)
492+
({{Section 5.2 of QUIC-RECOVERY}}). This avoids eliciting an
492493
unnecessarily high number of acknowledgments when min_rtt is much smaller than
493494
smoothed_rtt.
494495

@@ -497,7 +498,7 @@ connection and therefore might require sending frequent ACK_FREQUENCY frames to
497498
ensure optimal performance.
498499

499500
It is possible that the RTT is smaller than the receiver's timer granularity,
500-
as communicated via the 'min_ack_delay' transport parameter, preventing the
501+
as communicated via the min_ack_delay transport parameter, preventing the
501502
receiver from sending an acknowledgment every RTT in time unless packets are
502503
acknowledged immediately. In these cases, Reordering Threshold values other than 1
503504
can delay loss detection more than an RTT.
@@ -518,7 +519,7 @@ buffered to be sent, a sender can send an IMMEDIATE_ACK frame with the last data
518519
packet before an idle period to avoid waiting for the ack delay.
519520

520521
If there are no inflight packets, no acknowledgments will be received for at least
521-
a round trip when sending resumes. The Max Ack Delay and Ack-Eliciting Threshold
522+
a round trip when sending resumes. The max_ack_delay and Ack-Eliciting Threshold
522523
values used by the receiver can further delay acknowledgments. In this case, the
523524
sender can include an IMMEDIATE_ACK or ACK_FREQUENCY frame in the first
524525
Ack-Eliciting packet to avoid waiting for substantially more than a round trip
@@ -545,8 +546,8 @@ acknowledgment therefore delays this method of detecting losses.
545546
Reducing acknowledgment frequency reduces the number of RTT samples that a
546547
sender receives ({{Section 5 of QUIC-RECOVERY}}), making a sender's RTT estimate
547548
less responsive to changes in the path's RTT. As a result, any mechanisms that
548-
rely on an accurate RTT estimate, such as time-threshold loss detection ({{Section
549-
6.1.2 of QUIC-RECOVERY}}) or Probe Timeout ({{Section 6.2 of QUIC-RECOVERY}}),
549+
rely on an accurate RTT estimate, such as time-threshold-based loss detection ({{Section
550+
6.1.2 of QUIC-RECOVERY}}) or the Probe Timeout (PTO) ({{Section 6.2 of QUIC-RECOVERY}}),
550551
will be less responsive to changes in the path's RTT, resulting in either
551552
delayed or unnecessary packet transmissions.
552553

0 commit comments

Comments
 (0)