 Usually this is done because it is desired to set up a direct communication 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.