minha pergunta não diz respeito a como ela se move pela Internet, mas como ela se move através do roteador para um determinado dispositivo. Todos os dispositivos conectados a um roteador em uma rede doméstica têm o mesmo IP externo. Digamos que o dispositivo A esteja carregando uma página e os pacotes sejam enviados de uma fonte externa para o roteador porque os pacotes conhecem o IP externo do dispositivo A e podem acessar o roteador. Mas agora, como chega ao dispositivo A? Como o roteador sabe enviá-lo para o dispositivo A em vez do dispositivo B?
Eu acho que isso envolve o NAT, mas estou apenas procurando uma explicação lógica do que o NAT faz para fazer isso.
Respostas:
Quando você inicia uma conexão com um site externo, o roteador usa um número de porta de origem diferente a cada vez ... então ele usa esse número de porta de origem (que é onde os dados retornam) como a chave para procurar em qual máquina sua rede interna da qual o pedido veio. Isso é chamado de Conversão de Endereço PORT (em oposição à Conversão de Endereço de Rede, que é quando você tem vários endereços de rede disponíveis para o seu roteador).
fonte
Normalmente, todos os dispositivos da rede doméstica têm um endereço interno diferente (endereço privado, sempre 192.168.0.1 ~ 192.168.0.255).
Quando um pacote é enviado da rede doméstica (digamos, dispositivo A: 192.168.0.123), quando passa pelo roteador, o roteador traduz o endereço privado para o endereço externo do roteador (suponha que seja 140.191.2.5), e o roteador também registra isso mapeamento em seu NAT.
Quando a resposta está de volta, o roteador que mapeia o NAT e encontra a fonte original é o Dispositivo A.
então o dispositivo A finalmente recebe o pacote.
Este é apenas um conceito, para mais detalhes, consulte o wiki: NAT.
fonte