February 1, 2005
Application Design Guidelines for Traversal through Network Address Translators
Bryan Ford, Pyda Srisuresh, and Dan Kegel
This document defines guidelines by which application designers
can create applications that communicate reliably and efficiently
in the presence of Network Address Translators (NATs),
particularly when the application has a need for "peer-to-peer"
(P2P) type of communication. The guidelines allow a P2P application
to work reliably across a majority of existing NATs, as well as all
future NATs that conform to the behave requirements specified in
companion documents. The NAT traversal techniques described in
the document do not require the use of special proxy or relay
protocols, do not require specific knowledge about the network
topology or the number and type of NATs in the path, and do not
require any modifications to IP or transport-layer protocols
on the end hosts.