It provides a tool for hosts to discover the presence of a network address translator, and to discover the mapped, usually public, Internet Protocol (IP) address and port number that the NAT has allocated for the application's User Datagram Protocol (UDP) flows to remote hosts.
The methods of RFC 3489 proved too unreliable to cope with the plethora of different NAT implementations and application scenarios encountered in production networks.
The title was changed in a specification of an updated set of methods published as RFC 5389, retaining the same acronym.
It is implemented as a light-weight client–server protocol, requiring only simple query and response components with a third-party server located on the common, easily accessible network, typically the Internet.
[2] When reliability is mandatory, the Transmission Control Protocol (TCP) may be used, but induces extra networking overhead.
In case no STUN server is found using DNS lookups, the standard recommends that the destination domain name should be queried for address records (A or AAAA), which would be used with the default port numbers.
The Interactive Connectivity Establishment (ICE) protocol provides a structured mechanism to determine the optimal communication path between two peers.
Session Initiation Protocol (SIP) extensions are defined to enable the use of ICE when setting up a call between two hosts.