Subject: [quicwg/base-drafts] Recovery Editorial Nits (#2667)

From: ianswett <[email-masked]>
Date: Fri, 03 May 2019 18:34:02 -0700

>From a full read en route to Prague.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2667

-- Commit Summary --

  * Recovery Editorial Nits

-- File Changes --

    M draft-ietf-quic-recovery.md (35)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2667.patch
https://github.com/quicwg/base-drafts/pull/2667.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667

---

From: ianswett <[email-masked]>
Date: Fri, 03 May 2019 18:55:50 -0700

@ianswett pushed 1 commit.

963546a12d1d8905d524cdf44b1b69ed84b51ecf  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/e5f3dad8902debd09ed0ba651c70cad51adcd426..963546a12d1d8905d524cdf44b1b69ed84b51ecf

---

From: ianswett <[email-masked]>
Date: Fri, 03 May 2019 18:57:22 -0700

e47148d330bead08889a7a475a44e0fe22caa17a  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/963546a12d1d8905d524cdf44b1b69ed84b51ecf..e47148d330bead08889a7a475a44e0fe22caa17a

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 06 May 2019 16:39:35 -0700

janaiyengar commented on this pull request.

a few comments

> @@ -118,8 +118,8 @@ ACK-only:
 In-flight:
 
 : Packets are considered in-flight when they have been sent
-  and neither acknowledged nor declared lost, and they are not
-  ACK-only.
+  and neither acknowledged nor declared lost nor abandoned due
+  to keys being discarded, and they are not ACK-only.

suggestion: "Packets are considered in-flight when they have been sent and are not ACK-only, and they are not acknowledged, declared lost, or abandoned along with old keys."

> @@ -214,6 +214,13 @@ Most TCP mechanisms implicitly attempt to infer transmission ordering based on
 TCP sequence numbers - a non-trivial task, especially when TCP timestamps are
 not available.
 
+### Clearer end to a loss epoch

```suggestion
### Clearer Loss Epoch
```

> @@ -214,6 +214,13 @@ Most TCP mechanisms implicitly attempt to infer transmission ordering based on
 TCP sequence numbers - a non-trivial task, especially when TCP timestamps are
 not available.
 
+### Clearer end to a loss epoch
+
+QUIC may reduce cwnd several times on successive losses whereas TCP will keep

s/cwnd/congestion window

Also, this doesn't match the title of this section. I would not talk about the cwnd reduction here, instead focus on what a loss epoch is -- that no congestion window action should occur more than once per roundtrip time, since a controller only sees the response to any action it takes about a roundtrip time later. TCP and QUIC use packet numbers to figure out when this roundtrip ends, but QUIC does it more accurately than TCP, especially when multiple losses occur within the same roundtrip time.

> @@ -469,15 +476,16 @@ as TCP-NCR {{?RFC4653}}, to improve QUIC's reordering resilience.
 
 ### Time Threshold {#time-threshold}
 
-Once a later packet has been acknowledged, an endpoint SHOULD declare an earlier
-packet lost if it was sent a threshold amount of time in the past. The time
-threshold is computed as kTimeThreshold * max(SRTT, latest_RTT).
+Once a later packet has been acknowledged in the same packet number space, an

```suggestion
Once a later packet within the same packet number space has been acknowledged, an
```

> @@ -469,15 +476,16 @@ as TCP-NCR {{?RFC4653}}, to improve QUIC's reordering resilience.
 
 ### Time Threshold {#time-threshold}
 
-Once a later packet has been acknowledged, an endpoint SHOULD declare an earlier
-packet lost if it was sent a threshold amount of time in the past. The time
-threshold is computed as kTimeThreshold * max(SRTT, latest_RTT).
+Once a later packet has been acknowledged in the same packet number space, an
+endpoint SHOULD declare an earlier packet lost if it was sent a threshold amount
+of time in the past. To avoid declaring packets as lost too early, the time

```suggestion
of time in the past. To avoid declaring packets as lost too early, this time
```

> @@ -915,7 +919,7 @@ It is expected that implementations will be able to access this information by
 packet number and crypto context and store the per-packet fields
 ({{sent-packets-fields}}) for loss recovery and congestion control.
 
-After a packet is declared lost, it SHOULD be tracked for an amount of time
+After a packet is declared lost, it could be tracked for an amount of time

```suggestion
After a packet is declared lost, the endpoint can track it for an amount of time
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667#pullrequestreview-234246917

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 09:35:41 -0700

afa55fcee0ed44c1834b88556cd61d9d8213794c  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/e47148d330bead08889a7a475a44e0fe22caa17a..afa55fcee0ed44c1834b88556cd61d9d8213794c

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 09:36:59 -0700

6ac0a31c4577a55714ac346bedb0746585178a12  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/afa55fcee0ed44c1834b88556cd61d9d8213794c..6ac0a31c4577a55714ac346bedb0746585178a12

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 11:46:28 -0700

ianswett commented on this pull request.

Thanks, PTAL.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667#discussion_r281779896

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 11:48:24 -0700

93ca3e87e3105bc48869274d1aff59a7a9a67f3f  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/6ac0a31c4577a55714ac346bedb0746585178a12..93ca3e87e3105bc48869274d1aff59a7a9a67f3f

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 18:49:44 +0000 (UTC)

c8d0a82eb7e1abb9e19f59edd14235cf8c69b12f  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/93ca3e87e3105bc48869274d1aff59a7a9a67f3f..c8d0a82eb7e1abb9e19f59edd14235cf8c69b12f

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 11:50:20 -0700

Thanks Jana, suggestions taken and "Clearer Loss Epoch" rewritten.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667#issuecomment-490210584

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 07 May 2019 15:00:13 -0700

> @@ -214,6 +214,15 @@ Most TCP mechanisms implicitly attempt to infer transmission ordering based on
 
+### Clearer Loss Epoch
+
+QUIC ends a loss epoch when a packet sent after loss is declared is
+acknowledged. TCP waits for the gap in the sequence number space to be filled,
+and so if a segment is lost multiple times in a row, the loss epoch does not

```suggestion
and so if a segment is lost multiple times in a row, the loss epoch may not
```

> @@ -214,6 +214,15 @@ Most TCP mechanisms implicitly attempt to infer transmission ordering based on
 
+### Clearer Loss Epoch
+
+QUIC ends a loss epoch when a packet sent after loss is declared is
+acknowledged. TCP waits for the gap in the sequence number space to be filled,
+and so if a segment is lost multiple times in a row, the loss epoch does not
+end. Because both reduce CWND only once per epoch,  QUIC may reduce

```suggestion
end for several round trips. Because both reduce CWND only once per epoch,  QUIC will reduce its
```

> @@ -214,6 +214,15 @@ Most TCP mechanisms implicitly attempt to infer transmission ordering based on
 
+### Clearer Loss Epoch
+
+QUIC ends a loss epoch when a packet sent after loss is declared is
+acknowledged. TCP waits for the gap in the sequence number space to be filled,
+and so if a segment is lost multiple times in a row, the loss epoch does not
+end. Because both reduce CWND only once per epoch,  QUIC may reduce
+congestion window multiple times in the same circumstances TCP only reduces

```suggestion
congestion window correctly once for every round trip that experiences loss, while TCP may only reduce
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667#pullrequestreview-234781864

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 15:04:44 -0700

18614d06a659668717aa142280481e9fe2d448e4  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/c8d0a82eb7e1abb9e19f59edd14235cf8c69b12f..18614d06a659668717aa142280481e9fe2d448e4

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 15:05:30 -0700

aef254cd9843b73e4a9160ced6d31036f83e6f1c  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/18614d06a659668717aa142280481e9fe2d448e4..aef254cd9843b73e4a9160ced6d31036f83e6f1c

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 22:12:44 +0000 (UTC)

56f82fd7b24524bf2cfaa48b634a4e0a6b2ea997  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/aef254cd9843b73e4a9160ced6d31036f83e6f1c..56f82fd7b24524bf2cfaa48b634a4e0a6b2ea997

---

From: ianswett <[email-masked]>
Date: Tue, 07 May 2019 15:25:05 -0700

052a8b438dcb3620460779a9b803d4473e731da7  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/56f82fd7b24524bf2cfaa48b634a4e0a6b2ea997..052a8b438dcb3620460779a9b803d4473e731da7

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 07 May 2019 17:17:15 -0700

@janaiyengar pushed 1 commit.

a54a70c31b85feab40a1a933625ee8558705585c  nits

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667/files/052a8b438dcb3620460779a9b803d4473e731da7..a54a70c31b85feab40a1a933625ee8558705585c

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 07 May 2019 17:21:21 -0700

Merged #2667 into master.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2667#event-2325832948