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

maximum number of paths an endpoint should open #221

Closed
kazuho opened this issue Jun 16, 2023 · 4 comments · Fixed by #231
Closed

maximum number of paths an endpoint should open #221

kazuho opened this issue Jun 16, 2023 · 4 comments · Fixed by #231

Comments

@kazuho
Copy link
Member

kazuho commented Jun 16, 2023

At the moment, we state in section 1 that

If the 4-tuple changes without the use of a new connection ID (e.g. due to a NAT rebinding), this is considered as a migration event.

and in section 3 that

The transport parameter "active_connection_id_limit" [QUIC-TRANSPORT] limits the number of usable Connection IDs, and also limits the number of concurrent paths.

While each statement is true, they are misleading in conjunction.

The problem here is that when an endpoint opens paths as many as "active_connection_id_limit", all CIDs will be use. That means that when an unintentional migration (e.g., NAT rebinding) occurs, the peer cannot respond to the migration event. This is because RFC 9000 section 9.5 states that endpoints MUST NOT reuse a connection ID when sending from more than one local address and MUST NOT reuse a connection ID when sending to more than one destination address.

As a path forward, I think we should at least warn developers not to try to use paths as many as "active_connection_id_limit."

@kazuho kazuho changed the title maximum number paths an endpoint should open maximum number of paths an endpoint should open Jun 16, 2023
@kazuho
Copy link
Member Author

kazuho commented Jun 29, 2023

Filed PR #231 that fixes the issue without adding new mechanism.

@mirjak
Copy link
Collaborator

mirjak commented Jun 30, 2023

I commented in the PR. What's happens in RFC9000 if a NAT binding occurs and there is no new available CID? You have to close the path? Maybe that's also something to discuss.

@kazuho
Copy link
Member Author

kazuho commented Jun 30, 2023

@mirjak Thank you for your comments. That topic is covered correctly by RFC 9000 already (please see my comments on the PR).

@mirjak
Copy link
Collaborator

mirjak commented Jun 30, 2023

Thanks for the update!

I guess the other question here is if we want to further discuss, what to do if a migration events happens and no CID is available. I think with multipath if you still have an active path, you should probably send a PATH_ABANDON frame for the old CID. This also related to PR #198 and issue #188, however, this might need further discussion.

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

Successfully merging a pull request may close this issue.

2 participants