Subject: [quicwg/base-drafts] Only include a token in the "first" Initial (#1794)

From: Martin Thomson <[email-masked]>
Date: Mon, 24 Sep 2018 17:20:04 -0700

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

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

-- Commit Summary --

  * Only include a token in the "first" Initial

-- File Changes --

    M draft-ietf-quic-transport.md (13)

-- Patch Links --

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

---

From: MikkelFJ <[email-masked]>
Date: Mon, 24 Sep 2018 23:32:35 -0700

What if the Intial packet with token needs to be sent again because of suspected packet loss?
(There is a lot of new text in this area, so it could well be covered).

-- 
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/1794#issuecomment-424223180

---

From: Nick Banks <[email-masked]>
Date: Tue, 25 Sep 2018 06:51:41 -0700

I agree with @mikkelfj here. If the client's first Initial (with a token) is suspected to be lost and the contents retransmitted, the token should continue to be included, right? Additionally, is there **harm** in including the token in all client Initial packets?

-- 
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/1794#issuecomment-424351163

---

From: ianswett <[email-masked]>
Date: Tue, 25 Sep 2018 20:11:07 +0000 (UTC)

ianswett commented on this pull request.

> @@ -621,10 +621,19 @@ packet. It also sets the Token field to the token provided in the Retry. The
 client MUST NOT change the Source Connection ID because the server could include
 the connection ID as part of its token validation logic (see {{tokens}}).
 
+The Initial packet sent by the client in response to a Retry packet is subject
+to the same restrictions as the first Initial packet, with the exception of the
+value of the Destination Connection ID and Token fields, which are set as
+described here.  A client can either reuse the cryptographic handshake message
+or construct a new one at its discretion.  Any subsequent Initial packets from
+the client MUST use the same connection ID values, and MUST NOT include the

I thought the Retry now must change the CID?

-- 
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/1794#pullrequestreview-158723563

---

From: Martin Thomson <[email-masked]>
Date: Tue, 25 Sep 2018 15:42:28 -0700

Token on every Initial seemed wrong, but the more I think about it, the less reason I have for rejecting it.  Does anyone have a reason to remove the token?

-- 
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/1794#issuecomment-424526026

---

From: Martin Thomson <[email-masked]>
Date: Tue, 25 Sep 2018 15:45:30 -0700

@martinthomson pushed 1 commit.

2f216b2  Use the token always

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1794/files/5084586323f17f95ec29dee965b18c8a893045b1..2f216b2d6bf706610e2157ac56cba863db797bf2

---

From: Martin Thomson <[email-masked]>
Date: Wed, 26 Sep 2018 08:36:29 -0700

martinthomson commented on this pull request.

Yeah, I meant "same as the one from the Retry"  clarified.

-- 
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/1794#discussion_r220612731

---

From: Martin Thomson <[email-masked]>
Date: Wed, 26 Sep 2018 08:36:53 -0700

c921b42  Not clear which 'same' this meant.

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1794/files/2f216b2d6bf706610e2157ac56cba863db797bf2..c921b425065d330efad8c8d353d0f67f099a09a0

---

From: ianswett <[email-masked]>
Date: Wed, 26 Sep 2018 19:39:57 -0700

> @@ -621,10 +621,18 @@ packet. It also sets the Token field to the token provided in the Retry. The

How about putting the last sentence in this paragraph first, then saying "Aside from this, the Initial packet sent by the client is subject to the same restrictions as the first Initial packet."

-- 
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/1794#pullrequestreview-159266041

---

From: MikkelFJ <[email-masked]>
Date: Wed, 26 Sep 2018 23:41:13 -0700

How does packet numbers relate to this?

How about requiring initial packets to be retransmitted verbatim and perhaps only allow token in the packet number 0? An endpoint can either store the packet for retransmission or reproduce the same AEAD on retransmission using the same packet number.

-- 
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/1794#issuecomment-424976295

---

From: ianswett <[email-masked]>
Date: Thu, 27 Sep 2018 06:07:16 -0700

If you retransmit verbatim, then you can't tell if the original or the retransmission was received, so you lose the first RTT sample on the client side, which is unfortunate, since that's the first congestion control or recovery related info you get on the connection.

-- 
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/1794#issuecomment-425083546