Jumbo Frames – Para que Servem, Quando Usar e Quando Não Usar?

Configurar Jumbo frames significa alterar o MTU (Maximum Transmission Unit) da placa de rede dos 1500 bytes padrões para 9000 bytes, isso faz com que os pacotes de comunicação passem a ter um tamanho máximo de 9000 bytes, 6 vezes o padrão original de 1500 bytes.

O padrão original de 1500 bytes tem origem nos primórdios da Internet e é mantido por compatibilidade com equipamentos mais antigos. Ao mesmo tempo que apenas as placas de rede mais recentes suportam jumbo frames.

Imagem via Thecus Blog

Imagem via Thecus Blog

A vantagem de usar um tamanho de pacote maior é diminuir o overhead relativo; um pacote TCP/IP em IPv4 tem 40 bytes de cabeçalho, usado para endereçar IPs, portas e outras opções de controle da conexão, isso nos cria o seguinte overhead:

Jumbo Frames 01Em um exemplo real, na transmissão de um arquivo de 1Gb:

Jumbo Frames 02Na prática, essa conexão com jumbo frames usou 6,1 vezes menos pacotes para transmitir a mesma quantidade de dados. Exemplificando:

Materia Jumbo Frames 05

Transferência com pacotes de 1500 bytes

Materia Jumbo Frames 06

Transferência com pacotes jumbo

Com 6,1 vezes menos pacotes, o primeiro ganho é o sistema operacional ter que processar menos pacotes, isso é extremamente benéfico em termos de uso de CPU.

O segundo ganho é o total de bytes transmitidos, que podemos calcular considerando o overhead:

Materia Jumbo Frames 03 Total de 23,4 Mbytes transferidos a menos usando jumbo frames.

A terceira diferença aparece no tempo de transmissão do arquivo. Em uma rede de 10Mbits/s, temos:

Materia Jumbo Frames 04Uma redução de 19 segundos no nosso exemplo, menos 2% no tempo de transmissão com jumbo frames.

Por isso é muito importante habilitar Jumbo Frames em uma rede iSCSI. A chance é que essa rede transmita centenas ou milhares de Gigabytes por dia, com isso, a diferença de menor uso de CPU e de tempo de rede passa a ser mais significativa ainda.

O principal problema de ligar Jumbo Frames acontece ao comunicar com equipamentos que não tem os Jumbo Frames ligados.
Quando vai ocorrer essa comunicação, o IP precisa renegociar o tamanho máximo de pacote daquela conexão. Para isso, é usado o PMTU, um protocolo baseado em ICMP.

Ao tentar transmitir um pacote com tamanho maior que o permitido para a Internet, o roteador de borda tem duas alternativas: renegociar o tamanho máximo de pacote usando PMTU, ou fragmentar ele mesmo o pacote, consumindo mais CPU.

Materia Jumbo Frames 08b

Negociação PMTU

A primeira opção é a mais comum, mas envolve mais tráfego de rede na negociação da conexão, causando um delay inicial. Pode acontecer também do servidor ou cliente ter pacotes ICMP bloqueados e nunca negociar o PMTU, nesse caso, a conexão é interrompida.

Materia Jumbo Frames 07

Fragmentação no Roteador

Isso causa um fenômeno difícil de diagnosticar, com sintomas bem estranhos: um site pode carregar normal, mas um download dá problemas; recebe e envia e-mails pequenos, mas se tiver anexo não vai; a conexão estabelece, mas não consegue transferir dados.

Materia Jumbo Frames 09

Negociação PMTU interrompida

Em um ambiente controlado, você pode ligar os Jumbo Frames (no Switch e nas portas dos servidores) e fazer a configuração correta nos hosts. Por exemplo, em uma SAN iSCSI os Jumbo Frames são boa prática, mas também é boa prática que essas redes sejam isoladas da LAN.

Ao se comunicar com a Internet, mais hora, menos hora, vai ser preciso executar o processo de PMTU, causando um delay inicial nessas conexões e usando mais processamento, anulando o benefício inicial e algumas vezes gerando problemas difíceis de diagnosticar. Por isso, para comunicação com a Internet, ainda não é recomendado usar Jumbo Frames.

Publicado originalmente em Blog Blue Solutions

O post Jumbo Frames – Para que Servem, Quando Usar e Quando Não Usar? apareceu primeiro em Profissionais TI.

Publicado em Blog, Mundo da TI