BT behind NATs, getting it to work (was Re: [BitTorrent] Re: How BitTorrent deal

larytet larytet at
Tue Mar 15 22:25:43 EST 2005

"Wouldn't this also require the entire BT protocol to be written on
top of UDP?"

see NAT penetration in Rodi Lesson 4

essentially NAT penetration task (NPT) scans all ports in NAT looking
for anyone open and sends packet "Who am I" to some IP (for example,
gateway). NPT expects that the destination will send the packet back this
way exposing the port (hole) openned in NAT or to answer with reply
"You are" if the destination runs Rodi client. This way Rodi client
learns what it's external IP address and port.

to fight intelligent firewalls Rodi spec includes faking RTP and DNS
packets and UDP payload encryption. 

Rodi is pure UDP based protocol. Rodi client never (i mean it - NEVER)
attempts to establish bidirectional connection and never assumes that
source IP/port in the UDP header are correct and can be relied on.

Rodi client generates unique (for this client) requiest ID - 64 bits
number and sends the request to some IP address. The same packet
stamped with
different request IDs can be sent to multiple IP addresses and this is
(similar IP address scan) what exactly LOOK makes. 

Remote Rodi client will copy request ID in the reply packet. On the
receive side Rodi will fetch request ID from the arrived reply and try
 to find in the hash table of pending requests

Yahoo! Groups Links

<*> To visit your group on the web, go to:

<*> To unsubscribe from this group, send an email to:
    BitTorrent-unsubscribe at

<*> Your use of Yahoo! Groups is subject to:

More information about the BitTorrent mailing list