Path MTU Discovery (PMTUD) é uma técnica padronizada em redes de computadores utilizada para determinar o tamanho máximo da unidade de transmissão () no caminho de rede entre dois nós IP (hosts). O principal objetivo do PMTUD é permitir que a origem ajuste o tamanho de seus pacotes para evitar a fragmentação de IP, que prejudica o desempenho da rede e aumenta o consumo de CPU nos roteadores e endpoints.
Funcionamento
No IPv4 No IPv4, o mecanismo funciona da seguinte forma: O host de origem envia um pacote IP com o bit DF (Don't Fragment - Não Fragmentar) ativado no cabeçalho. Se algum roteador no caminho possuir um enlace com um MTU menor que o tamanho do pacote recebido, ele não poderá fragmentá-lo (devido ao bit DF). O roteador descarta o pacote e envia uma mensagem ICMP do tipo "Destino Inalcançável" (Tipo 3), especificamente com o código "Fragmentação Necessária mas bit DF definido" (Código 4). As versões modernas desta mensagem ICMP (conforme a RFC 1191) incluem o MTU do enlace restritivo. O host de origem, ao receber o erro ICMP, reduz o MTU da sessão e reenvia os dados. O processo se repete até que o pacote consiga atravessar todo o caminho sem ser descartado.
No IPv6 No IPv6, a fragmentação por roteadores intermediários não é permitida em nenhuma circunstância. Todos os pacotes IPv6 são tratados como se tivessem o bit "Don't Fragment" ativado. Quando um pacote é grande demais para um enlace, o roteador envia uma mensagem ICMPv6 do tipo "Pacote Muito Grande" (Packet Too Big - Tipo 2). Os endpoints IPv6 são obrigados a realizar o PMTUD para garantir que os pacotes não excedam o MTU do caminho, ou utilizar o MTU mínimo obrigatório de octetos.
Problemas e Limitações: "Buracos Negros" O maior problema do PMTUD ocorre quando firewalls ou roteadores são configurados incorretamente para bloquear todas as mensagens ICMP por motivos de segurança (ICMP filtering). Se a mensagem "Packet Too Big" for bloqueada, o host de origem nunca saberá que o pacote foi descartado e continuará tentando reenviar pacotes grandes demais. Isso resulta em uma conexão que estabelece o handshake (com pacotes pequenos), mas "trava" ao tentar transferir dados reais. Esse fenômeno é conhecido como PMTUD Black Hole (Buraco Negro de PMTUD).
Para mitigar isso, técnicas alternativas como o PLPMTUD (Packetization Layer Path MTU Discovery), definido na RFC 4821, foram desenvolvidas. O PLPMTUD não depende de mensagens ICMP, descobrindo o MTU ideal através da confirmação (ACK) de pacotes de diferentes tamanhos na camada de transporte (como o TCP).
Ver também Unidade Máxima de Transmissão (MTU) Protocolo de Mensagens de Controle da Internet (ICMP) MSS (Maximum Segment Size)
Referências
Categoria:Protocolos da Internet Categoria:Camada de rede