Subject: [quicwg/base-drafts] Make congestion control more self-contained (#3463)

From: ianswett <[email-masked]>
Date: Sat, 15 Feb 2020 12:28:44 -0800

Clarifies a few points and moves the initial window recommendation from the pseudocode to the text.  I could take this a bit farther, but I&#39;d like suggestions on what&#39;s currently missing in this PR.

Fixes #3088
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Make congestion control more self-contained

-- File Changes --

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

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3463.patch
https://github.com/quicwg/base-drafts/pull/3463.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/3463

---

From: martinduke <[email-masked]>
Date: Wed, 19 Feb 2020 12:22:15 -0800

martinduke approved this pull request.

> @@ -661,19 +662,27 @@ receives packets with the Congestion Experienced codepoint.
 
 ## Slow Start
 
-QUIC begins every connection in slow start and exits slow start upon loss or
-upon increase in the ECN-CE counter. QUIC re-enters slow start any time the
-congestion window is less than ssthresh, which only occurs after persistent
-congestion is declared. While in slow start, QUIC increases the congestion
-window by the number of bytes acknowledged when each acknowledgment is
-processed.
+QUIC begins every connection in slow start with the congestion window set to
+an initial value.  The RECOMMENDED initial value is the minimum of
+10 * max_datagram_size and max(2 * max_datagram_size, 14720)).  This follows
+the analysis and recommendations in {{?RFC6928}}, increasing the byte limit to

The justification is repeated in Appendix B.1. I like it better here, but maybe make B.1 more concise and just point to here?

-- 
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/3463#pullrequestreview-361397234

---

From: ianswett <[email-masked]>
Date: Wed, 19 Feb 2020 12:32:05 -0800

@ianswett pushed 1 commit.

7660a51226fe6ba10b0793a88466954b0210e580  Separate out initial and min congestion window

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3463/files/275ab8038214c051d9e767d43c08a2f9b3f042bd..7660a51226fe6ba10b0793a88466954b0210e580

---

From: ianswett <[email-masked]>
Date: Wed, 19 Feb 2020 12:32:36 -0800

ianswett commented on this pull request.

 ## Slow Start

SG, I made B.1 more consise and gave this and the min CWND their own sub-section.

-- 
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/3463#discussion_r381527501

---

From: martinduke <[email-masked]>
Date: Wed, 19 Feb 2020 12:50:47 -0800

LGTM

-- 
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/3463#issuecomment-588452713

---

From: Martin Thomson <[email-masked]>
Date: Tue, 25 Feb 2020 15:53:50 -0800

martinthomson approved this pull request.

> @@ -659,21 +660,37 @@ treats a Congestion Experienced(CE) codepoint in the IP header as a signal of
 congestion. This document specifies an endpoint's response when its peer
 receives packets with the Congestion Experienced codepoint.
 
+## Initial and Minimum Congestion Window {#initial-cwnd}
+
+QUIC begins every connection in slow start with the congestion window set to
+an initial value.  The RECOMMENDED initial value is the minimum of
+10 * max_datagram_size and max(2 * max_datagram_size, 14720)).  This follows

Endpoints SHOULD use an initial congestion window of 10 times the maximum datagram size (max_datagram_size), limited to the larger of 14720 or twice the maximum datagram size.

> @@ -1257,10 +1274,7 @@ and common practice.
 kInitialWindow:
 : Default limit on the initial amount of data in flight, in bytes.
   The RECOMMENDED value is the minimum of 10 * max_datagram_size and

use min(10 * max_datagram_size, max(2 * max_datagram_size, 14720)))

-- 
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/3463#pullrequestreview-364528679

---

From: ianswett <[email-masked]>
Date: Wed, 26 Feb 2020 19:43:58 -0800

4fc37067f5cb3d62b59b3bd48fac75d5c09a4b36  MT's comments and minimize text in the appendix

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3463/files/7660a51226fe6ba10b0793a88466954b0210e580..4fc37067f5cb3d62b59b3bd48fac75d5c09a4b36

---

From: ianswett <[email-masked]>
Date: Wed, 26 Feb 2020 19:44:58 -0800

0f2d4bff92a79bf4a385ff5992c7d6d403cbdd4f  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/3463/files/4fc37067f5cb3d62b59b3bd48fac75d5c09a4b36..0f2d4bff92a79bf4a385ff5992c7d6d403cbdd4f

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 27 Feb 2020 17:13:03 -0800

janaiyengar approved this pull request.

Looks good! Thanks!

> @@ -635,7 +635,8 @@ sooner, as soon as handshake keys are available (see Section 4.10.1 of
 
 # Congestion Control {#congestion-control}
 
-This document specifies a Reno congestion controller for QUIC {{?RFC6582}}.
+This document specifies a congestion controller for QUIC similar to

```suggestion
This document specifies a congestion controller for QUIC based on
```

-- 
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/3463#pullrequestreview-366105262

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 27 Feb 2020 17:13:26 -0800

Merged #3463 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/3463#event-3080087179