O balanceamento de carga da Camada 4 usa informações definidas na camada de transporte de rede (Camada 4) como base para decidir como distribuir solicitações de clientes em um grupo de servidores. Especificamente para o tráfego da Internet, um balanceador de carga de Camada 4 baseia a decisão de balanceamento de carga nos endereços IP de origem e destino e nas portas registradas no cabeçalho do pacote, sem considerar o conteúdo do pacote.
Há sete camadas de rede no total, definidas pelo Modelo de Referência de Interconexão de Sistemas Abertos [OSI]. Para obter mais informações, consulte Camadas nos modelos OSI e Internet abaixo.
Para obter mais informações sobre balanceamento de carga, consulte Balanceamento de carga de aplicativos com NGINX Plus .
Hoje, o termo “balanceamento de carga da Camada 4” se refere mais comumente a uma implantação em que o endereço IP do balanceador de carga é aquele anunciado aos clientes para um site ou serviço (via DNS, por exemplo). Como resultado, os clientes registram o endereço do balanceador de carga como o endereço IP de destino em suas solicitações.
Quando o balanceador de carga da Camada 4 recebe uma solicitação e toma a decisão de balanceamento de carga, ele também executa a Tradução de Endereço de Rede (NAT) no pacote de solicitação, alterando o endereço IP de destino registrado do seu próprio para o do servidor de conteúdo escolhido na rede interna. Da mesma forma, antes de encaminhar as respostas do servidor aos clientes, o balanceador de carga altera o endereço de origem registrado no cabeçalho do pacote do endereço IP do servidor para o seu próprio. (Os números das portas TCP de destino e de origem registrados nos pacotes às vezes também são alterados de maneira semelhante.)
Os balanceadores de carga da Camada 4 tomam suas decisões de roteamento com base nas informações de endereço extraídas dos primeiros pacotes no fluxo TCP e não inspecionam o conteúdo dos pacotes. Um balanceador de carga de Camada 4 geralmente é um dispositivo de hardware dedicado fornecido por um fornecedor e executa software de balanceamento de carga proprietário, e as operações NAT podem ser executadas por chips especializados em vez de software.
O balanceamento de carga da camada 4 era uma abordagem arquitetônica popular para o manuseio de tráfego quando o hardware comum não era tão poderoso quanto é agora, e a interação entre clientes e servidores de aplicativos era muito menos complexa. Ele requer menos computação do que métodos de balanceamento de carga mais sofisticados (como a Camada 7), mas a CPU e a memória agora são suficientemente rápidas e baratas, de modo que a vantagem de desempenho do balanceamento de carga da Camada 4 se tornou insignificante ou irrelevante na maioria das situações.
Os balanceadores de carga da Camada 7 operam no nível mais alto do modelo OSI, a camada de aplicação (na Internet, HTTP é o protocolo dominante nessa camada). Os balanceadores de carga da Camada 7 baseiam suas decisões de roteamento em várias características do cabeçalho HTTP e no conteúdo real da mensagem, como a URL, o tipo de dados (texto, vídeo, gráficos) ou informações em um cookie.
Levar em consideração tantos outros aspectos das informações que estão sendo transferidas pode tornar o balanceamento de carga da Camada 7 mais caro do que o da Camada 4 em termos de tempo e poder computacional necessário, mas ainda assim pode levar a uma maior eficiência geral. Por exemplo, como um balanceador de carga da Camada 7 pode determinar que tipo de dados (vídeo, texto e assim por diante) um cliente está solicitando, você não precisa duplicar os mesmos dados em todos os servidores com balanceamento de carga.
Balanceadores de carga modernos de uso geral, como o NGINX Plus e o software NGINX de código aberto, geralmente operam na Camada 7 e servem como proxies reversos completos. Em vez de gerenciar o tráfego pacote por pacote, como os balanceadores de carga da Camada 4 que usam NAT, os proxies de balanceamento de carga da Camada 7 podem ler solicitações e respostas na íntegra. Eles gerenciam e manipulam o tráfego com base em uma compreensão completa da transação entre o cliente e o servidor de aplicativos.
Alguns balanceadores de carga podem ser configurados para fornecer balanceamento de carga de Camada 4 ou Camada 7, dependendo da natureza do serviço. Conforme mencionado anteriormente, o hardware moderno geralmente é poderoso o suficiente para que a economia em custos computacionais do balanceamento de carga da Camada 4 não seja grande o suficiente para superar os benefícios de maior flexibilidade e eficiência do balanceamento de carga da Camada 7.
NGINX Plus e NGINX são as melhores soluções de balanceamento de carga usadas por sites de alto tráfego, como Dropbox, Netflix e Zynga. Mais de 350 milhões de sites no mundo todo contam com o NGINX Plus e o NGINX Open Source para entregar seu conteúdo de forma rápida, confiável e segura.
Como um balanceador de carga baseado em software, o NGINX Plus é muito mais barato do que soluções baseadas em hardware com recursos semelhantes. Os recursos abrangentes de balanceamento de carga do NGINX Plus permitem que você crie uma rede de entrega de aplicativos altamente otimizada.
Ao inserir o NGINX Plus como um balanceador de carga na frente do seu farm de servidores, ele aumenta a eficiência, o desempenho, a confiabilidade e a escala de todo o seu site. O NGINX Plus ajuda você a maximizar a satisfação do cliente e o retorno sobre seus investimentos em TI.
Para tráfego de Internet, referir-se ao balanceamento de carga de “Camada 4” e “Camada 7” é uma abreviação conveniente, mas não estritamente precisa. Se você estiver interessado, continue lendo.
A noção de sete camadas de rede vem do Modelo de Referência de Interconexão de Sistemas Abertos (OSI). O modelo separa as funções de rede em sete camadas abstratas, comumente chamadas por seus números (Camada 1 a Camada 7). Em cada camada, há padrões que definem como os dados são empacotados e transportados. Entre outras coisas, os padrões definem como segmentar o fluxo de bits que constituem uma solicitação ou resposta em pacotes discretos chamados unidades de dados de protocolo (PDUs). Os padrões também definem os metadados adicionados a cada PDU na forma de um cabeçalho; os metadados podem especificar os endereços dos hosts de origem e destino, por exemplo.
Atribuir diferentes aspectos da funcionalidade da rede a diferentes camadas simplifica o processamento em cada camada, porque um protocolo só precisa saber como lidar com as PDUs de sua própria camada e quais metadados incluir no cabeçalho para que os protocolos nas camadas adjacentes possam reempacotar as PDUs em seu próprio nível de segmentação de dados.
A distribuição das funções de rede entre os protocolos básicos para tráfego na World Wide Web – que são coletivamente chamados de conjunto de protocolos de Internet (IP) – não está exatamente em conformidade com o modelo OSI. Isso ocorre porque o conjunto de IP foi definido e implementado antes do modelo OSI finalizado ser publicado em 1984. No entanto, os vários protocolos no conjunto IP executam funções distintas que correspondem aproximadamente às camadas OSI.
Existem vários protocolos definidos em cada nível, mas os seguintes são os protocolos e níveis relevantes para o balanceamento de carga do tráfego do site:
Como esta lista deixa claro, referir-se ao “balanceamento de carga da Camada 4” do tráfego da Internet é uma abreviação conveniente, mas o termo mais preciso é “balanceamento de carga da Camada 3/4” – porque o balanceador de carga baseia sua decisão nos endereços IP dos servidores de origem e destino (Camada 3) e no número da porta TCP dos aplicativos (Camada 4). O termo mais exato para “balanceamento de carga da Camada 7” pode ser “balanceamento de carga das Camadas 5 a 7”, porque o HTTP combina as funções das Camadas OSI 5, 6 e 7.