A promessa e o perigo dos quadros Jumbo

Estamos na interseção de duas tendências:

  1. A maioria dos equipamentos de rede doméstica, inclusive roteadores, tem fez a transição para a gigabit ethernet.
  2. A geração, o armazenamento e a transmissão de grandes arquivos de vídeo de alta definição são se tornando comum.

Se isso se parece com o seu caso ou com o de alguém que você conhece, há um ajuste que você deve conhecer e que pode melhorar bastante a taxa de transferência da sua rede local: habilitar o Jumbo Frames.

O pacote UDP típico tem a seguinte aparência:

diagrama de pacotes udp

Mas o tamanho padrão dessa carga útil de dados foi estabelecido há anos. No contexto da gigabit ethernet e da quantidade de dados que transferimos hoje, isso parece um pouco… anêmico.

A MTU original de 1.518 bytes para Ethernet foi escolhida devido às altas taxas de erro e à baixa velocidade das comunicações. Se um pacote corrompido for enviado, apenas 1.518 bytes deverão ser reenviados para corrigir o erro. Entretanto, cada quadro exige que o hardware e o software da rede o processem. Se o tamanho do quadro for aumentado, a mesma quantidade de dados poderá ser transferida com menos esforço. Isso reduz a utilização da CPU (principalmente devido à redução de interrupções) e aumenta a taxa de transferência, permitindo que o sistema se concentre nos dados dos quadros, e não nos quadros ao redor dos dados.

Eu uso meu querido PC de home theater com eficiência energética como um servidor de mídia sempre ativo, e estou constantemente transferindo gigabytes de vídeo, música e fotos para ele. Vamos tentar habilitar jumbo frames para minha pequena rede.

A primeira coisa que o senhor precisa fazer é atualizar seus drivers de hardware de rede para as versões mais recentes. I aprendi isso da maneira mais difícilMas se o senhor quiser brincar com recursos avançados de rede, como Jumbo Frames, precisará dos melhores e mais recentes drivers de hardware de rede. É improvável que o que foi incluído no sistema operacional seja suficiente. Verifique no site do fabricante do chipset de rede.

Quando o senhor tiver esses drivers atualizados, procure a configuração Jumbo Frames nas propriedades avançadas da placa de rede. Veja o que acontece em dois chipsets ethernet diferentes:

gigabit jumbo marvell yukon configurações avançadas

gigabit jumbo realtek advanced settings

Esse é o meu computador e o HTPC, respectivamente. Fiquei um pouco incomodado ao perceber que nenhum dos drivers reconhece exatamente o mesmo tamanho de carga útil de dados. Ele é denominado “Jumbo Frame” com configurações de 2 KB a 9 KB em incrementos de 1 KB no Realtek e “Jumbo Packet” com configurações de 4088 ou 9014 no Marvell. Eu sei que o tecnicamente, para que os jumbo frames funcionem, todos os dispositivos de rede na sub-rede precisam concordar com o tamanho da carga útil dos dados. Não consegui saber exatamente o que o para fazer, então eu os configurei como o senhor vê acima.

(Não alterei nada em meu roteador/switch, que no momento é o D-Link DGL-4500; observe que o a maioria dos suporta jumbo frames, mas o senhor deve sempre verificar no site do fabricante para ter certeza).

Em seguida, executei alguns testes para ver se havia alguma diferença. Comecei com uma simples cópia de arquivo.

Configurações de rede padrão

gigabit jumbo frames disabled file copy results

Jumbo Frames habilitados

gigabit jumbo frames enabled file copy results

Minha cópia de arquivo passou de 47,6 MB/s para 60,0 MB/s. Nada mal! Mas esse é um tipo de teste muito ad hoc. Vamos ver o que o Referência de rede PassMark tem a dizer.

Configurações de rede padrão

gigabit jumbo frames desativados, gráfico de taxa de transferência

Jumbo Frames ativados

gigabit jumbo frames habilitados, gráfico de taxa de transferência

Isso confirma o que vi com a cópia de arquivos. Com os jumbo frames ativados, passamos de 390.638 kilobits/s para 477.927 kilobits/s em média. Uma melhoria sólida de 20%.

Agora, os quadros jumbo não são uma bala de prata. Há um motivo pelo qual os jumbo frames nunca são ativados por padrão: alguns equipamentos de rede não conseguem lidar com tamanhos de quadro fora do padrão. Como todos os desvios das configurações padrão, é absolutamente possível fazer com que sua rede pior ao ativar os quadros jumbo, portanto, proceda com cautela. Este artigo do SmallNetBuilder descreve algumas das armadilhas que o:

1) Para que um quadro grande seja transmitido intacto de ponta a ponta, todos os componentes do caminho devem suportar esse tamanho de quadro.

O(s) switch(s), roteador(es) e NIC(s) de uma extremidade à outra devem todos suportam o mesmo tamanho de transmissão de quadro jumbo para uma sessão de comunicação de quadro jumbo bem-sucedida.

2) Os switches que não suportam jumbo frames cair quadros jumbo.

No caso de ambas as extremidades concordarem com a transmissão de quadros jumbo, ainda é necessário que haja suporte de ponta a ponta para quadros jumbo, o que significa que todos os switches e roteadores devem estar habilitados para quadros jumbo. Na camada 2, nem todos os switches gigabit suportam jumbo frames. Os que suportam encaminharão os jumbo frames. Os que não suportam, descartam os quadros.

3) Para que um pacote jumbo passe por um roteador, as interfaces de entrada e saída devem suportar o tamanho maior do pacote. Caso contrário, os pacotes serão descartados ou fragmentados.

Se o tamanho da carga útil dos dados não puder ser negociado (isso é conhecido como PMTUD, packet MTU discovery) devido a firewalls, os dados serão descartados sem aviso, ou “blackholed”. E se o MTU não for compatível, os dados terão que ser fragmentados em um tamanho compatível e retransmitidos, reduzindo a taxa de transferência.

Além desses problemas, os pacotes grandes também podem prejudicar a latência dos aplicativos de jogos e de voz sobre IP. Maior nem sempre é melhor.

Ainda assim, se o senhor transfere regularmente arquivos grandes, os quadros jumbo são definitivamente vale a pena dar uma olhada. Meus testes mostraram um ganho sólido de 20% na taxa de transferência e, para o tipo de atividade em minha pequena rede, não consigo pensar em nenhuma desvantagem.