https://ru.m.wikipedia.org/wiki/BitTorrent
Есть torent-tracker, (с белым ip) где регистрируются клиенты и сообщают свои параметры.
Так как протокол udp без установления соединения, то можно открыть порт через Nat, послав пакет на известный белый ip, после чего другой клиент может слать данные на этот открытый udp порт. (читать про Tun/stun)
Но в любом случае нужен посредник с белым ip, для регистрации и пробития NAT.