Peer-to-Peer Communication Across Network Address Translators

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

[1]  Adrian Perrig,et al.  NATBLASTER: Establishing TCP Connections Between Hosts Behind NATs ∗ , 2005 .

[2]  Bryan Ford,et al.  Unmanaged Internet Protocol , 2004, Comput. Commun. Rev..

[3]  Matt Holdrege,et al.  Protocol Complications with the IP Network Address Translator , 2001, RFC.

[4]  Stephen E. Deering,et al.  Internet Protocol, Version 6 (IPv6) Specification , 1995, RFC.

[5]  Jonathan Rosenberg Traversal Using Relay NAT (TURN) , 2005 .

[6]  Christian Huitema,et al.  STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) , 2003, RFC.

[7]  Forum UPnP,et al.  Internet Gateway Device (IGD) Standardized Device Control Protocol V1.0 , 2001 .

[8]  Cullen Jennings NAT Classification Results using STUN , 2004 .

[9]  Jonathan D. Rosenberg,et al.  Middlebox communication architecture and framework , 2002, RFC.

[10]  Matt Holdrege,et al.  IP Network Address Translator (NAT) Terminology and Considerations , 1999, RFC.

[11]  Michael Walfish,et al.  Middleboxes No Longer Considered Harmful , 2004, OSDI.

[12]  Bogdan M. Wilamowski,et al.  The Transmission Control Protocol , 2005, The Industrial Information Technology Handbook.

[13]  Jeffrey L. Eppinger TCP Connections for P2P Apps: A Software Approach to Solving the NAT Problem , 2005 .

[14]  Christian Huitema Teredo: Tunneling IPv6 over UDP through NATs , 2002 .

[15]  George Tsirtsis,et al.  Network Address Translation - Protocol Translation (NAT-PT) , 2000, RFC.

[16]  Saikat Guha,et al.  Characterization and measurement of TCP traversal through NATs and firewalls , 2005, IMC '05.

[17]  Saikat Guha,et al.  NUTSS: a SIP-based approach to UDP and TCP network connectivity , 2004, FDNA '04.

[18]  David D. Clark,et al.  FARA: reorganizing the addressing architecture , 2003, FDNA '03.

[19]  Paul Francis,et al.  IPNL: A NAT-extended internet architecture , 2001, SIGCOMM '01.

[20]  U. A. Kini,et al.  Peer-to-Peer networking , 2001 .

[21]  Jerome H. Saltzer,et al.  On the Naming and Binding of Network Destinations , 1993, RFC.

[22]  Bryan Ford,et al.  Scalable Internet Routing on Topology-Independent Node Identities , 2003 .