MTU significa Max Transmission Unit e determina o tamanho máximo que um pacote de dados pode ter. Um tamanho grande de MTU, está associado a uma redução no overhead ao passo que um tamanho pequeno de MTU pode reduzir a demora de resposta da rede.
Esse tamanho não é o mesmo para todos os provedores de internet, já que depende das capacidades físicas da rede. Logo, deve ser ajustada para obter a melhor performance. Esse ajuste pode ser feito de forma automática ou manual.
Uma forma de descobrir o melhor MTU é usando o comando ping
. Antes de começar, mude o MTU do seu roteador para o valor máximo (Geralmente é 1500).
Depois, de um micro conectado nessa rede, utilize o seguinte comando para determinar a média do seu ping:
$ ping -c 10 -D -s 1462 1.1.1.1 | tail -1| awk '{print $4}' | cut -d '/' -f 2
Na linha acima, estamos usando uma largura de pacote de 1453.
Instruimos o ping a repetir por 10 vezes com um alvo bem conhecido (1.1.1.1). Passamos o resultado disso para três comandos que nos darão a média de pingar 10 vezes o alvo com o tamanho do pacote determinado.
Devemos repetir esse teste várias vezes em diferentes momentos para obtermos uma média aceitável. Isto é, o tempo mais baixo de resposta em ms.
Comece com valores 10 bytes para cima e 10 bytes para baixo até chegar em um valor aproximadamente bom. Provavelmente obtenha mais de um valor aceitavel dependendo do período do dia. Depois que chege em valores mais ou menos aceitáveis, comece a alterar o tamanho do pacote de 5 em 5 e depois de 1 em 1 até que você se sinta satisfeito com a velocidade obtida.
Esse valor de pacote não é o de MTU. Para obter o valor de MTU, você deve adicionar os 28 Bytes de overhead ao tamanho do pacote.
Uma vez obtido o valor do MTU, modifique no seu router
No meu caso, por exemplo, eu cheguei a um tamanho de pacote de 1453 Bytes que dá um MTU 1481. Com isso a média de ping ao alvo escolhido ficou em 62ms.
A seguir a minha tabela com alguns valores de testes para poderem visualizar como foi minha experiência:
Pacote (Bytes) | Tempo (ms) |
---|---|
1472 | 84.242 |
1452 | 69.618 |
1442 | 120.935 |
1455 | 87.894 |
1453 | 60.283 |
Essa tabela não é exaustiva e obtive valores de resposta bem diferentes usando o mesmo tamanho de pacote. Nesses casos, acabei descartando o tamanho do pacote inteiro ficando com a ideia que “nesse tamanho oscila muito” para acalmar o pequeno monstro cientista.
Caso esteja usando Windows, o comando ping fica assim:
C:\> ping -f -l 1449 1.1.1.1