Introdução à MTU

Faça uma pergunta
A Maximum Transmission Unit (MTU - unidade máxima de transmissão) é um parâmetro que determina o maior datagrama que pode ser transmitido através de uma interface de IP, sem precisar ser dividida em unidades menores. A MTU deve ser maior do que o maior datagrama que você quiser transmitir, sem ser fragmentado. Mais simplesmente, a MTU define o tamanho máximo (em bytes) do pacote que pode ser transmitido de uma vez só. Para a Ethernet, este valor deve ser de 1.500 bytes; para as conexões em PPPoE, 1.492 e para o RTC (velocidade baixa), 576.


Como calcular a MTU

Cada transmissão de trama (pacote de informação) é definida pelo corpo (tamanho máximo do segmento = MMS), que define o maior segmento de dados TCP que pode ser transmitido, e o cabeçalho (header em inglês). Ou seja,
MTU=MSS + TCP/IP headers 
.

Consideremos que MSS=MTU-40 <-- 40 para o cabeçalho (20 bytes IP e 20 bytes TCP). Os pacotes não são fragmentados. Não há perda de pacotes. Tamanho dos pacotes / velocidade, ou seja, uma transferência de informações de 1.500.000 bytes usando diferentes tamanhos de pacotes através de uma linha T1 (RTC) (T1 = 1.544.000 bits por segundo), de acordo com a fórmula:


(MSS + header) * 8 bits/byte
---------------------------------- = latência
1,544,000 bits/segundo.

Usando diferentes valores de MTU, podemos calcular a latência de transmissão:
Se MTU for = 1.500, então: (1460+40) * 8 / 1,544,000 = 7.772 ms
Se MTU for = 576, então: (536+40) * 8 / 1,544,000 = 2.924 ms
Em 10 voltas, obtemos 77,72 ms para a MTU a 1.500 e 29,24 ms para a 576.

Para resumir, quanto mais pacotes, mais demorada a transferência. Vamos usar a mesma fórmula para uma transferência de 1mb: 1MByte = 1024 KB = 1.048.576 bytes.

Se MTU for = 1.500, então: (1460+40) * 8 / 1,544,000 = 7.772 ms
1 MByte / MSS = 1.048.576 bytes / 1460 = 718.2, portanto, 719 pacotes para transferir 1 MByte.

Isto é, para transferir 1Mbyte: 719 pacotes * 7.772 ms (sempre circular) = 5588.068 ms, ou 5.588 segundos.

Se transferirmos nosso 1 MByte em 10 loops (definidos pelo cabeçalho), isso vai levar-nos idealmente a um (1° pacote * 10 loops * 7.772ms atraso) + 718 * 7.772 = 5.658 segundos.

Se MTU = 576, então: (536 +40) * 8 / 1,544,000 = 2.924 ms
1 MByte / MSS = 1,048,576 bytes / 536 = 1956.3, logo 1957 pacotes para transferir 1 MByte.

Para transferir um MByte: 1957 pacotes * 2.924 ms (sempre por loop)= 5722.268 ms, ou 5.722 segundos por loop.

Se você transferir esse 1 MByte para 10 loops:
(1° pacote *10 loops * 2.924ms) + 1956 * 2.924 = 5.748 segundos.

A diferença é devida ao fato de que quanto maior o pacote, menor o tamanho do cabeçalho (relativamente ^ ^). Portanto, para transferir 1Mbyte, se você usar uma MTU a 1.500, então há 719*40 = 28,760 bytes para o cabeçalho, enquanto que a MTU a 576, obtém 1957*40 = 78,280, ou seja, mais de 49,520 bytes de cabeçalho enviado a cada Mbyte. Para o nosso exemplo, 10 loops não é tão importante, mas nas transferências diárias, sim. Além disso, a maioria dos modems usa um cabeçalho maior, mas nós não levaremos em conta neste exemplo outras latências que possam ser associadas.

Como encontrar o valor da MTU no Windows

Para encontrar o valor máximo da MTU, você deve ir para o prompt de comando (Iniciar > Executar > digitar cmd). Para o protocolo ipv4:
netsch interface ipv4 show interfaces
. Para o protocolo ipv6:
netsch interface ipv6 show interfaces
.

Como mudar a MTU no Windows

No prompt de comando modo administrador: para passar para 1.400: aumente o índice da interface em questão no comando
netsh interface ipvx show interfaces
; se 10 for o índice por exemplo,
netsh interface ipv4 set interface 10 mtu=1400
. O sistema deve responder OK. Substitua ipv4 por ipv6 para que ipv6 verifique a confirmação.

Como encontrar o valor da MTU no Linux

É como roteador com o comando ifconfig que se muda a MTU no Linux, com a seguinte sintaxe:

ifconfig nome_da_interfacemtuvalor_da_mtu

Exemplo: definir a MTU da interface eth0 a 1.500
ifconfig eth0 mtu 1.500
.

Foto: © Microsoft.
Jean-François Pillou

Jean-François Pillou - Fundador do CCM
Mais conhecido como Jeff, Jean-François Pillou é o fundador do CommentCaMarche.net. Ele também é CEO do CCM Benchmark e diretor digital do Grupo Figaro.

Mais informações sobre a equipe do CCM

Veja também