O que é MTU (unidade máxima de transmissão)?

Unidade máxima de transmissão (MTU) é uma medida em bytes dos maiores pacotes de dados que um dispositivo conectado à internet pode aceitar.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definição de 'MTU'
  • Saiba como funciona a fragmentação de IP
  • Saiba mais sobre a descoberta de caminho MTU no IPv4 e IPv6

Copiar o link do artigo

O que é MTU?

Em uma rede, a unidade máxima de transmissão (MTU) é uma medida que representa o maior tamanho do pacote de dados que um dispositivo conectado à rede pode aceitar. Pense nisso como um limite de altura para passagens sob rodovias ou túneis. Carros e caminhões que ultrapassam o limite de altura não podem passar, assim como os pacotes que excedem a MTU de uma rede não podem passar por ela.

No entanto, ao contrário de carros e caminhões, os pacotes de dados que excedem o MTU são divididos em partes menores, para que possam passar. Esse processo é chamado de fragmentação. Os pacotes fragmentados são remontados quando alcançam seu destino.

A MTU é medida em bytes — um "byte" é igual a 8 bits de informação, o que significa 8 uns e zeros. O tamanho máximo da MTU é 1.500 bytes.

O que é um pacote?

Todos os dados enviados pela internet são divididos em partes menores, chamadas de pacotes. Por exemplo, quando o servidor web mostra uma página no notebook do usuário, os dados que formam essa página são transmitidos pela internet na forma de uma série de pacotes. O notebook recebe esses pacotes e remonta a página da web original completa.

Os pacotes de dados têm duas partes principais: o cabeçalho e a carga. O cabeçalho contém informações sobre os endereços de origem e destino do pacote, já a carga é o que está dentro do pacote. Pense no cabeçalho como uma etiqueta de frete fixada no pacote e na carga como o que está dentro do pacote. (No entanto, os pacotes na internet têm vários cabeçalhos anexados por diferentes protocolos de rede).

A MTU é quase sempre usada em referência a pacotes da Camada 3* ou pacotes que usam o protocolo da internet (IP). A MTU mede o pacote como um todo, incluindo todos os cabeçalhos e a carga. Isso inclui o cabeçalho IP e o cabeçalho TCP (Protocolo de Controle de Transmissão), que geralmente somam até 40 bytes ao tamanho.

*O Modelo OSI divide as funções básicas da internet em sete camadas; e a camada 3 é a camada de rede, onde ocorre o roteamento.

Quando os pacotes são fragmentados?

Quando dois dispositivos de computação criam uma conexão e começam a trocar pacotes, esses pacotes são enviados por diversas redes. Por isso, é necessário considerar não só a MTU dos dois dispositivos que estão se comunicando, mas também todos os roteadores, comutadores e servidores que estão no meio do caminho entre eles. Os pacotes que excedem a MTU em qualquer ponto do caminho de rede são fragmentados.

Imagine que o Servidor A e o Computador A estão conectados, mas que os pacotes de dados trocados entre eles tenham que passar pelo Roteador B e pelo Roteador C nesse caminho. O Servidor A, o Computador A e o Roteador B têm uma MTU de 1.500 bytes. No entanto, o Roteador C tem uma MTU de 1.400 bytes. Caso o Servidor A e o Computador A não estejam cientes da MTU do Roteador C e enviarem pacotes de 1.500 bytes, todos os pacotes de dados serão fragmentados pelo Roteador B durante a transmissão.

Unidade máxima de transmissão – pacote fragmentado para se ajustar à MTU de 1.400 bytes

É importante lembrar que a fragmentação aumenta um pouco a latência e a ineficiência das comunicações de rede, então, se possível, deve ser evitada. (Equipamentos de rede desatualizados podem estar vulneráveis a ataques de negação de serviço que exploram a fragmentação, como o ataque "ping da morte").

Como funciona a fragmentação?

Todos os roteadores de rede comparam o tamanho de cada pacote de IP recebido com a MTU do próximo roteador a receber o pacote. Se o pacote exceder a MTU do próximo roteador, o primeiro roteador dividirá a carga em dois ou mais pacotes, cada um com seus próprios cabeçalhos

Cada novo pacote tem um cabeçalho copiado do pacote original (de modo que todos os pacotes tenham os endereços de IP originais da origem e do destino etc.) com algumas alterações importantes. O roteador edita determinados campos no cabeçalho do IP para indicar que os pacotes estão fragmentados e precisam ser remontados, informar quantos pacotes existem e a ordem em que estão sendo enviados.

Imagine que uma empresa de frete tem um pacote que excede os limites de peso aceito por uma de suas unidades. Em vez de se recusar a entregar o pacote, a empresa o divide em três pacotes menores. Além disso, ela duplica a etiqueta de frete e informa em uma observação que cada pacote é parte de uma série, que deve ser entregue em conjunto, ou seja, o primeiro pacote é 1 de 3, o segundo é 2 de 3 etc. (Este procedimento é uma violação de privacidade por parte da empresa de frete e não deve acontecer no mundo real).

Em quais casos não é possível realizar a fragmentação?

Existem alguns casos em que não é possível fragmentar pacotes e, portanto, eles não serão entregues se excederem a MTU de um roteador ou dispositivo ao longo do caminho de rede:

  1. A fragmentação não é permitida no IPv6. O IPv6 é a versão mais recente do protocolo da internet, embora o IPv4 ainda seja amplamente usado. Os roteadores compatíveis com IPv6 descartam todos os pacotes IPv6 que excedem a MTU, porque não conseguem fragmentá-los.
  2. Também não é possível realizar a fragmentação quando o sinalizador "Não fragmentar" estiver ativado no cabeçalho de IP do pacote.

O que é o sinalizador "Não fragmentar" em um cabeçalho de IP?

Pense no cabeçalho de IP como um formulário que o consumidor preenche ao enviar um pacote a outra pessoa. Esse formulário indica o endereço do remetente, o endereço do destinatário, o prazo de entrega do pacote e outras instruções especiais para a transportadora.

O sinalizador "Não fragmentar" é como uma instrução especial para os roteadores, uma opção que pode ser selecionada no "formulário" de um cabeçalho de IP. Assim, quando o sinalizador está ativado, não é possível fragmentar o pacote.

Todo roteador que recebe um pacote analisa o cabeçalho e verifica se há um sinalizador Não fragmentar. Se o sinalizador estiver ativado e o pacote exceder a MTU, o roteador descartará o pacote em vez de fragmentá-lo.

Além do descarte, o roteador envia uma mensagem ICPM de volta para a origem do pacote. Uma mensagem ICMP é um pacote de dados minúsculo que envia uma atualização de status. Neste caso, informa que "O roteador ou dispositivo não conseguiu entregar os pacotes porque eles eram muito grandes e não foi possível fragmentá-los".

O que é a técnica descoberta de caminho MTU?

A descoberta de caminho MTU, ou PMTUD, é o processo de descobrir a MTU de todos os dispositivos, roteadores e comutadores em um caminho de rede. Lembre-se do exemplo anterior. Se o Computador A e o Servidor A usassem a técnica PMTUD, seria possível identificar os requisitos de MTU do Roteador B e ajustar o tamanho do pacote para evitar a fragmentação.

A PMTU funciona de maneira um pouco diferente caso os dispositivos conectados estejam usando IPv4 ou IPv6:

IPv4: o IPv4 permite a fragmentação e, portanto, inclui o sinalizador Não fragmentar no cabeçalho de IP. A PMTUD no IPv4 consiste em enviar pacotes de teste ao longo do caminho de rede com o sinalizador Não fragmentar ativado. Caso um roteador ou dispositivo ao longo do caminho descarte o pacote, ele envia uma mensagem ICMP de volta informando a sua MTU. Em seguida, o dispositivo de origem diminui a MTU e envia outro pacote de teste. Esse processo se repete até que os pacotes de teste cheguem ao tamanho ideal para atravessar todo o caminho de rede sem serem descartados.

IPv6: no caso do IPv6, que não permite a fragmentação, a PMTUD funciona de forma bem semelhante. A principal diferença é que os cabeçalhos de IPv6 não têm a opção Não fragmentar e, portanto, o sinalizador não está configurado. Os roteadores compatíveis com IPv6 não fragmentam os pacotes de IPv6. Sendo assim, se os pacotes de teste excederem a MTU, os roteadores descartarão os pacotes e enviarão as mensagens ICMP correspondentes sem verificar se há um sinalizador Não fragmentar. A PMTUD do IPv6 envia pacotes de teste cada vez menores até que os pacotes possam percorrer todo o caminho da rede, assim como no IPv4.

O que é MSS?

MSS significa tamanho máximo do segmento. O MSS é usado pelo TCP na camada 4 da internet, a camada de transporte, em vez de na camada 3. O MSS só considera o tamanho da carga de cada pacote. Ele é calculado por meio da subtração do comprimento dos cabeçalhos de TCP e IP da MTU.

Enquanto os pacotes que excedem a MTU de um roteador são fragmentados ou descartados, os pacotes que excedem o MSS sempre são descartados.

Para saber mais sobre a MTU e o MSS, consulte o artigo O que é MSS?