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

Transport parameter "original connection ID" if no retry #1855

Closed
huitema opened this issue Oct 12, 2018 · 5 comments
Closed

Transport parameter "original connection ID" if no retry #1855

huitema opened this issue Oct 12, 2018 · 5 comments

Comments

@huitema
Copy link
Contributor

huitema commented Oct 12, 2018

The transport spec says in section "6.6.1. Transport Parameter Definitions" that "A server MUST include the original_connection_id transport parameter if it sent a Retry packet". It does not say what is the expected behavior if the server did not send a retry packet. There are two possible interpretations:

  1. The client MUST ignore the original_connection_id parameter if it did not receive a retry packet; or,

  2. The client MAY send terminate the connection with a TRANSPORT_PARAMETER_ERROR if it receive this parameter but did not receive a retry packet.

What would be the preferred behavior?

@janaiyengar
Copy link
Contributor

Or a third way, which is my preferred way: the client MUST terminate the connection with a TRANSPORT_PARAMETER_ERROR if it receive this parameter but did not receive a retry packet.

@hardie
Copy link

hardie commented Oct 12, 2018 via email

@martinthomson
Copy link
Member

The point here is that a client will know whether it responded to a Retry. The server should also know, because it has a token in the Initial packet from the server (that it should be able to identify as being from a Retry packet that it sent).

With that in mind, even if the server receives multiple packets and only sends Retry in response to some of them, the transport parameters that the server sends will always be sent with very clear knowledge about what is being responded to.

BTW, I thought that I had answered this question:

If the client received and processed a Retry packet, it validates that the original_connection_id transport parameter is present and correct; otherwise, it validates that the transport parameter is absent. A client MUST treat a failed validation as a connection error of type TRANSPORT_PARAMETER_ERROR.

-- https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#packet-retry

@janaiyengar
Copy link
Contributor

Huh. @martinthomson: I thought so too, but I obviously seem to have missed reading the part saying "otherwise, it validates that the transport parameter is absent". I agree that this is addressed.

@janaiyengar
Copy link
Contributor

I'll close this issue, since it seems that the original issue is in fact addressed. Open again if you disagree or want to see something else done.

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

No branches or pull requests

5 participants