Hi folks,
For those interested in P2P-over-NAT issues, I just wanted to announce that
the final version of the following paper, to appear in USENIX '05, is now
available:
Peer-to-Peer Communication Across Network Address Translators, Bryan Ford,
Pyda Srisuresh, and Dan Kegel. USENIX Annual Technical Conference, April
2005.
(PDF) http://www.brynosaurus.com/pub/net/p2pnat.pdf
(HTML) http://www.brynosaurus.com/pub/net/p2pnat/
An earlier draft of this paper was announced on this list a few months ago.
The final version includes, among other minor revisions, new "NAT Check"
testing results based on almost twice the number of data points as the
original draft.
Cheers,
Bryan
---
Abstract:
Network Address Translation (NAT) causes well-known difficulties for
peer-to-peer (P2P) communication, since the peers involved may not be
reachable at any globally valid IP address. Several NAT traversal techniques
are known, but their documentation is slim, and data about their robustness
or relative merits is slimmer. This paper documents and analyzes one of the
simplest but most robust and practical NAT traversal techniques, commonly
known as ``hole punching.'' Hole punching is moderately well-understood for
UDP communication, but we show how it can be reliably used to set up
peer-to-peer TCP streams as well. After gathering data on the reliability of
this technique on a wide variety of deployed NATs, we find that about 82% of
the NATs tested support hole punching for UDP, and about 64% support hole
punching for TCP streams. As NAT vendors become increasingly conscious of the
needs of important P2P applications such as Voice over IP and online gaming
protocols, support for hole punching is likely to increase in the future.