Subject: [quicwg/base-drafts] update kInitialRtt to 333ms, use that constant (#3823)

From: Kazuho Oku <[email-masked]>
Date: Sun, 05 Jul 2020 18:46:42 -0700

In #3525, we changed the definition of initial PTO from 2x initial RTT to 3x, and therefore initial RTT had to be changed from 500ms to 333ms so that the initial PTO remains at the same value (1 second).

Unfortunately, the PR introduced a new variable called initial_rtt, and left kInitialRtt unmodified.

This PR fixes the editorial issue.

Closes #3822.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * update kInitialRtt to 333ms, use that constant

-- File Changes --

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

-- Patch Links --

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

---

From: Martin Thomson <[email-masked]>
Date: Sun, 05 Jul 2020 21:18:10 -0700

@martinthomson approved this pull request.

-- 
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/3823#pullrequestreview-442765007

---

From: Nick Banks <[email-masked]>
Date: Mon, 06 Jul 2020 07:21:31 -0700

@nibanks approved this pull request.

-- 
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/3823#pullrequestreview-443120789

---

From: Kazu Yamamoto <[email-masked]>
Date: Sun, 12 Jul 2020 19:42:47 -0700

It is not necessary to resolve the following by this PR. But the clause of `if (is first RTT sample):`  in `UpdateRtt` is necessary? I think that it should be removed because of Initialization.

-- 
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/3823#issuecomment-657328640

---

From: Kazuho Oku <[email-masked]>
Date: Sun, 12 Jul 2020 20:16:20 -0700

@kazu-yamamoto It is necessary, as the RTT sample is applied differently. The first sample *overwrites* the initial values, while the consecutive samples are applied to improve the moving average.

-- 
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/3823#issuecomment-657336432

---

From: Kazu Yamamoto <[email-masked]>
Date: Sun, 12 Jul 2020 22:20:59 -0700

If the first sample overwrites the initial value, I think that the initial value is meaningless. 500ms vs 333ms does not matter, I guess. But I admit that `min_rtt` should be overwritten because the initial value is meaningless.

-- 
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/3823#issuecomment-657364446

---

From: Kazu Yamamoto <[email-masked]>
Date: Mon, 13 Jul 2020 17:55:58 -0700

It seems to me that QUIC pseudo is based on RFC 6298:
1. Initialize RTO
2. Overwite RTO by the first sample
3. Calucate RTO after that

This algorithm for TCP makes sense to me because this is for RTO. The initial value is used as timeout. 

However, for the PTO approach of QUIC, the second step does not make sense to me. If the initial value is overwritten, the value is not used at all.

Am I misunderstanding something?

-- 
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/3823#issuecomment-657904430

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 13 Jul 2020 18:21:47 -0700

> If the first sample overwrites the initial value, I think that the initial value is meaningless. 500ms vs 333ms does not matter, I guess. 

Please refer to the description of #3525 for using 333ms instead of 500ms.

-- 
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/3823#issuecomment-657911352

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 13 Jul 2020 18:51:47 -0700

@janaiyengar approved this pull request.

Good catch -- Thanks for fixing this, @kazuho.

-- 
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/3823#pullrequestreview-447729302

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 13 Jul 2020 18:52:02 -0700

Merged #3823 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/3823#event-3542083763

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 13 Jul 2020 18:53:58 -0700

@kazu-yamamoto : The initial value is used for seeding the PTO for the first handshake packets, before any RTT sample is received. That is still necessary. Does that make sense?

-- 
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/3823#issuecomment-657919634

---

From: Kazu Yamamoto <[email-masked]>
Date: Mon, 13 Jul 2020 19:02:21 -0700

@janaiyengar @kazuho OK. I understand that the initial value is used to calculate PTO. Thanks.

-- 
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/3823#issuecomment-657921824