[P2Prg] Announcing: TCP NAT Traversal/Hole-Punching Library

Saikat Guha <saikat@cs.cornell.edu> Thu, 29 September 2005 00:10 UTC

Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EKm0n-0008QB-Ll; Wed, 28 Sep 2005 20:10:57 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EKXvE-0001nB-D6 for p2prg@megatron.ietf.org; Wed, 28 Sep 2005 05:08:21 -0400
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id FAA23868 for <p2prg@ietf.org>; Wed, 28 Sep 2005 05:08:14 -0400 (EDT)
Received: from exchfenlb-1.cs.cornell.edu ([128.84.97.33] helo=exchfe1.cs.cornell.edu) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1EKY2e-0006n2-Tb for p2prg@ietf.org; Wed, 28 Sep 2005 05:15:57 -0400
Received: from exchfe1.cs.cornell.edu ([128.84.97.27]) by exchfe1.cs.cornell.edu with Microsoft SMTPSVC(6.0.3790.1830); Wed, 28 Sep 2005 05:07:22 -0400
Received: from himalaya.cs.cornell.edu ([128.84.223.110]) by exchfe1.cs.cornell.edu over TLS secured channel with Microsoft SMTPSVC(6.0.3790.1830); Wed, 28 Sep 2005 05:07:21 -0400
From: Saikat Guha <saikat@cs.cornell.edu>
To: or-talk@seul.org, devs@www.emule-project.net, discuss@lists.limewire.org, lionshare@internet2.edu, azureus@gmail.com, yutaka_takeda@playstation.sony.com, hzhang@cs.cmu.edu, jamin@eecs.umich.edu, pablo@microsoft.com, users@lists.planet-lab.org, p2prg@ietf.org, todd-p2p@etcee.com, bugs@limewire.com, gtk-gnutella-devel@lists.sourceforge.net, waste-public@lists.sourceforge.net, g2-dev@gnutella2.com, Jed McCaleb <jed@edonkey2000.com>
Date: Wed, 28 Sep 2005 06:46:12 -0400
Message-Id: <1127904372.24218.79.camel@himalaya.cs.cornell.edu>
Mime-Version: 1.0
X-Mailer: Evolution 2.2.3 (2.2.3-2.fc4)
X-OriginalArrivalTime: 28 Sep 2005 09:07:21.0109 (UTC) FILETIME=[087E8C50:01C5C40C]
X-Spam-Score: 0.0 (/)
X-Scan-Signature: b4a0a5f5992e2a4954405484e7717d8c
X-Mailman-Approved-At: Wed, 28 Sep 2005 20:10:56 -0400
Cc:
Subject: [P2Prg] Announcing: TCP NAT Traversal/Hole-Punching Library
X-BeenThere: p2prg@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Peer-to-Peer Research Group <p2prg.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/p2prg>, <mailto:p2prg-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:p2prg@ietf.org>
List-Help: <mailto:p2prg-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/p2prg>, <mailto:p2prg-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1021086081=="
Sender: p2prg-bounces@ietf.org
Errors-To: p2prg-bounces@ietf.org

Hi all,
(apologies if you get multiple copies of this)

I am pleased to announce the availability of our open-source TCP NAT
Traversal/Hole-Punching library based on our research published in [1].

[1] "Characterization and Measurement of TCP Traversal through NATs 
     and Firewalls", S. Guha and P. Francis. IMC 2005.
http://nutss.net/pub/imc05-tcpnat.pdf

The key result of the paper is: TCP NAT traversal can work 85%-90% of
the time today (without any special assumptions about NATs), and 100% of
the time between pairs of certain popular, well-behaved NATs. See [1]
for more details.

An open-source Java library for TCP NAT Traversal is now available:
 webpage: http://nutss.net/stunt.php
 faq: http://nutss.net/jstunt-faq.php
 library and example: http://nutss.net/jstunt-examples.php

The above library has been tested for pair-wise connectivity across 11
brands of NATs from Windows and Linux hosts. NATs tested were Linksys,
DLink, Netgear, Belkin, 3Com, Netopia, Allied Telesyn, SMC, Trendnet,
USR, Buffalo Tech. Out of the 121 possible pair-wise combinations, 113
connections are successful. The only ones that failed are when both the
endpoints are behind the _same_ NAT device that does not support TCP
hairpin-behavior yet (see [1]). 

The java library is released under LGPL; contact me if this does not
meet your needs. Feel free to extend it/port it etc.

Q: I am a P2P developer/researcher. How does this help me?
A: The library adds TCP NAT traversal out-of-the-box. This increases the
connectivity in your P2P network since two users behind their NATs can
now exchange data without having to go through an intermediary node. You
can:
- Use this library as is (for development of P2P software, research,
  small deployments, etc in java)
- Study it to provide TCP NAT Traversal in your existing P2P
  applications in your language of choice.
- etc.

If you have any questions, comments, suggestions, or problems, do not
hesitate to contact me. Cheers,
-- 
Saikat
_______________________________________________
P2prg mailing list
P2prg@irtf.org
https://www1.ietf.org/mailman/listinfo/p2prg