Skip to content

Round-robin or Hashing multiplexing for UDP traffic #477

@yuan-thomas

Description

@yuan-thomas

Describe the feature

Multiplexing UDP traffic, i.e. client fanning out a single UDP stream to multiple WebSocket streams and assemble them at the server side.

Describe the reason for such feature

Current design to transport UDP traffic (e.g. WireGuard) through TCP WebSocket experiences severe head-of-line blocking in busy or lossy network environments. Multiplexing the traffic, i.e. splitting one UDP stream into several transport sessions will significantly reduce the probability and duration of blocking, hence improve the performance. And UDP is natively unsequenced.

Describe alternatives you've considered

There have been discussions around HTTP/2 multiplexing and HTTP/3 QUIC for this tool. In addition to the fact there are heavy contraints when used behind reverse proxies, and that HTTP/3 QUIC is not yet supported in this tool, HTTP/2 multiplexing won't solve this problem particularly with payloads like WireGuard. Because the traffic is still seen as a single session, it will not have native multiplexing, therefore is still up to wstunnel to simulate it.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions