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

Unreliable sequenced delivery #68

Open
nxrighthere opened this issue May 27, 2019 · 2 comments
Open

Unreliable sequenced delivery #68

nxrighthere opened this issue May 27, 2019 · 2 comments
Labels
enhancement New feature or request

Comments

@nxrighthere
Copy link
Contributor

nxrighthere commented May 27, 2019

I was about to integrate the library into NetDynamics for tests, but unreliable sequenced message delivery is not supported unlike in other modern network transports. It solves a vector of design and gameplay problems in practice where a developer doesn't need a manual frame buffering and sequence tracking, but still needs a properly sequenced logic, so from my point of view this delivery type should be available.

@zpostfacto
Copy link
Contributor

What exactly are the proposed semantics? What constraints are placed on allowed delivery sequences with this type of message and ordinary unreliable and reliable messages?

@nxrighthere
Copy link
Contributor Author

nxrighthere commented May 27, 2019

What exactly are the proposed semantics?

A guarantee that no message with a higher sequence number will be delivered before a message with a lower sequence number, thus ensuring messages are delivered exactly in the order they are sent. Simply discard the lower sequence number message if a message with a higher sequence number has already been delivered.

What constraints are placed on allowed delivery sequences with this type of message and ordinary unreliable and reliable messages?

Kind of head-of-line blocking, but it can be solved by implementing the independently sequenced channels that are logically separated from each other (see SCTP or ENet). Channels not tied on any delivery type, delivery is specified per message basis, so channels reduce latency and ordering restrictions.

@nxrighthere nxrighthere changed the title Unreliable ordered delivery Unreliable sequenced delivery Sep 24, 2019
@zpostfacto zpostfacto added the enhancement New feature or request label Jan 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants