Como um servidor web retorna uma requisição HTTP? [duplicado]

0

Me desculpe se esta é uma pergunta muito estúpida; meu conhecimento de rede é bastante esparso.

Assim, um usuário faz uma solicitação HTTP para algum endereço. Essa solicitação vem de um endereço em uma sub-rede local, mas o roteador sabe enviar a solicitação para seu gateway padrão porque o IP de destino não corresponde a nada em sua tabela de roteamento. O pedido pula através da internet e é eventualmente recebido pela máquina de destino (um servidor web). Isso tudo faz sentido.

Mas agora, como o servidor web consegue enviar a solicitação de volta para a máquina local? O pedido não veio de um endereço IP em uma sub-rede local? Onde ele pegou o endereço IP do roteador da máquina local? E mesmo que tenha o IP do roteador, como o pacote é roteado para a máquina local depois que chega ao roteador?

    
por ejk314 29.10.2014 / 16:21

3 respostas

1

O pacote tem um endereço de origem como mencionado anteriormente, mas também tem um número de porta atribuído. Isso é especialmente necessário em um ambiente NAT (onde os IPs internos são IP privados e externos é constante - como compartilhar a conexão com a Internet). O roteador atribui um número de porta aleatório não utilizado e mantém uma tabela de quem o número da porta se refere (o computador do usuário). Quando o pacote é recebido pelo roteador, ele verifica o número da porta e faz a correspondência e envia para o computador / usuário.

sinta-se à vontade para atualizar / corrigir isso se for incorreto, mas é assim que funciona. Espero que isso ajude.

    
por 29.10.2014 / 16:42
1

A resposta do servidor da web é tratada da mesma forma que a solicitação do cliente. Eles são apenas datagramas IP.

O servidor da web tem um gateway padrão para o qual envia sua resposta. A resposta "pula através da Internet e é eventualmente recebida" pelo cliente que originou o pedido.

O servidor web "não sabe" nada sobre o roteador do cliente solicitante.

Editar:

Seu comentário revela uma suposição que eu fiz.

Você está falando sobre um cenário em que o computador cliente solicitante tem um endereço IP privado e está conectado a uma rede com um endereço de rede Conversor (NAT) na fronteira da rede do cliente (onde essa rede se conecta à Internet).

Nesse caso, o endereço IP do computador cliente será convertido, pelo roteador NAT, em um endereço IP público atribuído à interface "externa" do roteador NAT. O roteador NAT rastreia o pedido de forma que a resposta seja roteada de volta ao cliente quando ele é recebido da Internet.

    
por 29.10.2014 / 16:25
0

A resposta está em SPI - Stateful Packet Inspection . É assim que um roteador rastreia onde enviar uma resposta em sua sub-rede. Eu não conheço todos os detalhes (eu nunca precisei saber), mas se você seguir o link você encontrará o quanto você provavelmente precisa saber. Caso contrário, uma pesquisa sobre "Stateful Packet Inspection" preencherá as lacunas.

    
por 29.10.2014 / 16:48

Tags