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-----