P2P Filesharing over UDP

Saikat Guha <[email protected]> Tue, 07 Jun 2005 15:39:57 -0700
Newsgroups gmane.ietf.nat.behave,gmane.ietf.midcom
Message-ID <[email protected]>
Hi,

FYI, I ran into an interesting (and disturbing) P2P filesharing app
(Rodi) that seems to use UDP and traverses NATs. 
http://larytet.sourceforge.net/btRat.shtml

It has an interesting approach to UDP NAT Hole-punching that doesn't use
a _public_ STUN-like server per say.

The first Rodi client opens a UDP hole in the NAT. It does so by
initiating a UDP port-scan to some destination from a fixed local port.
It waits for one response packet. (at present finding the response
packet is manual; but can easily be automated). To keep the UDP hole
open, it keeps sending UDP packets at a low rate to the remote port that
responded.

Subsequent Rodi clients perform a port scan on a remote address as
before. If the address is a NAT'ed Rodi client (that has already
performed step 1 above), then one of the port-scan packets make it
through to the other end. This is assuming the NAT is Full Cone for UDP.
The other end replies back with the external IP:port mapping, just as
STUN would. 

Basically, the approach trades off a public STUN server in exchange for
a port-scan and full-cone support.

As a side note, its main mandate is to transfer files while being
indistinguishable from other traffic (Rodi packets can be made to look
like DNS, RTP etc). The default transport protocol of choice is UDP. :-/
It seems to implement its own "Rate Limiter (RL)" to provide congestion
control, but I can't seem to find how the RL works or how TCP-friendly
it is. 

Just an FYI.

-- 
Saikat
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBCpiI9nFltqi691/oRApo8AJ90uh+KE2uU+7GR+Vg7Sm9pdnmFBACfVDce
04osN0bXjXLXSxJiFgL0QwA=
=FpH5
-----END PGP SIGNATURE-----