O que acontece se dois sistemas locais baixarem o mesmo recurso na mesma porta?

O que acontece se dois sistemas locais baixarem o mesmo recurso na mesma porta?

Estou ciente da tabela NAT. Só quero saber o que acontece se dois clientes em uma rede local privada quiserem baixar exatamente o mesmo recurso na mesma porta. Em outras palavras, quando um pacote vem do servidor, como o roteador pode decidir qual cliente deve receber esse pacote?

Se não me engano, o pacote recebido do servidor tem o endereço IP de destino do roteador que é público e é o mesmo para ambos, e também o número da porta de destino que também é o mesmo neste caso.

Existe algum mecanismo no roteador ou servidor para detectar isso? ou esse comportamento é possível em primeiro lugar?

Eu procurei perguntas comoesse, o que faz sentido que o erro surja porque a porta está ocupada, mas estou perguntando sobre dois sistemas separados.


Atualizar :A partir dos comentários, percebi que não fui claro o suficiente, então deixe-me repetir com um exemplo:

Eu só me importo com a porta "fonte" dos dispositivos. Suponha que eu tenha dois laptops ( 192.168.2.10e 192.168.2.11), ambos baixando o mesmo arquivo do mesmo servidor em algum lugar da Internet. Cada um deles possui um sistema operacional que gera uma porta aleatória, então o IP de origem e a porta de origem seriam algo como: 192.168.2.10:6321e 192.168.2.11:7132. Eu pensei que no NAT, o roteador definiria seu endereço IP (público) junto com as portas dos laptops, portanto, se o endereço IP público do roteador doméstico for 65.82.23.32, esses dois pacotes obterão o IP de origem e a porta de origem, respectivamente: 65.82.23.32:6321e 65.82.23.32:7132.

Agora, quando a resposta voltar, o roteador poderá descobrir qual pacote é para qual laptop a partir dos números de porta, certo? até agora tudo bem. Mas o que acontece se acidentalmente ou intencionalmente dois laptops gerarem exatamente a mesma porta de origem? por exemplo: 192.168.2.10:6000e 192.168.2.11:6000. Agora o roteador definirá seu endereço IP público como o endereço IP de origem como antes, mas agora, se tentar usar esses números de porta, esses pacotes terão exatamente o mesmo IP de origem e número de porta de origem, como: 65.82.23.32:6000e 65.82.23.32:6000.

Foi aqui que fiquei confuso: quando a resposta voltar, como o roteador pode decidir qual pacote é para qual laptop?

Após a resposta do @mfinni, percebi que não é assim que o PAT funciona! O dispositivo NAT (aqui roteador) atribuirá portas exclusivas a cada laptop individual (endereço IP privado) e, em seguida, os pacotes serão enviados com essas portas exclusivas (por exemplo, 7777e 7778). Então, quando a resposta voltar, fica claro qual pacote é para qual laptop das portas, então o roteador irá convertê-los 65.82.23.32:7777em 65.82.23.32:7778--> 192.168.2.10:6000, 192.168.2.11:6000respectivamente.

Responder1

Uma conexão TCP (que sustenta o HTTP e muitos outros protocolos) é definida exclusivamente (em um determinado momento) por 4 parâmetros:

  • O IP local
  • O porto local
  • O IP remoto
  • A porta remota

Mesmo que você faça a mesma solicitação duas vezes simultaneamente no mesmo computador, mesmo com os dois endereços IP idênticos e a porta de destino idêntica, a porta de origem será diferente.

Da mesma forma, se você tiver duas solicitações provenientes de dois dispositivos que passam pelo mesmo dispositivo NAT, o dispositivo NAT usará portas de origem diferentes. Dependendo do dispositivo, ele pode manter as portas de origem originais (e alterar apenas uma se houver conflito) ou sempre atribuir uma nova porta de origem independentemente da porta de origem original.

O dispositivo NAT manterá então para cada conexão um mapeamento em sua tabela de tradução que afirma que a conexão externa (IP externo, porta de origem externa, IP de destino, porta de destino) é mapeada para conexão interna (IP do host interno, porta de origem do host interno, destino IP, porta de destino).

Responder2

A tabela NAT sabe que a porta de origem de cada cliente é diferente, portanto não enviará acidentalmente o pacote errado para o cliente interno errado. O dispositivo NAT também atribui portas de saída diferentes, e elas NÃO são iguais entre diferentes clientes internos.

Responder3

Quando você se refere a NATvocê provavelmente está se referindo aNAPT. O que altera a porta de origem (pelo menos se necessário) no dispositivo NAT. Como tal, a porta de origem mudará.

Por exemploiptables MASQUERADE

Ao fazer NAT, neste caso, também há necessidade de "rastreamento de conexão", que simplesmente monitora qual "porta externa" está relacionada a qual "cliente e porta internos". No iptables você verá frequentemente a regra RELATED,ESTABLISHEDque usa. Você também descobrirá que se um roteador que faz NAPT for reiniciado, todas as conexões serão interrompidas. Enquanto um roteador sem NAT geralmente apenas retoma qualquer conexão. (assumindo que ele conclui as reinicializações antes que o cliente expire)

Responder4

O roteador não usa o mesmo número de porta de origem que os laptops geram em suas solicitações de saída para a WAN; ele gera suas próprias portas de origem exclusivas. A tabela NAT no roteador converte laptop1:6000 em publicip:N e laptop2:6000 em publicip:M. Então ele sabe para onde rotear os pacotes recebidos e por qual porta o tráfego chega da Internet.

informação relacionada