NAT Traversal


http://www.s-code.com/forum/Topic1734.aspx
Print Topic | Close Window

By psmith - Monday, October 29, 2007
Any change you might add support for NAT traversal using TCP hole-punching? The technique is pretty reliable and the performance gain over the repeater/proxy method would be tremendous! Cornell has a STUNT (Simple Traversal of UDP Through NATs and TCP too) reference implementation, which can be found at the following addresses:

Project Home – http://nutss.gforge.cis.cornell.edu/stunt.php

Download URL – https://gforge.cis.cornell.edu/frs/?group_id=15&release_id=6

By Yury Averkiev (s-code) - Monday, October 29, 2007
Thanks Peter,
we will take a look at this project. Do you know if the project is still alive? They had the last beta release almost 6 months ago.
By psmith - Monday, October 29, 2007
I don't know if the project is still alive, but the code they've released is a functional reference implementation. Another approach is to adopt Google's ICE implementation which is used in Google Talk and realease under a BSD license as part of libjingle. Google accomplishes NAT traversal using a reliable UDP stream in tandem with a standard STUN server; this avoids the complexity associated with TCP hole punching. Yet another place to look for example code is in open source P2P projects, which often implement NAT traversal using either STUN or STUNT (Jive Software's OpenFire is just one example).

Here's a great document on NAT traversal: http://www.brynosaurus.com/pub/net/p2pnat/

Google's libjingle:  http://code.google.com/apis/talk/libjingle/index.html

Now, if you were to establish a source licensing model *hint, hint* I could write the STUNT code and donate it back to s-code... of course, for a nice discount on the license. Wink

By psmith - Tuesday, October 30, 2007
Development of the STUNT libraries from Cornell has continued under a new project named XSTUNT, which can be found here:

http://www.cis.nctu.edu.tw/~gis87577/xDreaming/XSTUNT/index.html

XSTUNT is currently being used by Fog Creek Software in their VNC based remote control software named Copilot.

http://www.copilot.com

Okay, this is my last post on the subject... I swear!

By Yury Averkiev (s-code) - Wednesday, October 31, 2007
Okay, this is my last post on the subject... I swear!

You may continue posting  and thanks for the links!