What is Port Address Translation (PAT)?

Port Address Translation (PAT) is a type of Network Address Translation (NAT), which translates communications between devices on a private network and devices on a public network.

PAT is also known as port overloading, overloaded NAT, port-level multiplexed NAT or single address NAT.

 

So How Does Port Address Translation (PAT) Work?

Last week I used a picture similar to the one below to illustrate how Network Address Translation (NAT) works.

Network Address Translation

This is the typical setup for a home network. Our computers are connected to a cable modem or router, which in turn is connected to our ISP.

 

Port Address Translation (PAT) allows multiple devices on a private network to be mapped to a single public IP address, which in the example above is 8.1.4.20, the IP address assigned by our ISP.

When our computer (192.168.1.11) connects to a web server on the Internet, the router running Port Address Translation (PAT) will do the following:

  • Assign a port number to our computer.
  • Store the computer’s IP address and assigned port number in its translation table.
  • Replaces the private IP address with the public one.
  • Assign an external port number.
  • Add the external IP address and port number to its translation table.
  • Rewrite the IP header of the outbound packet with the public IP address and assigned port number.
  • Send the packets to the host on the Internet.

Then when the host on the Internet replies back, our router will:

  • Read the packet received by the external device.
  • Use the external port number and look for a match on its translation table.
  • Rewrite the IP header of the incoming packet with the internal corresponding IP address and port number.
  • Send the packet to the internal network.