yggdrasil-network / yggdrasil-go

An experiment in scalable routing as an encrypted IPv6 overlay network
https://yggdrasil-network.github.io
Other
3.65k stars 246 forks source link

Generalize SOCKS peerings #1188

Open meshmayhem opened 1 month ago

meshmayhem commented 1 month ago

SOCKS peers only allow TCP and TLS, despite every protocol based on TCP and UDP being supported by SOCKS itself. Generalizing SOCKS peers to work with all TCP/UDP based protocols would open support to protocols like QUIC.

Related: #1087

neilalexander commented 1 month ago

We provide SOCKS and WebSocket support mostly out of convenience and because it's simple to do so, but we don't really believe that most peerings should be set up in this way. With that in mind, I don't want to complicate things too much.

Direct connectivity will always be better when possible and peering over other overlay networks (like Tor) will usually perform badly. Proxies can and often have surprising behaviours too, like around buffering and/or limits like how long a connection can live for before they are forcibly closed, so we don't usually encourage their use.