4 ms·
I really like the idea of having independent streams in a single connection. But for some applications I would like to have the ability to have unordered and op
by gmueckl 8y ago
I really like the idea of having independent streams in a single connection. But for some applications I would like to have the ability to have unordered and optionally unreliable datagram channels in the same conmection as well. I have my own networking library that does this based on UDP, but I would rather spend my times on other things than maintaining that.
- petronio 8y agoI believe SCTP would fill in for that use case. For server-server communications there shouldn't be a problem, but I recall there's issues with client support & firewall rules, and I don't know if that status on that has changed if you need that. I also recall there being SCTP over UDP, but you lose some features there.
- 90minuteAPI 8y agoSCTP over UDP is how WebRTC data channels get their configurable reliability and ordering.
- georgyo 8y agoI think the internet would have been a much better place if SCTP caught on 15 years ago. It solved so many problems way ahead of it's time. Ah well.
- gmueckl 8y agoI looked into SCTP a bit. It seems to have a few quirks that puzzle me. E.g. the number of streams can be limited by what the underlying OS or other endpoint is willing to support. Not sure if that is what I want. I need to read a lot more to fully understand it.
- est31 8y agoI've had a very similar question and asked it to the quinn authors. The response was that QUIC's way of creating/destroying channels is so lightweight that in order to get unordered-ness you can use ephemeral channels. As for unreliable-ness there is an extension to QUIC that isn't implemented yet. They then opened an issue after my inquiry: https://github.com/djc/quinn/issues/207 https://github.com/djc/quinn/issues/207
- ATsch 8y agoenet (http://enet.bespin.org http://enet.bespin.org) is pretty nice, but unfortunately it suffers from narrow adoption, lack of progress on things like ipv6 support and biggest of them all, a standardization or even documentation of the protocol at a byte level.