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 using hole punching #61

Open
5 of 7 tasks
geoffxy opened this issue Jan 26, 2018 · 4 comments
Open
5 of 7 tasks

NAT traversal using hole punching #61

geoffxy opened this issue Jan 26, 2018 · 4 comments
Assignees
Milestone

Comments

@geoffxy
Copy link
Member

geoffxy commented Jan 26, 2018

  • Build experimental hole punching proof-of-concept server + client just to see if we can exchange packets via UDP
  • Switch the agent's transport over to UDP
  • Build the tandem server to facilitate setting up sessions and for rendezvous
  • Modify the agent to communicate with the tandem server
  • Stretch goal: Allow set up of a session with multiple participants
  • Add interagent keep alive messages
  • Add a rendezvous <-> agent heartbeat message
@geoffxy geoffxy added this to the Milestone 3 milestone Jan 26, 2018
@rageandqq
Copy link
Member

@geoffxy Do we have to use UDP? I read through the abstract + intro of the paper you linked in Slack. It seems that although the % of networks that allow hole punching through TCP is lower, it is still possible. TCP guarantees reliability so we won't have to worry too much about network issues afterwards.

@geoffxy
Copy link
Member Author

geoffxy commented Jan 28, 2018

We'd need to test out TCP hole punching to see how reliable it is. It seems like UDP hole punching is what works most frequently, which would be more useful to us in establishing the connections. Though if we can get TCP hole punching working reliably it would probably be less work on the agent's side in terms of not having to switch the transport and not having to think too much about message size.

From this, it looks like UDP's reliability isn't that bad though. http://openmymind.net/How-Unreliable-Is-UDP/ The CRDT should be resilient to reordering. The only problem will be inconsistencies due to lost messages.

@rageandqq
Copy link
Member

@typeintandem/lightly I think we can close this and move the keep-alive messages to a non-launch blocking issue.

@rageandqq
Copy link
Member

rageandqq commented Mar 15, 2018

Moving everything in here over to Milestone 5 for housekeeping, closing down Milestone 3.

@rageandqq rageandqq modified the milestones: Milestone 3, Milestone 5 Mar 15, 2018
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