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: Implement connection upgrade protocol for NAT hole punching using Relays #1013

Closed
aarshkshah1992 opened this issue Nov 4, 2020 · 1 comment
Assignees

Comments

@aarshkshah1992
Copy link
Contributor

aarshkshah1992 commented Nov 4, 2020

Both QUIC and TCP hole-punching need a co-ordination server to ensure that both peers attempt the hole punch at roughly the same time.
WebRTC also needs a signalling server to co-ordinate SDP and share the candidate address list for ICE.
We have a spec at libp2p/specs#173 to use Circuit-Relays for co-ordinating hole punching.
We can also use the same idea for signaling in the WebRTC transport implementation.

Edit: As flagged by @aschmahmann AND @jacobheun , we do need to consider limited bandwidth allocated by relays to peers after we get hole punching in as they shouldn't need relays for data transfer anymore.

@aarshkshah1992 aarshkshah1992 self-assigned this Nov 4, 2020
@aarshkshah1992 aarshkshah1992 changed the title Implement connection upgrade protocol for NAT hole punching using Relays NAT traversal: Implement connection upgrade protocol for NAT hole punching using Relays Nov 5, 2020
@aarshkshah1992
Copy link
Contributor Author

This is now being tracked as part of #1039.

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

1 participant