98

Universal Plug and Play (UPnP)

The following are issues that can arise when using NAT:
Some network applications assume t he IP address and port that t he
client has been assigned are global routable values that can be
used on the Internet directly. Often, this is not the case as the client
has been assigned a private IP address that can only be used on the
LAN.
Other network applications send requests using a socket on a port
“A” and expect t o receive the re ply from a different listen ing socket
on port “Z”. When the NAT access point creates a port mapping for
port “A”, it won't know that it has to match it with the reply packets
addressed to port “Z”.
A number of network protocols assume they will always be able to
use certain globally routable well-known ports. However there are
several clients in the LAN and at any given t ime, only one client can
be allowed to use a specific well-known port. In the meantime, the
other clients will not be able to run any web service requiring the
same well-known port.
NAT traversal techniques have been developed as a workaround to
allow network-aware applications to discover that they are behind a
NAT-enabled device, to learn the external, globally-routable IP address
and to configure port mappings to automatically forward packets from
the external port of the NAT to the internal port used by the application
– without the user having to manually configure port mapping.
NAT traversal relies on the discovery and control prot ocols that are part
of the Universal Plug and Play (UPnP) architecture. The UPnP
specification is based on TCP/IP and Internet protocol s that let devices
discover the presence and services offered by other UPnP devices in
the network. It also supports the following, which are essential for NAT
traversal:
Learning public IP address
Enumerating existing port mappings
Adding and removing port mappings
Assigning lease times to mappings