ess- and port-dependent filtering behavior: if an application running on a host behind a NAT using an internal transport address (A:a) has been bound to an external transport address (A1:a1) by the NAT, the NAT will filter all the packets not targeted to (A:a). In addition, an application running on an host outside the NAT using the transport address (X:x) will be allowed to send packets to (A:a) only if packets have been previously sent from (A:a) to (X:x). The requirement defined by RFC 4787 states that if the application trans- parency is most important, it is recommended that NAT have an Endpoint Independent Filtering Behavior. If a more stringent filtering behavior is most important, it is recommended that a NAT have an Address Dependent Filter- ing Behavior. 12.2.4 Deterministic Properties NATs are non-deterministic if they change their filtering or mapping behav- ior without any configuration change. For example, there are NATs that try to preserve the port when translating the internal transport address to the external one. However, if the NAT finds that the internal port is currently used by another mapping and the NAT cannot use another public network address (because only a limited number of public addresses, possibly one, is available), NAT mapping behavior varies. RFC 4787 states that a NAT must have a deterministic behavior, i.e., the NAT must not change its behavior at any point in time or under particular conditions. 12.2.5 Hairpinning Behavior Consider the two communicating hosts A and B in Figure 12.3. Because they are behind the same NAT, they should use their internal transport addresses to communicate. However, since A knows only an external transport address (B1, b1) assigned to B by the NAT, it sends packets to B through the NAT using the external endpoint (B1, b1). This procedure is referred to as hairpin- ning. RFC 4787 states that a NAT must support hairpinning. 12.3 Problem Statement SIP is commonly used to establish media sessions among UAs. Each UA wish- ing to communicate usually per