Enviando dados sobre uma rede com zero MTU (unidade de transmissão máxima)
-
27-09-2019 - |
Pergunta
Quero enviar os dados de modo que a fragmentação dos dados seja desativada. Por exemplo, em ping, se escrevermos
ping localhost -M do -s 65507
-M do: desativar fragmentação -s 65507: tamanho máximo do pacote
Isso me dá um erro como
From localhost (127.0.0.1) icmp_seq=1 Frag needed and DF set (mtu = 16436)
Existe alguma outra maneira de fazer isso ou usar algum outro software. De preferência iperf.
Solução
Parece que você está procurando a bandeira Don't Fragment (DF). É definido por pacote no Bandeiras do cabeçalho IP. Qualquer coisa enviada maior que o MTU com o conjunto de DF resultará em uma mensagem de erro ICMP sendo gerada. Sem o DF, o roteador pode se fragmentar e enviar. Existem muitos sistemas quebrados por aí que comem o erro do ICMP (firewalls paranóicos loucos) ou se comportam de maneira estranha.
RFC791 Fornece detalhes sobre as regras para fragmentar os datagramas IP.
MTUs típicos são 1500 bytes. O MTU mínimo para IPv4 é 576, enquanto para IPv6 é 1280. Gigabit Ethernet e outros links geralmente suportam MTUs muito maiores.
Outras dicas
O MTU da Ethernet é de 1500 bytes, incluindo os cabeçalhos. Você não pode simplesmente ignorar isso. Não há como enviar um pacote tão grande sem fragmentação.