Jumbo Frames

O limite de 1500 bytes para o conteúdo dos frames foi criado originalmente como parte das especificações do padrão 10BASE-5, o padrão Ethernet original, de 10 megabits. A idéia era que frames muito grandes agravariam o problema das colisões, permitindo que uma única estação utilizasse o cabo durante um tempo muito longo. Além disso, frames maiores demorariam mais tempo para serem retransmitidos em caso de corrupção do conteúdo, de forma que os 1500 bytes foram aceitos como o melhor custo-benefício.

O problema é que, de lá pra cá muita muita coisa mudou. O cabeamento evoluiu, a velocidade das redes aumentou para 100, 1000 e agora para 10000 megabits (1000 vezes a velocidade do padrão original!) e, com a substituição dos hubs burros por switches, as colisões de pacotes deixaram de ser um problema.

Em uma rede de 10 megabits, é possível transmitir 819 frames com 1500 bytes de dados por segundo (lembre-se de que cada frame precisa de 26 bytes adicionais, que incluem os endereços, códigos de CRC e os demais componentes), o que faz com que cada frame demore 1221 nanosegundos para ser transmitido. Em uma rede Gigabit Ethernet, onde a velocidade é 100 vezes maior, o tempo de transmissão de cada frame cai para apenas 12 nanosegundos.

Como o processo de verificação do conteúdo dos frames consome processamento, trabalho que aumenta proporcionalmente conforme aumenta o volume de frames transmitidos, a velocidade das transferências acaba sendo limitada não apenas pelo desempenho das placas, mas também pelo desempenho do processador principal.

De uma forma geral, transferir 80 mil frames (que equivale a cerca de 1 segundo de transferência em uma rede gigabit) consome cerca de 1 GHz de ciclos de processamento, aos quais se soma o trabalho necessário para processar os pacotes TCP/IP resultantes. Isso acaba limitando severamente a taxa de transferência de dispositivos com pouco processamento, como no caso de um NAS ou de um PC antigo, além de aumentarem a utilização do processador mesmo nas máquinas mais parrudas.

Nas redes de 10 e 100 megabits isso não chegava a ser um grande problema, mas a popularização das redes Gigabit Ethernet trouxe o assunto à tona. Percebendo a possibilidade de melhorarem o desempenho de seus produtos, muitos fabricantes passaram a desenvolver extensões proprietárias, que permitem utilizar frames maiores e assim reduzir o overhead. Estes frames gigantes são chamados de jumbo frames.

Inicialmente, estes diferentes padrões eram incompatíveis, mas, com o passar do tempo, os fabricantes concordaram em padronizar o tamanho em 9000 bytes, o que permitiu a interoperabilidade entre produtos de diferentes fabricantes.

A idéia é que o processamento necessário para verificar o CRC de um frame de 1500 bytes de dados não é muito diferente do para verificar um de 9000 bytes, de forma que o uso do processador decai brutalmente com a redução no número de frames transmitidos. Outra vantagem é que recheando cada frame com mais dados, a perda causada pelos 26 bytes adicionais decai proporcionalmente, melhorando o desempenho da rede.

O grande problema dos jumbo frames é que eles não fazem parte dos padrões Ethernet. Como aumentar o tamanho dos frames quebra a compatibilidade com os padrões de rede anteriores, o que é uma das grandes prioridades do IEEE, a situação não deve mudar a curto prazo. Os jumbo frames são essencialmente um hack não suportado, implementado de forma independente pelos fabricantes.

Para utilizá-los é necessário tomar um conjunto de cuidados:

a) Apenas placas e switches Gigabit Ethernet suportam o uso de jumbo frames, de forma que eles são utilizáveis apenas em redes baseadas em equipamentos recentes.

b) Nem todas as placas e switches oferecem suporte ao recurso, de forma que é necessário cuidado na hora da compra. Equipamentos que não suportam jumbo frames fazem com que os frames precisem ser retransmitidos ou fragmentados para atender ao limite de 1500 bytes. Com isso, forçar o uso de jumbo frames em uma rede mista acaba reduzindo o desempenho da rede em vez de aumentar.

c) Como não existe um padrão oficial, problemas de compatibilidade entre produtos de diferentes fabricantes são comuns.

d) O uso dos jumbo frames só oferece ganhos práticos durante as transferências de grandes arquivos. Se a rede é predominantemente usada para compartilhamento da conexão, jogos em rede, streaming de vídeo e audio, impressão e transferência de pequenos arquivos, você não vai perceber diferença alguma.

Para usar o recurso, procure pela opção nas propriedades do driver da placa de rede. Quase todas as placas atuais oferecem suporte ao recurso, mas ele vem desativado por padrão, de forma que você precisa ativar a opção em todos os micros:

No Linux, a configuração é feita usando o ifconfig, através do comando abaixo. Não esqueça de adicioná-lo a algum dos scripts de inicialização do sistema para que ele passe a ser executado automaticamente durante o boot:

# ifconfig eth0 mtu 9000 up

Caso você esteja usando um switch gerenciável, verifique também se a opção está ativada na configuração do switch, como no exemplo abaixo. No caso dos switches unmanaged (que não possuem interface de configuração), os jumbo frames são automaticamente usados, quando suportados.

Ao utilizar um switch com suporte a VLANS, é possível também criar redes virtuais separadas para os dispositivos com suporte a jumbo frames e para os demais, permitindo assim que eles convivam de forma pacífica.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X