There are several ways of implementing network address and port
translation. In some application protocols that use IP address
information the application running on a node in the masqueraded
network needs to determine the external address of the NAT i.e. the
address that its communication peers detect and furthermore often
needs to examine and categorize the type of mapping in use. Usually
this is done because it is desired to set up a direct
communications path (either to save the cost of taking the data via
a server or to improve performance) between two clients both of
which are behind separate NATs.
For this purpose the Simple traversal of UDP over NATs (STUN) protocol was developed (RFC 3489 March 2003). It classified NAT implementation as full-cone NAT (address) restricted-cone NAT port-restricted cone NAT or symmetric NAT and proposed a methodology for testing a device accordingly. However these procedures have since been deprecated from standards status as the methods are inadequate to correctly assess many devices. New methods have been standardized in RFC 5389 (October 2008) and the STUN acronym now represents the new title of the specification: Session Traversal Utilities for NAT.
For this purpose the Simple traversal of UDP over NATs (STUN) protocol was developed (RFC 3489 March 2003). It classified NAT implementation as full-cone NAT (address) restricted-cone NAT port-restricted cone NAT or symmetric NAT and proposed a methodology for testing a device accordingly. However these procedures have since been deprecated from standards status as the methods are inadequate to correctly assess many devices. New methods have been standardized in RFC 5389 (October 2008) and the STUN acronym now represents the new title of the specification: Session Traversal Utilities for NAT.
Show More >