Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include a token on all Initial packets #1794

Merged
merged 5 commits into from Oct 2, 2018
Merged

Include a token on all Initial packets #1794

merged 5 commits into from Oct 2, 2018

Conversation

martinthomson
Copy link
Member

Closes #1649.

@mikkelfj
Copy link
Contributor

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).

@nibanks
Copy link
Member

nibanks commented Sep 25, 2018

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?

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought the Retry now must change the CID?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@martinthomson
Copy link
Member Author

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?

@martinthomson martinthomson changed the title Only include a token in the "first" Initial Include a token on all Initial packets Sep 25, 2018
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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."

@mikkelfj
Copy link
Contributor

mikkelfj commented Sep 27, 2018

How do 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.

@ianswett
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants