Subject: [quicwg/base-drafts] Recovery: exit initial slow start on RTT increase (#2728)

From: Christian Huitema <[email-masked]>
Date: Mon, 20 May 2019 09:23:07 -0700

The current recovery spec says *7.2. 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 anytime 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._ 

That's fine, but it is often advisable to exit the initial slow start before observing the first loss. Very often, the default behavior results in widely overshooting the "fair" window, leading to not just one loss but rather a series of losses. For example, implementations could monitor the evolution of the RTT during initial slow start, and exit slow start as soon that the measured RTT exits RTTMin + some margin -- maybe the min 1/8th of RTT and 10 milliseconds, or 1ms 1/8th of RTTMin was too small. 

-- 
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/issues/2728

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 May 2019 00:29:12 -0700

This really seems to be stepping into the realm of designing a congestion control algorithm.

-- 
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/issues/2728#issuecomment-494273545

---

From: Lars Eggert <[email-masked]>
Date: Tue, 21 May 2019 15:07:51 -0700

What @martinthomson said. For example, it's unclear whether leaving slow-start due to an RTT spike doesn't lead to situations where you're then stuck in congestion avoidance for a looong 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/issues/2728#issuecomment-494577091

---

From: mirjak <[email-masked]>
Date: Wed, 22 May 2019 01:40:21 -0700

I guess you don't want write in the spec that slow start couldn't be left earlier in order to allow experimentation. But I would say that is not the intention of the current text and it should be fine as is.

-- 
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/issues/2728#issuecomment-494710215

---

From: ianswett <[email-masked]>
Date: Wed, 22 May 2019 01:48:26 -0700

The TCP Cubic RFC has a section on slow start that says you can do standard slowstart, limited slowstart, or hystart: https://tools.ietf.org/html/rfc8312#section-4.8

We could add more text along those lines, but I'm not sure it's necessary?  Also, hystart is not in any RFC, from what I can find.

-- 
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/issues/2728#issuecomment-494712954

---

From: Mark Nottingham <[email-masked]>
Date: Thu, 23 May 2019 02:04:17 -0700

Out of scope.

-- 
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/issues/2728#issuecomment-495132357

---

From: Mark Nottingham <[email-masked]>
Date: Thu, 23 May 2019 02:04:18 -0700

Closed #2728.

-- 
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/issues/2728#event-2361740428