Como um proxy HTTP é diferente de uma caixa NAT?


2

Um host em uma LAN com IP (10.0.0.1, porta TCP 8888) se conecta a um servidor sem saber que há uma caixa NAT na borda da rede. A caixa NAT é burra e apenas traduz a porta 8888 para alguma outra porta 5555 e altera o IP para o endereço IP público (digamos 205.209.96.96) e salva em um dicionário a chave, par de valores: (5555,10.0.0.1: 8888) .

Quando recebe uma resposta, faz a tradução reversa e encaminha o pacote de volta ao host. Como a operação de um proxy HTTP é diferente disso? Eu entendo que o proxy pode fazer outras coisas como filtragem, cache etc, mas como é a operação básica do proxy diferente de uma caixa NAT?

Respostas:


2

O proxy HTTP não funciona para nada, exceto HTTP.

Não funcionará para conexões OpenVPN, não funcionará para tráfego P2P, jogos 3D multiplayer, etc.

O NAT é bom para todos os tipos de TCP do tráfego. Muitos deles também lidam com UDP e ICMP (de forma limitada, como o ICMP não tem portas).


2

O NAT funciona em um nível de protocolo mais baixo - está apenas reescrevendo o endereço IP e a porta; ele não interrompe a conexão TCP (e, portanto, é mais transparente para os protocolos de nível superior).

Um proxy HTTP faz algo bem diferente: primeiro, a conexão TCP termina ali e abre uma conexão completamente diferente para o host de destino. Em segundo lugar, ele faz seu próprio processamento e transformações nas solicitações e respostas HTTP.


Onde posso ler mais sobre o funcionamento interno de um proxy HTTP?
Bruce

1

Eles são semelhantes em muitos aspectos, são ambos Gateways. Um proxy HTTP opera no nível de uma solicitação HTTP. Um roteador que executa NAT opera no nível de conexão TCP / IP. Muitos roteadores de rede também executam as duas funções.


"eles são ambos Gateways" - e a semelhança termina aí mesmo.
Piskvor

Eu não vejo porque o downvote de qualquer maneira ...
m0skit0
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.