pojntfx / weron

Overlay networks based on WebRTC.
GNU Affero General Public License v3.0
1.79k stars 57 forks source link

Use unordered datachannel in WebRTC #22

Open ccaapton opened 4 months ago

ccaapton commented 4 months ago

Hi, I noticed that weron is using the default datachannel configuration, which is ordered thus not suitable for lossy packet transmission.

Would you add more configuration, perhaps end user configurable, to allow unordered datachannel as the underlying transport?

NNdroid commented 3 months ago

I think this should not be feasible. First of all, IP data packets are usually sent in fragments under tun/tap. This will cause the MTU of the tunnel to be a reasonable value, otherwise communication cannot be carried out. This will not happen when using strong parity flow. The problem is, it can be viewed as streams, not packets.

ccaapton commented 3 months ago

Stream over stream is just another version of tcp over tcp, which is very problematic. The user should able able to choose a smaller mtu, or rely on tcp mss discovery mechanism.

And why do we need strong parity on the first place?

pojntfx commented 1 month ago

I'm definitely open to taking another look at this once the transition to an asynchronous RPC protocol is done (see https://github.com/pojntfx/panrpc), but with the current RPC system this would not be possible.