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
Conversation
What if the Intial packet with token needs to be sent again because of suspected packet loss? |
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? |
draft-ietf-quic-transport.md
Outdated
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
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? |
draft-ietf-quic-transport.md
Outdated
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 |
There was a problem hiding this comment.
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."
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. |
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. |
Closes #1649.