Network Address Translator
The IP Network Address Translator
“An Internet standard that enables a local-area network (LAN) to use one set of IP addresses for internal traffic and a second set of addresses for external traffic. A NAT box located where the LAN meets the Internet makes all necessary IP address translations.” (Webopedia.com (http://www.webopedia.com/TERM/N/NAT.html))
- More secure than a simple dynamic or static IP address (although many NATs use dynamic but local “192.168.—.—” addresses).
- A nearly unlimited pool of IP Addresses for Internet connection-sharing.
It is important to understand NAT if you want your P2P app to get through NAT’s and firewalls. In essence, it is just an address translator; on the outside, an extern-IP, and inside a non-routable intern-IP. The NAT is the device that edits the packet addresses as they pass through it, so that internal IP‘s stay internal, and external IP’s stay external. As such, some people (foolishly) consider a NAT as a basic firewall.
NATs v Firewalls
NATs are often marketed as Firewalls as they provide basic intrusion protection. They are not. However, some NAT routers include firewalls as well.
NATs are important to P2P apps because the P2P app only knows the internal address. It has, AFAIK, no way to know what the external IP is, so your app may waste time and effort trying to send messages to non-routable IP’s. So like a firewall, if you are behind a NAT, you can connect out, but nobody can connect in. Without tricks, a firewalled or NAT’d host can not connect to another such host. You need an intermediary that allows incomming connections. (There are more soffisticated ways of dealing with NAT’s and firewalls, but I don’t recall them.)
- Natcheck (http://midcom-p2p.sourceforge.net) – A program to use P2P applications in the situation where both clients are behind a NAT. Explanation and technical details available at website.
TakeDown.NET -> “NAT”