The exponential growth of the Internet caused a shortage in the available IP addresses similar to the way the growth of cell phones, pagers and the like have caused a shortage of phone numbers. Unlike the phone system though, the Internet could not simply add a new prefix to the mix to create new phone numbers. While the next version of the IP protocol (IPv6) is designed to allow for an exponential increase in the number of available addresses, the current version (IPv4) was running dry fast.
In the meantime, NAT (Network Address Translation) can be used to expand the potential number of addresses. NAT essentially uses only one IP address to communicate on the Internet and a completely separate block of IP addresses on the local network. The local network addresses need to be unique from each other, but since the outside world will not see the local network addresses they dont need to be unique to the world.
Without NAT a company with 100 computers that wanted all 100 to connect with the Internet would need to have 100 separate public IP addresses. That same company using NAT would only need 1 public IP address and would assign the computers on the local network internal IP addresses.
This hiding of the internal IP addresses works not only to allow for more Hosts to share the Internet, but also as a layer of security. By not allowing the outside world to know the precise IP addresses of your internal Hosts you take away a key piece of information that hackers could use to break into your network.
Now that we have talked about how protocols help standardize communications so that different computers can talk to each other and how TCP/IP is the collection of protocols used to communicate on the Internet we can start to look at how these things can be exploited and used against you. We also discussed how DHCP dynamically assigns IP addresses to Hosts and how NAT can be used to increase the number of Hosts that can connect to the Internet through one IP address while also hiding your internal network from the world. The next lesson will cover TCP, UDP, Ports and Firewalls.

