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

Connection ID on a version negotiation packet #295

Closed
martinthomson opened this issue Feb 13, 2017 · 3 comments
Closed

Connection ID on a version negotiation packet #295

martinthomson opened this issue Feb 13, 2017 · 3 comments
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@martinthomson
Copy link
Member

Given that we have opted to go with #119 universally, it might be reasonable to think that the server could make a proposal for the connection ID on a version negotiation packet. However, it probably isn't a good idea. Since version negotiation is stateless, there is less need to have stable routing for this packet. Echoing the connection ID gives the client better assurance that its initial packet was what generated the response.

@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -transport labels Feb 13, 2017
@martinthomson
Copy link
Member Author

Hmm, not sure if this is a duplicate of #244.

@igorlord
Copy link
Contributor

The first part ("should a version negotiation packet from the server -- a proposal to the client to change its version -- contain a Server-generated Connection ID?") is a new issue. On one hand, I agree with you that this seems a bit like a kludge. On the other hand, stable routing may actually be required by some systems.

Imagine a pop with a load balancer and a number of backends behind it. One may want to roll out a new experimental version of QUIC on a subset of backends. To do that, the system should ensure that the same server that send a version negotiation packet proposing a new QUIC protocol version actually receives packets using the new version (if the client accepts that new version). Our mechanism to make sure this happens is to encode the backend ID in the Server-proposed Connection ID.

The second part (proving that the sender of the version negotiation packet is on-path) is a dup of #244.

@MikeBishop
Copy link
Contributor

#361 purports to address this; please re-open or file a new issue if that's incorrect.

@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Apr 19, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

No branches or pull requests

4 participants