O que é MTU – Maximum Transmission Unit
MTU – Maximum Transmission Unit
Existe um limite no tamanho dos dados transmitidos em uma rede que limita a quantidade de bytes que podem ser transmitidos em um único quadro. Para quadros padrão Ethernet esse limite é de 1500 bytes e para quadros 802.3 é de 1492 bytes. Esse limite, que é uma característica da camada de enlace, é conhecido como MTU, “Maximum Transmission Unit“, ou “Unidade de Transmissão Máxima”, e existe em diversos tipos de redes, não apenas redes locais Ethernet.
Quando um datagrama a ser enviado em uma rede for maior do que o MTU da camada de enlace, o protocolo IP realizará a fragmentação dos dados, quebrando o datagrama em pedaços menores, chamados de fragmentos, cada um com tamanho menor do que o MTU.
Veja na tabela a seguir os valores típicos de MTU (consultados no RFC 1191, Path MTU Discovery e outras fontes) usados em vários tipos de redes comuns:
Rede | MTU (em bytes) |
Hyperchannel | 65535 |
WLAN 802.11 | 7981 |
Quadros Jumbo Ethernet | 1501 – 9198 |
Tonken Ring 802.5 | 4464 |
FDDI | 4352 |
Ethernet | 1500 |
IEEE 802.3 / 802.2 | 1492 |
PPPoE | 1492 |
X.25 | 576 |
Podemos descobrir o MTU usado nas interfaces de rede de um computador que rode o Windows executando o comando netsh no prompt, como segue:
netsh interface ipv4 show subinterfaces
Já no Linux basta usar o comando ifconfig:
ifconfig
Path MTU
Quando dois hosts estão se comunicando entre si através de múltiplas redes, cada trecho de rede pode ter um MTU diferente devido ás diversas tecnologias envolvidas em uma transmissão de dados de longa distância. Desta forma, o MTU das redes onde os hosts estão conectados não é tão importante quanto o menor MTU de qualquer trecho por onde os pacotes trafeguem entre esses dois hosts. Damos a esse MTU o nome de Path MTU (Caminho MTU). O caminho MTU é, portanto, o menor valor de MTU do caminho desde o endereço de origem até o endereço de destino. Assim, o caminho MTU é o maior valor que pode trafegar nessa rede sem que os pacotes sofram fragmentação.
O valor do caminho MTU entre dois hosts não é necessariamente constante. Ele depende da rota que está sendo usada no momento. Além disso, o roteamento não precisa ser simétrico, de modo que o Path MTU não precisa ser o mesmo em ambas as direções – do host A para o host B e vice-versa.
Path MTU Discovery
A descoberta de caminho MTU é uma técnica que permite determinar o caminho MTU ideal entre dois hosts IP para evitar a fragmentação adicional dos datagramas IP. Essa técnica consiste em ligar o bit DF (Don´t Fragment) do cabeçalho IP dos datagramas transmitidos.
Quando um dispositivo no caminho desse datagrama tiver um MTU menor do que o datagrama, esse pacote será descartado e será enviada a mensagem ICMP “Destino Inalcançável (Pacote muito grande)” de volta ao transmissor, contendo o MTU desse dispositivo. Essa informação permite que o host transmissor reduza o MTU da transmissão de forma apropriada. O processo se repete até que seja descoberto o menor MTU que permite a transmissão de dados pelo caminho todo sem que haja fragmentação.
Testando o MTU do caminho
Podemos testar o MTU do caminho entre dois hosts usando o comando ping. Para isso trabalharemos co duas opções do ping (válidas para sistemas Windows):
-l tamanho-pacote Permite ajustar o tamanho (payload) do pacote enviado pelo ping para o valor tamanho-pacote
-f Habilita o bit DF no pacote transmitido (impedindo a fragmentação do pacote).
Vamos a um exemplo. Primeiramente, vamos usar o ping para testar a conectividade com o site www.bosontreinamentos.com.br, porém enviando um pacote com 1500 bytes de tamanho:
ping -l 1500 bosontreinamentos.com.br
Os pacotes foram enviados e recebemos a resposta como esperado. Porém, vamos agora desativar a fragmentação do pacote com a opção -f e tentar novamente enviar o payload de 1500 bytes:
ping -l 1500 -f bosontreinamentos.com.br
Note que agora recebemos uma mensagem de erro dizendo que o pacote precisa ser fragmentado, mas a desfragmentação está ativa. Portanto, os 1500 bytes do payload do pacote fizeram com que o MTU do quadro fosse ultrapassado.
Caso queira realizar o teste em uma máquina Linux, use as opções como segue:
-M do Não fragmentar o pacote
–s tamanho-pacote justar o tamanho (payload) do pacote enviado pelo ping para o valor tamanho-pacote
Veja o resultado em um computador com Kali Linux:
O tamanho máximo de payload que consegui transmitir na rede com a fragmentação desativada foi de 1472 bytes – lembrando que o MTU da rede é de 1500 bytes:
É isso aí! Aprendemos nessa lição o que é um MTU e sua importância para a transmissão de dados em uma rede. Até a próxima lição!
Escreva um comentário