"For most WebRTC applications to function a server is required for relaying the traffic between peers, since a direct socket is often not possible between the clients (unless they reside on the same local network). <...>"
https://medium.com/the-making-of-whereby/what-kind-of-turn-s... fippo pulled the stats and saw 17%
This also depends on your clients network. You can determine your NAT mapping type[0] and now ahead of time if you need a TURN server.
To understand NAT behaviors more check out [1]
[0] https://github.com/pion/stun/tree/master/cmd/stun-nat-behavi...
[1] https://webrtcforthecurious.com/docs/03-connecting/#nat-mapp...
Once this NAT thing has been done by both parts, and the actual communication has started directly P2P, STUN is not needed any more.
You send outgoing packets simultaneously from both sides. Causing both sides to add nat translation entry’s to their nat tables. When the packets arrive both sides already have nat translation entries and the packets go right through the nat.
From the network point of view it looks the same as two hosts starting an outgoing TCP connection through nat - if that works then hole punching should work too.
Some are trickier than others, as there are 2 IPs and 2 ports in a packet (at any point), and it can be hard to match all of them for the stricter devices, esp. on NATs that do source port randomization.
Those are called "middleboxes" (IIRC) and they're unfortunately somewhat pervasive.
I know, but what I mean is that "true P2P" on our current internet architecture is not possible, you always need the help of a third party
I think the question of what's "pure" p2p is somewhat academic. If your app uses DNS, is it p2p, isn't DNS just a distributed p2p database? Does p2p require that every aspect of your app right down to discovery is distributed among nodes running your app? Is it cheating to use an existing DHT? etc.
If you implement p2p video streaming chances are no company will want to touch it with a ten foot pole.
And for some recent examples : what about Popcorn Time ? Or PeerTube ?
EDIT : Oh, I guess that most of those are technically not "streaming", but "watching while downloading" like YouTube or FTP+VLC ?
https://en.wikipedia.org/wiki/VirnetX
> Separately, in December 2014, Microsoft and VirnetX settled patent disputes over Skype technology for $23 million.