3 ms·
... how is STUN pure p2p ? you still need to have a STUN server somewhere no ?
by jcelerier 6y ago
... how is STUN pure p2p ? you still need to have a STUN server somewhere no ?
- bodegajed 6y agoYou can just use google stun servers they are free to use
- _joel 6y agoHere's a list of public STUN servers (non google too) https://www.voip-info.org/stun/ https://www.voip-info.org/stun/
- j1elo 6y agoSTUN is just for punching holes in your NAT router, and also discovering what is your public IP address. Both things will be needed for the other peer to know where to reach you. And the other way around. Once this NAT thing has been done by both parts, and the actual communication has started directly P2P, STUN is not needed any more.
- jcelerier 6y ago> STUN is just for punching holes in your NAT router, and also discovering what is your public IP address. 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
- bodegajed 6y agoIf we are still in the 90's that definition of "true p2p" would be: two computers with both having public IPs and transferring packets via TCP. But nowadays we are always behind NATs so we became less strict with the definition of what is true p2p
- the8472 6y agoThen bittorrent is transcendent p2p?
- BlueTemplar 6y agoIPv6 is slowly taking over, hopefully in the near future being behind a NAT will be considered abnormal (just like happened with Unicode, we're around 35% = "Unicode 2009", popularity-wise).
- noseratio 6y agoYou'd also need a TURN server if both peers are behind NAT without UPnP, which is very common. STUN alone wouldn't be enough.
- callesgg 6y agoThat is partially incorrect, STUN can punch a hole through even when both sides uses NAT in many cases. That is what I would classify as STUN’s main feature.
- rashkov 6y agoNote that parent said “ if both peers are behind NAT without UPnP”. As far as I know, there’s no way to punch holes / open ports automatically without UPnP.
- uuidgen 6y agoPunching holes doesn't work only when network devices in between are broken or are actively preventing it. 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.
- labawi 6y agoNot TCP. UDP - there are no connection in UDP, so the routers / firewalls don't really differentiate between a new connection and packets that happen to have the correct ip+port. 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.
- a1369209993 6y ago> when network devices in between are broken or are [maliciously] actively preventing it. Those are called "middleboxes" (IIRC) and they're unfortunately somewhat pervasive.
- fulafel 6y agoYour p2p nodes might not be behind NAT. In a lot of populations you can rely on everyone having working v6 for example. 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.