Mostly, though, what you are describing is the internet
* TURN handles protocol bridging (TCP <-> UDP)
* TURN is useful for privacy preservation.
* TURN handles NAT Traversal (unfortunate when it comes to this)
* TURN is used for security in some cases. It sits at the edge and clients create allocations
...only if ipv6 wasn't written by the very people profiting from NAT.
I’m so used to seeing both STUN and TURN together.
> TURN is considered an extension to the STUN. So, a typical TURN server would include a STUN server implementation by default.
You could do all of that with your own protocol, but...
Some NATs will include the remote IP in the "key" of the mapping, or even more restrictive approaches, meaning that STUN will have to fall back to other strategies and eventually give up and use TURN.
These days you'll also find that mDNS and other local broadcasts play a role, so that the internet can be avoided entirely for LAN peers.
when I wrote my other comment in my head TURN and STUN were practically synonymous, since I’ve never seen one without the other.
Much like TLS, both clients offer all the protocols, versions, and media encodings that they support so that they can find a common set that they can use together.
This is standard negotiation when establishing connections in WebRTC and it's obviously fingerprintable information.
Use of a TURN server does not imply hiding of negotiation details. The TURN RFC [1] does not mention anything related to media encodings or WebRTC negotiations at all.
Pedantic: Fibre and wireless do not fit this criteria, but I still agree with the spirit.
[1]: https://en.wikipedia.org/wiki/Universal_Plug_and_Play
[2]: https://en.wikipedia.org/wiki/Zero-configuration_networking
https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protoc...