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: Support for WebRTC transport in libp2p #1018

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

NAT traversal: Support for WebRTC transport in libp2p #1018

aarshkshah1992 opened this issue Nov 5, 2020 · 5 comments
Assignees

Comments

@aarshkshah1992
Copy link
Contributor

aarshkshah1992 commented Nov 5, 2020

Please see #188 for some historical discussions and motivations for this issue.

  • A WebRTC transport will enable better connectivity between js-libp2p and go- libp2p peers as the ONLY way to accomplish that right now is through websockets.
  • WebRTC also has some NAT traversal mechanisms built in (albeit, not as strong as what we can accomplish ourselves with QUIC hole punching)
  • We need to review https://github.com/mtojek/go-libp2p-webrtc-star and take it to completion.
  • We will have to change the use of “centralized” STAR signaling servers in the above to use relays instead for signalling. It will be something similar to relay/DCUtR: Add Direct Connection Upgrade through Relay protocol specs#173.

Some design notes on using relays instead of STAR signalling servers can be found at:
libp2p/js-libp2p#385 (comment)

@aarshkshah1992
Copy link
Contributor Author

cc @jacobheun

Please flesh out more details here if you feel something is missing at this stage of the discussion.

@backkem
Copy link

backkem commented Nov 5, 2020

Can you elaborate on the differences between your quic and webrtc's hole punching? Is this documented somewhere?

@aarshkshah1992
Copy link
Contributor Author

aarshkshah1992 commented Nov 5, 2020

@backkem

IIUC, WebRTC's hole punching dosen't work well with five tuple NATs i.e. NATs that allow incoming UDP packets from a ip:port ONLY if they've sent an outbound UDP packet to that ip:port.

cc @willscott if you have more questions.

@aarshkshah1992
Copy link
Contributor Author

cc @yusefnapora for thoughts and comments.

@p-shahi
Copy link
Member

p-shahi commented Nov 8, 2022

closing in favor of libp2p/specs#412 and #1655

@p-shahi p-shahi closed this as completed Nov 8, 2022
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

3 participants