¿Cómo sabe mi enrutador qué aplicación solicitó qué paquete?

Cada conexión IP se identifica de manera única mediante una tupla de 5.

  • Protocolo. Por lo general, TCP, UDP o ICMP.
  • Dirección IP de destino. Es con quien estás hablando.
  • Dirección IP origen. Esa es la dirección de tu dispositivo.
  • Puerto de destino. Este será un puerto “bien conocido”, como 80 para http o 443 para https, utilizado para llegar a un servicio en el destino.
  • Puerto de origen. Este número se selecciona aleatoriamente y es único para cada conexión. Por lo general, está entre 1024 y 65535, pero puede variar según la implementación.

Un verdadero enrutador no se preocupa por nada más que las direcciones IP. Sin embargo, supongo que realmente se refiere a un “enrutador doméstico” que es realmente un dispositivo de traducción de puertos y direcciones de red (NAPT).

Un dispositivo NAPT deja solo el protocolo, la dirección de destino y el puerto, pero coloca su propia dirección de Internet como fuente y genera un número de puerto fuente nuevo y único y coloca una entrada en una tabla de traducción que registra la dirección IP original y el puerto fuente. El tráfico de retorno llegará a la dirección de origen y destino intercambiada, así como al puerto de origen y destino. Según el puerto de destino del tráfico de retorno (correspondiente al “puerto de origen nuevo y único”), se encontrará la entrada de la tabla y la dirección IP de origen original y el puerto de origen correspondiente a esa entrada se colocarán en la dirección IP de destino y puerto de destino del tráfico de retorno para la entrega al nodo.

Su dispositivo tiene una dirección IP. Luego, su aplicación se vincula a un puerto específico en el dispositivo que llamamos puerto de origen (su teléfono móvil obtendrá una dirección IP de su enrutador a través de DHCP, o puede configurar una dirección estática). Entonces la aplicación necesita comunicarse con el mundo exterior. por lo tanto, necesitamos la dirección IP de destino y el puerto de destino (por ejemplo, para un sitio web usamos el puerto 80 (HTTP) o 443 (HTTPS).

Entonces (IP de origen, puerto de origen, protocolo (TCP / UDP / FTP .. etc.) y (IP de destino y puerto de destino) son únicos. Por lo tanto, el enrutador sabe cuál enviar la respuesta desde la ubicación de destino. El enrutador mantiene una tabla NAT (Traducción de dirección de red), por lo que tiene todos estos detalles.

Espero que esto ayude.

Tiene razón en que el puerto en última instancia juega un papel en el enrutamiento del tráfico a la aplicación específica.

En cuanto al tráfico que llega al dispositivo correcto, esa es una característica de la traducción de direcciones de red: traducción de direcciones de red

La traducción de direcciones de red (NAT) es responsable de asignar múltiples direcciones IP internas a la única dirección pública dada a su enrutador.

Por wikipedia, refiriéndose a los paquetes entrantes:

“En la ruta de comunicación inversa, las respuestas se asignan de nuevo a las direcciones IP de origen utilizando las reglas (” estado “) almacenadas en las tablas de traducción”.