# O que são Jumbo Frames, para que servem, quando usar e quando não usar?

Dizemos que usamos Jumbo Frames ao alterar o MTU (*Maximum Transmission Unit*) da placa de rede dos 1500 bytes padrões para 9000 bytes.

Isso significa que o tamanho dos pacotes enviados pela interface de rede passa para 9000 bytes ao invés dos 1500 originais, ou seja, os pacotes ficam 6 vezes maiores.

O padrão original de 1500 bytes tem origem nos primórdios das interfaces de rede e da Internet, mais especificamente quando determinaram o padrão 10BASE-5 (10Mbits/s), e é mantido por compatibilidade com equipamentos mais antigos. Ao mesmo tempo que apenas as placas de rede mais recentes (de 1Gbit/s para cima) suportam *jumbo frames*.

Essa configuração é normalmente feita no Sistema Operacional, nas configurações da interface de rede, e nos Switches e Roteadores, também para cada interface.

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*:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1682384768944/cd84122d-51b2-455b-8a6b-3c508c56b5cc.webp align="center")

Ou seja, utilizando os pacotes comuns, 2,66% do tráfego é apenas para os cabeçalhos, enquanto que usando *jumbo frames* representa apenas 0,44% do tráfego.

Em um exemplo real, na transmissão de um arquivo de 1Gbyte:

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-02.png&nocache=1 align="left")

Na prática, uma conexão com *jumbo frames* usa até **6,1 vezes menos pacotes** para transmitir a mesma quantidade de dados, exemplificando:

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-05-1.png&nocache=1 align="left")

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-06-1.png&nocache=1 align="left")

Com menos pacotes, o primeiro ganho é para o sistema operacional, que precisa 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*:

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-03.png&nocache=1 align="left")

Total de 23,4 Mbytes transferidos a menos usando *jumbo frames*, cerca de 2% a menos de tráfego.

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

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-04.png&nocache=1 align="left")

Uma redução de 19 segundos no nosso exemplo, ou 2% a menos no tempo de transmissão usando *jumbo frames* versus pacotes comuns.

### Quando usar?

Em um ambiente controlado, você pode ligar os *jumbo frames* (é necessário configurar no Switch e nas portas dos servidores) e fazer a configuração correta nos hosts.

Por exemplo, em uma SAN iSCSI o uso de *jumbo frames* são boa prática, mas também é boa prática que essas redes sejam isoladas da LAN comum.

É comum que essa rede transmita 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.

### Quando não usar?

O principal problema de habilitar *jumbo frames* acontece ao comunicar com equipamentos que não tem os *jumbo frames* ligados.

Quando ocorre essa comunicação, o sistema operacional precisa renegociar o tamanho máximo de pacote daquela conexão; pra isso, é usado o PMTU, um protocolo baseado em ICMP.

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-08b-1.png&nocache=1 align="left")

Nesse exemplo, a primeira conexão iniciou-e com um pacote jumbo de 9000 bytes, mas recebeu um pacote de volta e reiniciou a conexão usando pacotes de 1500 bytes.

Isso causa um pequeno atraso no início da conexão.

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:

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-07-1.png&nocache=1 align="left")

A primeira opção é a mais comum, mas envolve mais tráfego de rede na negociação da conexão, causando um delay inicial. A segunda opção, ilustrada na figura acima, usa mais recursos do roteador, e dependendo da capacidade de CPU do mesmo, pode acabar causando lentidão ou perda de pacotes.

Pode acontecer também do servidor ou cliente ter pacotes ICMP bloqueados e nunca renegociar o PMTU, nesse caso, a conexão é interrompida:

![](https://skymonitor.com/wp-content/webpc-passthru.php?src=http://skymonitor.com/wp-content/uploads/2019/11/Materia-Jumbo-Frames-09-1.png&nocache=1 align="left")

Isso causa um fenômeno difícil de diagnosticar, com **sintomas bem estranhos**:

* um site pode carregar normal, mas um download apresenta problemas;
    
* recebe e envia e-mails pequenos, mas se tiver anexo não transmite;
    
* a conexão estabelece, mas não consegue transferir dados.
    

### Vale a pena usar Jumbo Frames?

Para apenas 2% de ganho? Sim, quando falamos de ambientes de altíssima performance, como redes iSCSI, clusters de servidores ou ambientes de virtualização.

Esse ganho de 2% a menos de tráfego e 6 vezes menos pacotes também se refletem no uso de CPU, que pode consumir até 1Ghz de uso apenas para processar os pacotes, essa economia pode ser o suficiente para suportar mais algumas centenas de usuários.

Já, ao se comunicar com a Internet, em algum momento vai precisar executar o processo de PMTU, causando um *delay* inicial nas conexões e usando mais processamento, anulando o benefício inicial e algumas vezes gerando problemas difíceis de diagnosticar, por isso, na comunicação com a Internet ainda não é recomendado o uso de *jumbo frames*.

**Texto original:** skymonitor.com via Fernando Ulisses dos Santos
