uent times; this makes it difficult for an external attacker to discover that the internal host is the same. Moreover, in © 2009 by Taylor & Francis Group, LLC SIP Handbook: Services, Technologies, and Security the most common NAT operation and deployment modes, a public address is assigned only to hosts initiating a packet exchange; consequently hosts behind a NAT that are not engaged in communications with hosts over the Internet cannot receive packets sent from possible attackers somewhere in the Internet. However, the presence of NATs between networks is not transparent to applications: NATs have been designed around the client-server approach, considering the server placed in the Internet. By doing this, it is not trivial for a server placed behind a NAT to be reachable from clients over the Internet. This is due to two main reasons: first, the client may not know exactly which public network address (and port) has been assigned to the server (and its service) by the NAT when starting the session; in addition the NAT may be configured to work with an operational mode that blocks sessions started by hosts in other networks. Among applications somehow impaired by NATs, the most important are the peer-to-peer ones: since the Session Initiation Protocol (SIP) defines the user agents (UAs) as entities made up of both a client and a server (each UA can start or receive a media session), SIP UAs fall in this category. The scope of this chapter is to describe in detail how NATs work and to present techniques developed to overcome the connectivity limitations introduced by NATs, known as NAT traversal techniques. The chapter is structured as follows: the first section introduces definitions concerning NAT behavior, highlighting how a NAT should be configured to make peer-to-peer like applications work. The second section explains how NATs may affect SIP UA's connectivity, thus defining the problem that is the main focus of this chapter. In the third section, the most effective NAT traversal techniques will be introdu