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

Zero-Lenght Connection ID Negotiation #70

Open
backkem opened this issue May 6, 2024 · 0 comments
Open

Zero-Lenght Connection ID Negotiation #70

backkem opened this issue May 6, 2024 · 0 comments

Comments

@backkem
Copy link

backkem commented May 6, 2024

The Quic RFC says:

7.2. Negotiating Connection IDs
When an Initial packet is sent by a client that has not previously received an Initial or Retry packet from the server, the client populates the Destination Connection ID field with an unpredictable value. This Destination Connection ID MUST be at least 8 bytes in length. Until a packet is received from the server, the client MUST use the same Destination Connection ID value on all packets in this connection.

Passing an EmptyQuicConnectionId() to the QuicConnection constructor currently causes Quiche to use a zero-length Destination Connection ID from the first packet being sent. This results in the connection being dropped by implementations that implement the above rule strictly, such as quic-go; quic-go ticket for reference: quic-go/quic-go#4465.

If complying to this is deemed the responsibility of the library user, it may be worth mentioning this in the QuicConnection constructor comments. If complying to this is considered the responsibility of the library itself, it may be worth automatically generating a random Destination Connection ID until one is received from the server (if none was provided by the library user).

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

No branches or pull requests

1 participant