What is NAT(Network Address Translation)?
NAT
In computer networking, Network Address Translation (NAT) is the process
of modifying IP address information in IPv4 headers while in transit
across a traffic routing device.Static NAT
(stat´ik nat) (n.) A type of NAT in which a private IP address is mapped to a public IP address, where the public address is always the same IP address (i.e., it has a static address). This allows an internal host, such as a Web server, to have an unregistered (private) IP address and still be reachable over the Internet.Dynamic NAT
(dī-nam´ik nat) (n.) A type of NAT in which a private IP address is mapped to a public IP address drawing from a pool of registered (public) IP addresses. Typically, the NAT router in a network will keep a table of registered IP addresses, and when a private IP address requests access to the Internet, the router chooses an IP address from the table that is not at the time being used by another private IP address. Dynamic NAT helps to secure a network as it masks the internal configuration of a private network and makes it difficult for someone outside the network to monitor individual usage patterns. Another advantage of dynamic NAT is that it allows a private network to use private IP addresses that are invalid on the Internet but useful as internal addresses.Type of NAT and NAT traversal,
&
role of port preservation for TCP
The NAT traversal problem arises when two peers behind distinct NAT try
to communicate. One way to solve this problem is to use port forwarding,
another way is to use various NAT traversal techniques. The most
popular technique for TCP NAT traversal is TCP hole punching, which
requires the NAT to follow the port preservation design for TCP, as
explained below.
Many NAT implementations follow the port preservation design for TCP:
for a given outgoing tcp communication, they use the same values as
internal and external port numbers. NAT port preservation for outgoing
TCP connections is crucial for TCP NAT traversal, because as TCP
requires that one port can only be used for one communication at a time,
programs bind distinct TCP sockets to ephemeral ports for each TCP
communication, rendering NAT port prediction impossible for TCP.
On the other hand, for UDP, NATs do not need to have port preservation.
Indeed multiple UDP communications (each with a distinct endpoint) can
occur on the same source port, and applications usually reuse the same
UDP socket to send packets to distinct hosts. This makes port prediction
straightforward, as it is the same source port for each packet.
Furthermore, port preservation in NAT for TCP allows P2P protocols to
offer less complexity and less latency because there is no need to use a
third party (like STUN) to discover the NAT port since the application
itself already knows the NAT port.
However, if two internal hosts attempt to communicate with the same
external host using the same port number, the external port number used
by the second host will be chosen at random. Such NAT will be sometimes
perceived as (address) restricted cone NAT and other times as symmetric
NAT.
Recent studies have shown that roughly 70% of clients in P2P networks employ some form of NAT.
0 comments:
Post a Comment