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, uma conexão com jumbo frames usa 6,1 vezes menos pacotes para transmitir a mesma quantidade de dados, exemplificando:

Transferência de pacotes TCP/IP comuns

Transferência de pacotes TCP/IP com jumbo frames

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, numa transmissão, 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; pra isso, é usado o PMTU, um protocolo baseado em ICMP.

Negociação PMTU

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.

Fragmentação de pacotes no roteador de borda

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.

Problema na negociação do PMTU

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 precisar 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.