La mayoría de los enrutadores domésticos utilizan un caso especial de NAT llamado PAT.
También lo verás referido como NAPT o IP Masquerading. Los tres últimos términos significan lo mismo en uso general. (Los acrónimos: traducción de direcciones de red / traducción de direcciones de puerto / traducción de puertos de dirección de red)
Cuando el paquete sale de su máquina interna, la dirección de origen se reescribe como sabe. El puerto de origen también se cambia, generalmente a un número alto, y el enrutador mantiene una tabla de traducción de direcciones.
Por ejemplo, supongamos que tiene una máquina cliente que va a www.google.com. Su computadora (por ejemplo, 192.168.1.100) busca esa dirección y establece una conexión TCP a 72.14.204.147 en el puerto 80 desde su dirección IP interna, utilizando un puerto de origen aleatorio.
Para su computadora, la conexión se ve así:
192.168.1.100:37641 <--> 72.14.204.147:80
Su computadora envía el paquete al enrutador, que elige un nuevo puerto alto aleatorio y reescribe el paquete. Cada conexión de salida tiene su propio puerto en el enrutador. Luego, el enrutador reenvía el paquete a su ISP después de agregarlo a su tabla de conexión:
PrivateIP PrivatePort PublicIP PublicPort Remote RemotePort
------------- ---------- ----------- ----------- ---------- -----------
192.168.1.100 37641 *10.6.23.5 59273 72.14.204.147 80
* Por ejemplo, utilicé una dirección que comienza con 10, pero no se puede enrutar públicamente. La tabla también está algo simplificada.
Para google, la conexión se ve así:
10.6.23.5:59273 <--> 72.14.204.147:80
Google enviará su respuesta al 10.6.23.5 en el puerto 59273. Su enrutador luego busca esa información en la tabla y reenvía el paquete a 192.168.1.100:37641.
www.google.com
me encontraría si no le enviara una solicitud inicial. En otras palabras, los mensajes solo pueden comunicarse conmigo a través del enrutador si inicialmente envié una solicitud a través del enrutador