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

Add logical connections to UDP RFC #828

Closed
gdamore opened this issue Oct 27, 2016 · 0 comments
Closed

Add logical connections to UDP RFC #828

gdamore opened this issue Oct 27, 2016 · 0 comments

Comments

@gdamore
Copy link
Contributor

gdamore commented Oct 27, 2016

The UDP RFC lacks support for logical connections, which means that there are SP protocols that cannot be used with it (any that require a backtrace, like REQ/REP), and that it cannot be used in device constructs.

We need the ability to create and manage logical connections. Furthermore, we need protocol support for keeping these active, to ensure that we tickle firewalls etc. that may use UDP state tracking to keep ports open or NAT mappings active. And like those, we need a way to detect an idle session and clean it up.

The answer is, unfortunately, that we have to build a stateful connection layer on top of UDP. Fortunately it doesn't need to provide most of the overhead of TCP -- we don't need reliable delivery, we don't need guarantees against reordering or message alteration, or duplication.

Much of the protocol can be done in a stateless/idempotent manner, using just four lower level message types:

  • DATA
  • REQUEST_CONNECTION
  • ACKNOWLEDGE_CONNECTION
  • ERROR

I've updated the RFC to deal with the particulars.

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

No branches or pull requests

1 participant