TCP Proxy como um Proxy reverso e um balanceador de carga

Guias, Maio-28-20225 minutos de leitura

Um protocolo de controle de transporte (TCP) proxy opera na camada TCP do modelo OSI (Open System Interconnection). O servidor TCP proxy é um proxy intermediário entre o cliente e o servidor de destino. O cliente estabelece uma conexão com o servidor TCP proxy , que, por sua vez, estabelece uma conexão com o servidor de destino. O TCP

Um protocolo de controle de transporte (TCP) proxy opera na camada TCP do modelo OSI ( Open System Interconnection ). O servidor TCP proxy é um intermediário proxy entre o cliente e o servidor de destino. 

O cliente estabelece uma conexão com o servidor TCP proxy , que, por sua vez, estabelece uma conexão com o servidor de destino. O servidor TCP proxy atua como servidor e cliente para acessar serviços que restringem as conexões com base no endereço de rede.

Algumas páginas da Web são acessíveis somente a partir de máquinas internas e você recebe uma mensagem de erro de acesso negado quando as acessa de outro lugar. No entanto, você pode visualizar esta página em um navegador da Web em qualquer lugar da Internet usando um proxy em um dos computadores internos.

O servidor da Web acha que está fornecendo os dados a um cliente no computador que executa o proxy. No entanto, o proxy encaminha os dados para fora da rede para o cliente real. 

O servidor proxy aceita conexões de vários clientes e as encaminha usando várias conexões com o servidor. O cliente ou o servidor deve ler ou gravar dados em suas conexões e não deve travar o servidor proxy recusando qualquer operação a ele.

Modelo OSI - Uma prévia

Os modelos OSI conceituam o processo de rede de computadores. Ele tem sete camadas:

  • Camada física
  • Camada de enlace de dados
  • Camada de rede
  • Camada de transporte
  • Camada de sessão
  • Camada de apresentação
  • Camada de aplicativos

A camada de transporte é responsável pela transferência de dados em uma rede. Ela usa dois protocolos diferentes, o TCP e o User Datagram Protocol (UDP). O TCP é comumente usado para transferência de dados e esse protocolo orienta como enviar os dados. Ele divide a mensagem em segmentos e os envia da origem para o destino.

Conexão do soquete

Há um remetente e um receptor transmitindo pedaços de dados em circunstâncias normais. O remetente e o receptor estão em comunicação com máquinas diferentes ao mesmo tempo, portanto, o site proxy estabelece uma conexão de soquete entre o remetente e o receptor envolvidos em uma comunicação.

O soquete é uma conexão lógica entre ambos usando o IP e o número porta . O proxy estabelece uma conexão de soquete no lado do remetente e do receptor. O endereço do soquete, que consiste em um endereço IP e um número porta , é exclusivo para a comunicação entre o remetente e o destinatário.

O endereço de soquete exclusivo garante que a transmissão de dados ocorra paralelamente e que os pacotes não colidam uns com os outros.

Implementação de um Proxy na camada TCP

Um TCP proxy recebe o tráfego de entrada e abre um soquete de saída por meio do qual leva o tráfego de entrada para o servidor de destino. Ele move os dados entre o cliente e o servidor, mas não pode alterar nenhum dado, pois não o compreende.

Um proxy nessa camada tem acesso ao endereço IP e ao número porta ao qual o receptor tenta se conectar no servidor de backend. Se o servidor usar o número 3306 do porta para escutar as solicitações, o proxy o implementará nessa camada e também escutará nesse porta. 

O proxy ouve o porta e retransmite as mensagens para o servidor. O TCP proxy cria uma conexão por meio de um soquete em uma única combinação de host: porta .

A implementação de um proxy na camada de transporte é leve e rápida, pois a camada é responsável apenas pela transferência de dados.

O proxies atua como um meio de transmissão de mensagens para frente e para trás e não pode ler as mensagens. Esses proxies o ajudam a monitorar a rede, ocultar a rede interna da rede pública, enfileirar conexões para evitar a sobrecarga do servidor e limitar as conexões. É a melhor solução para serviços de balanceamento de carga que se comunicam por TCP, como o tráfego de banco de dados para MYSQL e Postgres.

TCP Proxy como reverso Proxy

Um proxy reverso aceita uma solicitação de um cliente, encaminha-a para um servidor que pode atendê-la e retorna a resposta do servidor para o cliente. Você pode implementar um proxy reverso mesmo que haja apenas um servidor ou aplicativo.

O proxy reverso é visto publicamente por outros usuários na rede. Ele é implementado na borda da rede do site para aceitar solicitações de navegadores da Web e aplicativos móveis. 

A implementação de um TCP proxy como um proxy reverso tem as seguintes vantagens:

Segurança - Aumenta a segurança da rede. Os clientes mal-intencionados não podem acessar os servidores de backend, pois eles não são visíveis para a rede externa. Eles não podem acessá-los diretamente para explorar quaisquer vulnerabilidades.

Impedir ataques DDOS - os servidores de back-end são protegidos pelo site proxy reverso para protegê-los contra a negação de serviço distribuída (DDOS).

Regulação do tráfego - pode rejeitar o tráfego de um determinado endereço IP de cliente (lista negra) ou limitar o número de conexões do cliente.

Escalabilidade e flexibilidade - é flexível alterar a configuração do backend porque o cliente só pode ver o endereço reverso de proxy. Para equilibrar a carga no servidor, você pode aumentar ou diminuir o número de servidores de acordo com o volume de tráfego variável.

Aceleração da Web - reduz o tempo necessário para gerar uma resposta para o cliente solicitante. 

Compressão - o TCP proxy responde antes de retornar ao cliente, reduzindo a quantidade de largura de banda necessária para transmitir os dados pela rede.

Criptografia - O tráfego entre o cliente e o servidor na rede requer criptografia. O processo de criptografia representa uma sobrecarga para o cliente e o servidor, pois é computacionalmente exaustivo. O site proxy reverso executa a criptografia e a descriptografia, liberando assim os servidores de back-end para se dedicarem apenas ao atendimento dos clientes.

Cache - O proxy reverso armazena uma cópia da solicitação em seu sistema local antes de atendê-la ao cliente. O proxy reverso atende à solicitação a partir do cache em vez de encaminhá-la ao servidor e buscá-la quando o cliente a solicita novamente. 

TCP Proxy como um balanceador de carga

Um balanceador de carga é um proxy que gerencia o tráfego quando há vários servidores. Ele permite que o servidor funcione com eficiência e dimensione o servidor quando o tráfego é alto. O balanceador de carga distribui o tráfego entre os servidores e encaminha as conexões originais diretamente dos clientes para um servidor de backend íntegro sem interrupção.

O TCP proxy usa o retorno direto do servidor para levar as respostas dos servidores de backend íntegros diretamente aos clientes e não aos balanceadores de carga. O servidor de backend encerra o tráfego da camada de soquete seguro (SSL) e não o balanceador de carga. 

Afinidade de sessão

O tráfego TCP entre o cliente e o servidor oferece suporte à afinidade de sessão. Afinidade de sessão é quando o cliente pode enviar solicitações para o mesmo servidor de back-end, desde que ele seja íntegro e capaz. 

Servidores de monitoramento

O TCP proxy realiza verificações de integridade do servidor de backend monitorando periodicamente sua prontidão. Quando o servidor de backend não consegue lidar com o tráfego, ele é um nó não saudável, e o servidor redireciona o tráfego para outros servidores de backend saudáveis.

O TCP proxy apresenta as seguintes características quando atua como um balanceador de carga:

Comportamento assíncrono - O TCP proxy tem um comportamento assíncrono, o que significa que, se um cliente interromper repentinamente a leitura do soquete para o proxy, os outros clientes não deverão perceber nenhuma interrupção do serviço por meio do proxy.

Suporte a outros protocolos - O TCP proxy oferece suporte a HTTP e também a outros protocolos de camada de aplicativo, como FTP.

Atuar como um Proxy reverso - Um usuário pode usar um TCP proxy como um proxy reverso com base no local de implementação. No lado do servidor, ele regula o tráfego do cliente para o usuário. 

Opção de escala de janela

A janela de recebimento do TCP é a quantidade de dados que um receptor pode manipular em bytes que podem ser armazenados em buffer durante uma conexão. O receptor deve atualizar o tamanho de sua janela antes de iniciar a comunicação e aguardar a confirmação. 

O remetente envia dados com base no tamanho da janela. O design da pilha TCP/IP do Windows se ajusta às mudanças no tamanho dos dados e usa um tamanho de janela maior. Cada vez que o remetente transmite, ele usa um tamanho de janela maior do que o usado na transmissão anterior.

O tamanho da janela não é fixo porque você pode redimensioná-lo ajustando o tamanho máximo do segmento (MSS). O cliente e o servidor negociam o MSS durante a configuração da conexão. O ajuste da janela de recepção para incrementos do MSS aumenta a porcentagem de segmentos TCP de tamanho normal usados durante transmissões de dados em massa.

O tamanho da janela de recepção é determinado da seguinte maneira:

O cliente envia a primeira solicitação de conexão para o servidor anunciando um tamanho de janela de recepção de 16K (16.384 bytes). Quando a conexão é estabelecida, o cliente ajusta o tamanho da janela de recepção com base no MSS. O tamanho da janela é ajustado para quatro vezes o MSS, até um tamanho máximo de 64 K, a menos que a opção de dimensionamento de janela seja usada.

Perguntas frequentes

1. Qual é a diferença entre um proxy reverso e um proxy de balanceamento de carga?

Inverter ProxyBalanceamento de carga Proxy
Um proxy reverso é um aplicativo intermediário que é implementado entre o cliente e o servidor.Um balanceamento de carga proxy distribui o tráfego de maneira uniforme e eficiente entre vários servidores de back-end.
O proxies reverso aumenta a segurança dos servidores da Web, garantindo que os clientes não se comuniquem diretamente com o servidor original.Há vários servidores de back-end e, no caso de uma interrupção de rede ou ataque DDoS, um balanceamento de carga proxy ajuda a evitar o fechamento do site, pois o tráfego pode ser redirecionado para um servidor alternativo.
The process: – The user makes an HTTP request. – The reverse proxy receives it. – The reverse proxy either allows or denies the user’s request. – If allowed, the reverse proxy forwards the request to the server. – If denied, the reverse proxy sends an error message to the client. – The server sends the corresponding reply to the reverse proxy.The reverse proxy forwards the server’s response to the client.The process:– The load balancer receives the client’s request.– The load balancer sends the request to a single server in the group of backend servers.– The selected server sends the response back to the load balancer.– The load balancer forwards the server’s response to the user.
Exemplos de alguns sites reversos de código aberto proxies sãoNGINXApache HTTP ServerApache Traffic ServerExemplos de alguns algoritmos de balanceamento de carga sãoHashRound RobinPower of Two Choices

2. Diferença entre um HTTP proxy e um TCP proxy.

HTTP proxyTCP proxy
Em uma zona desmilitarizada (DMZ), ele é usado como um balanceador de carga ou um provedor de IP público para proteger os servidores de back-end.Ele é usado como um proxy reverso para uma conexão TCP entre o cliente e o servidor.
Cria uma solicitação/resposta HTTP.Abre uma conexão de soquete TCP e move os dados por ela.
O HTTP proxy lê o endereço do host e se conecta ao host apropriado.O TCP proxy não altera os dados, pois não consegue entendê-los.
Além de HTTP, ele pode atender a solicitações HTTPS e FTP.Além do TCP, ele pode atender a solicitações de HTTP e FTP.

Considerações finais

Um TCP proxy atua como um proxy reverso e também como um balanceador de carga. Ambos os tipos de aplicativos residem entre clientes e servidores, aceitando solicitações dos primeiros e fornecendo respostas dos segundos.

Às vezes, o proxy reverso e o balanceador de carga podem parecer a mesma coisa e gerar confusão. Explorar quando e por que você pode implantá-los em um site o ajudará a entender isso.

A coleta de dados é uma tarefa imensa e importante para uma empresa estabelecida ou uma startup. É um processo que requer tendências de mercado, análise da concorrência e preferências dos clientes para a tomada de decisões. 

ProxyScrape oferece proxies premium, proxies residencial e proxies dedicado para coletar grandes quantidades de dados de sites. Há uma combinação flexível de proxies para escolher e o preço também é acessível. Continue acessando nosso blog para obter mais informações sobre o recém-lançado proxies, seus usos e os benefícios que o ProxyScrape oferece.