MTU
Origem: Wikipédia, a enciclopédia livre.
Em redes de computadores, MTU (Maximum Trasmit Unit ou Unidade Máxima de Transmissão) se refere ao tamanho do maior datagrama que uma camada de um protocolo de comunicação pode transmitir.
[editar] Teoria
O protocolo IP permite a fragmentação de pacotes, possibilitando que um datagrama seja dividido em pedaços, cada um menor o suficiente para poder ser transmitido por uma conexão com o MTU menor que o datagrama original. Esta fragmentação acontece na camada IP (camada 3 do modelo OSI) e usa o parâmetro MTU da interface de rede que irá enviar o pacote pela conexão. O processo de fragmentação marca os fragmentos do pacote original, para que a camada IP do destinatário possa montar os pacotes recebidos, reconstituindo o datagrama original.
O protocolo da Internet define o "caminho MTU" de uma transmissão Internet como o menor valor MTU de qualquer um dos hops do IP do path" desde o endereço de origem até ao endereço de destino. Visto de outro modo, o "caminho MTU" define o maior valor de MTU que pode passar pelo caminho sem que os seus pacotes sofram posterior fragmentação.
O RFC 1191 descreve o "Path MTU discovery", uma técnica para determinar o caminho MTU entre dois hospedeiros IP de forma a evitar fragmentação de IP. Esta técnica utiliza o feedback para o endereço fonte dos resultados de enviar datagramas de tamanhos progressivamente maiores, com o bit DF (Don't Fragment) on - qualquer dispositivo que ao longo do caminho necessite de fragmentar o pacote irá largá-lo e enviar uma resposta ICMP "datagrama demasiado grande" para o endereço de origem. Através deste teste, o hospedeiro de origem "aprende" qual o valor máximo de MTU que atravessa a rede sem que seja fragmentado.
[editar] Problemas potenciais e resolução
Infelizmente, um número crescente de redes bloqueia todo o tráfego ICMP (por exemplo, para evitar ataques denial-of-service - isto impede a técnica acima explicada de funcionar. Frequentemente descobrimos esta fragmentação nos casos em que a ligação funciona com volumes baixos de tráfego mas bloqueia sempre que o host envia uma grande quantidade de dados ao mesmo tempo (por exemplo, com irc um cliente pode chegar até ao nospoof ping mas depois não obtém qualquer resposta dado que a ligação é bloqueada pela enorme quantidade de mensagens de boas vindas. Paralelamente, numa rede IP, o "caminho" desde o endereço de origem até ao endereço de destino pode ser alterado dinamicamente, em resposta a variados eventos ( load-balancing, congestion, outages, etc.) - isto pode resultar em que o caminho MTU se modifique (por vezes repetidamente) durante uma transmissão, o que pode introduzir ainda mais perda de pacotes antes que o host descubra o novo valor seguro de MTU.
A maioria das modernas ethernet LANs usam um MTU de 1500 bytes. Contudo, sistemas como PPPoE irão reduzir isto, causando a entrada em acção da descoberta do caminho MTU, o que pode ter como consequência fazer com que alguns sites protegidos por firewall mal configuradas se tornem inacessiveis. Podemos contudo reparar isto, dependendo do ponto da rede que controlamos: por exemplo, podemos alterar o MSS (maximum segment size) no pacote inicial que configura o TCP na firewall.
Alguns sistemas IBM (a XSeries, por exemplo), que suportam o mais velho protocolo ethernet podem necessitar que se estableça o valor de MTU em 1492 de modo a poderem ser utilizadas numa típica LAN.
Podemos alterar o MTU utilizando (por exemplo) o commando ifconfig
[editar] Ligações externas
- Tamanhos padrão de MTU - Em inglês
- RFC 1191
- Path MTU Discovery and Filtering ICMP - Em inglês
- http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TCPMSSTARGET How to set the TCP MSS value using iptables
- http://help.expedient.net/broadband/mtu_ping_test.shtml Discovering of MTU value via ping and setting it in Microsoft Windows
- [http://www.dslreports.com/drtcp DrTCP - um utilitário para optimizar o valor de MTU no ambiente Microsoft Windows
- mturoute - um utilitário de consola para a detecção e resolução de problemas MTU.