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.
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:
Em um exemplo real, na transmissão de um arquivo de 1Gb:
Na prática, essa conexão com jumbo frames usou 6,1 vezes menos pacotes para transmitir a mesma quantidade de dados. Exemplificando:
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:
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:
Uma 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.
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.
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.
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
3 Comentários
Parabéns pelo conteúdo! Muito bem escrito, com exemplos práticos, cálculos e etc… Além disso está com um linguagem bem simples de entender. Muito bom mesmo!
OBRIGADO. Serio! conteúdo rico, e ao mesmo tempo de fácil absorção.
Excelente artigo! muito bem explicado, obrigado pela aula!
Abraços
Ronan