PDA

View Full Version : 2 passive peers connect over DHT (open port not needed/no advantage)?



postcd
02-14-2021, 01:35 PM
Hello,

when i
A) create private torrent
vs
B) create public torrent (DHT enabled)

and 1 active seeder + 2 leechers (passive = have not open port)
The two passive leechers will be unable to connect each other i am guessing.

But main question, if DHT will work, will they be able to connect and upload each to other? At which probability, rough percentage estimate?

Per what i have read (https://github.com/arvidn/libtorrent/issues/5981#issuecomment-779777975), the passives will interconnect only if all following is met:
1) torrent is open, not closed (which means DHT, PEX is enabled)
2) BT client has uTP support (uTP supports NAT traversal (https://en.wikipedia.org/wiki/NAT_traversal)/hole punching (https://en.wikipedia.org/wiki/Hole_punching_(networking)) which is what help interconnect), seems like possibly most client has such support
3) router on both sides has "transparent/p2p friendly" NAT (https://tools.ietf.org/html/rfc3489#section-5)

This article (https://www.bittorrent.org/beps/bep_0005.html) says "This is useful for peers behind a NAT that may not know their external port, and supporting uTP, they accept incoming connections on the same port as the DHT port."
This article (https://en.wikipedia.org/wiki/Micro_Transport_Protocol) says "μTP also adds support for NAT traversal using UDP hole punching between two port-restricted peers where a third unrestricted peer acts as a STUN server." and in referenced post that the uTorrent "implement NAT hole-punching for uTP connections, so connectivity should be improved for peers that do not have their ports mapped."
This article (https://web.archive.org/web/20210216092749/https://airvpn.org/forums/topic/23159-qbittorrent-connection-icon-green-even-though-port-not-forwarded/) shows that the user enabled uTP in qBittorrent and it made his firewalled torrent client show a green status, not orange one. Green means "better" connection i think?
This article (https://libtorrent-discuss.narkive.com/HqyhMO7B/does-libtorrent-support-hole-punching) claims that "There's no hole punching that works with all NATs. ... done via an extension to the peer-exchange functionality ... libtorrent
and uTorrent supports this" - so i guess i need to have open torrent in order PEX(and so NAT traversal/hole punching) is working?