The various arts of rewriting TCP/IP address headers for various reasons. Some things you can to do with NAT:

  • Transparently redirect certain protocols/ports to different machines than they were originally addressed, for example when creating a TransparentProxy
  • Map multiple IP's onto a single IP (for when you have a segment of internal machines using RFC:1918 addresses and you want to map them onto one realworld IP address)
  • Map arbitary IP's onto other arbitary IP's.

For example, some external ADSL modems are really routers - you plug them into your network switch and it does address translation between IP addresses on your local network and the single IP address assigned to your account by your ISP.