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

NAT traversal: Use QUIC connection migration after we have direct a hole punched connection between peers #1016

Closed
aarshkshah1992 opened this issue Nov 5, 2020 · 2 comments

Comments

@aarshkshah1992
Copy link
Contributor

We have work underway to implement QUIC hole punching as part of #1015 .

QUIC introduces Connection Migration, which allows a connection to migrate (for example) from one interface to another. All streams (and other transport state except for congestion control) are transferred to the new path.
QUIC probes a new path before switching to it, to make sure to only migrate if the new path actually has connectivity.
Depending on the specifics of the relay protocol, we’d be able to first establish a connection via the relay, initiate the hole punching (via a separate control message to the server), and then initiate a connection migration. If the hole punching worked and a new path can be established, we migrate the connection. If, for any reason, the hole punching didn’t succeed and we can’t establish a new path, we continue using the relay to forward packets.

Alternative: Use the MASQUE protocol for relaying QUIC.

@aarshkshah1992 aarshkshah1992 self-assigned this Nov 5, 2020
@aarshkshah1992 aarshkshah1992 changed the title NAT traversal: Use QUIC connection migration after we a direct hole punched connection NAT traversal: Use QUIC connection migration after we a have direct hole punched connection between peers Nov 5, 2020
@aarshkshah1992
Copy link
Contributor Author

cc @marten-seemann

@aarshkshah1992 aarshkshah1992 changed the title NAT traversal: Use QUIC connection migration after we a have direct hole punched connection between peers NAT traversal: Use QUIC connection migration after we have direct hole punched connection between peers Nov 5, 2020
@aarshkshah1992 aarshkshah1992 changed the title NAT traversal: Use QUIC connection migration after we have direct hole punched connection between peers NAT traversal: Use QUIC connection migration after we have direct a hole punched connection between peers Nov 5, 2020
@aarshkshah1992 aarshkshah1992 removed their assignment Jan 21, 2021
@marten-seemann
Copy link
Contributor

DCUtR solves this in a protocol-agnostic fashion. While this would be a nice use case for QUIC connection migration, I'm not sure the benefits are worth the complexity (note that as connection migration is not guaranteed to succeed, we'd have to re-tag a connection form transient to non-transient).

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

2 participants