Todos os produtos
Search
Central de documentação

Elastic Compute Service:What is PMTUD

Última atualização: Sep 23, 2026

O Path MTU Discovery (PMTUD) descobre dinamicamente o menor MTU ao longo de um caminho de rede, permitindo que os hosts dimensionem os pacotes para evitar a fragmentação IP e reduzir a perda de pacotes.

Benefícios

O PMTUD limita o tamanho dos pacotes ao PMTU, melhorando a eficiência e a confiabilidade da rede ao evitar a fragmentação.

  • Prevenção da fragmentação IP: o PMTUD mantém cada pacote dentro do MTU de cada salto, evitando a fragmentação que aumenta a latência e a perda de pacotes. Consulte Avoid IP fragmentation on TCP connections.

  • Maior eficiência de rede: o PMTUD determina o tamanho ideal dos pacotes, reduzindo o overhead de cabeçalho e aumentando o throughput sem exceder o MTU de nenhum dispositivo.

  • Redução de perda de pacotes e latência: a fragmentação exige a retransmissão de todos os fragmentos caso algum seja perdido. O PMTUD elimina esse overhead.

  • Dimensionamento automático de pacotes: o PMTUD permite que o host remetente redimensione dinamicamente os pacotes com base no PMTU descoberto, sem necessidade de conhecimento prévio da configuração de rede.

  • Maior robustez de rede: o PMTUD se adapta a diferentes tipos e configurações de link, aumentando a flexibilidade da rede.

Componentes e sistemas compatíveis

  • Sistemas operacionais: a maioria dos sistemas operacionais modernos, incluindo Linux e Windows, é compatível com PMTUD.

    Importante

    As instâncias do Elastic Compute Service (ECS) da Alibaba Cloud pertencentes à 6ª geração de famílias de instâncias ou anteriores, que não são compatíveis com o recurso Jumbo Frames, não são compatíveis com PMTUD. Certifique-se de que o tamanho dos pacotes que trafegam pelas instâncias ECS não exceda 1.500 bytes.

  • Dispositivos de rede: alguns roteadores e switches têm suporte nativo a PMTUD. Um dispositivo sem suporte a PMTUD pode retornar uma mensagem ICMP sem informações de MTU ao receber um pacote superdimensionado com o flag Don't Fragment (DF) definido como 1.

  • Middleware ou bibliotecas: alguns ambientes de programação oferecem bibliotecas ou middleware especializados para PMTUD.

  • Aplicações: algumas aplicações de rede implementam sua própria lógica de PMTUD para redimensionar dinamicamente os pacotes de saída.

  • Protocolos de rede: o PMTUD funciona com os protocolos de camada de transporte IPv4 e IPv6, incluindo TCP, UDP e ICMP.

  • Provedores de serviços de cloud: os componentes de encaminhamento da Alibaba Cloud executam o PMTUD conforme os padrões RFC. Consulte How PMTUD works.

Como o PMTUD funciona

O flag DF nos pacotes IP desempenha um papel fundamental no PMTUD. Definir o flag DF como 1 impede a fragmentação. O PMTUD utiliza mensagens ICMP para descobrir o PMTU entre dois hosts e limita os pacotes ao PMTU, evitando a fragmentação durante a transmissão.

  1. Defina o flag DF no host remetente. O host remetente define o flag DF no cabeçalho IP como 1, impedindo a fragmentação no caminho de rede.

  2. O limite de MTU é atingido. Quando o pacote com DF=1 chega a um dispositivo de rede cujo MTU é menor que o pacote, o dispositivo descarta o pacote.

    • No IPv4, os dispositivos de rede verificam o flag DF. Se DF=0 e o dispositivo é compatível com fragmentação, ele pode fragmentar pacotes superdimensionados em vez de descartá-los.

      Nota

      Alguns componentes de encaminhamento da Alibaba Cloud, como gateways de borda em cenários entre domínios ou entre regiões, não são compatíveis com fragmentação. Esses componentes descartam pacotes superdimensionados e enviam mensagens de erro ICMP mesmo quando DF=0.

    • No IPv6, o PMTUD é obrigatório. Todos os hosts e roteadores devem ser compatíveis com ele. O flag DF é implicitamente definido como 1 para todos os pacotes IPv6.

  3. Uma mensagem de erro ICMP é enviada. Se o dispositivo é compatível com PMTUD, ele envia uma mensagem de erro ICMP com seu MTU ao host remetente.

    • No IPv4, o dispositivo envia: Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (Type 3, Code 4).

    • No IPv6, o dispositivo envia: ICMPv6 Packet Too Big (PTB) (Type 2, Code 0).

  4. Processe a mensagem de erro ICMP. O host remetente analisa e armazena em cache o PMTU contido na mensagem e, em seguida, trata os pacotes da seguinte forma:

    • Por padrão, o kernel do sistema operacional fragmenta o pacote com base no PMTU e reenvia os fragmentos.

    • Redimensionamento no nível da aplicação. Uma aplicação compatível com PMTUD redimensiona os pacotes com base no MTU informado na mensagem de erro ICMP e os reenvia. Isso evita a fragmentação, mas geralmente requer modificações na aplicação.

      Nota

      Para conexões TCP, a camada TCP ajusta o MSS com base no PMTU descoberto para evitar a fragmentação de segmentos. Consulte Dynamically adapt MSS to PMTU during data transmission.

  5. Armazene o PMTU em cache. O host remetente armazena o PMTU em sua tabela de rotas para o endereço IP de destino e limita os pacotes subsequentes a esse tamanho.

  6. Atualize o PMTU periodicamente. O PMTU pode mudar quando os caminhos de rede se alteram ou os caches de rota expiram. O host executa novamente o PMTUD para atualizar o PMTU.

Configure o PMTUD

Ative o PMTUD

Verifique se todos os dispositivos na rede são compatíveis com PMTUD e têm o recurso ativado. No Linux, ative o PMTUD gravando zero em /proc/sys/net/ipv4/ip_no_pmtu_disc.

Nota
  • Versões antigas do kernel ou sistemas operacionais específicos podem não ser compatíveis com PMTUD. Dispositivos sem suporte a PMTUD não conseguem processar mensagens ICMP durante o PMTUD, fazendo com que ele falhe.

  • As instâncias do Elastic Compute Service (ECS) da Alibaba Cloud pertencentes à 6ª geração de famílias de instâncias ou anteriores, que não são compatíveis com o recurso Jumbo Frames, não são compatíveis com PMTUD. Certifique-se de que o tamanho dos pacotes que trafegam pelas instâncias ECS não exceda 1.500 bytes.

  • Se um dispositivo no caminho não for compatível com PMTUD, descubra o PMTU manualmente. Por exemplo, run the ping command to discover the PMTU. Em seguida, ajuste os tamanhos dos pacotes ou change the MTU of a network interface (NIC).

Garanta que as mensagens de erro ICMP cheguem ao host

  • Verifique e configure firewalls e dispositivos de segurança para permitir mensagens ICMP, especialmente Destination Unreachable: Fragmentation Needed (Type 3, Code 4). Mensagens ICMP bloqueadas impedem o funcionamento do PMTUD.

  • Configure os grupos de segurança para permitir tráfego ICMP. As instâncias ECS recebem pacotes de negociação ICMP durante o PMTUD somente se seus grupos de segurança permitirem tráfego ICMP. Consulte Security group rules for controlling access to ECS instances by using specific protocols.

  • Verifique se há limitação de tráfego de rede. Mensagens ICMP podem ser descartadas quando o tráfego atinge o limiar de limitação.

Modifique as aplicações para responder a mensagens ICMP

Modifique as aplicações para que respondam a mensagens de erro ICMP durante o PMTUD e reduzam o tamanho dos pacotes com base no PMTU descoberto.

Nota
  • Se uma aplicação não adaptar o tamanho dos pacotes ao PMTU descoberto após receber uma mensagem de erro ICMP, o kernel do sistema operacional poderá fragmentar os pacotes, o que pode causar falhas na transmissão.

  • Para resolver isso, especifique um MSS menor na aplicação para corresponder ao PMTU.

Evite a fragmentação IP em conexões TCP

O TCP é um protocolo de camada de transporte orientado à conexão e confiável, que garante a integridade e a ordenação dos dados. A fragmentação IP pode causar perda de fragmentos ou erros de remontagem que comprometem a confiabilidade do TCP. A negociação de MSS e o PMTUD auxiliam as conexões TCP a evitar a fragmentação IP.

Evite a fragmentação IP com a negociação de MSS durante o estabelecimento da conexão

O MSS é um parâmetro TCP que especifica o maior payload de dados em um segmento TCP, excluindo o cabeçalho TCP.

A negociação de MSS ocorre na pilha TCP/IP sem intervenção do usuário. Ela garante que os tamanhos dos segmentos de dados se ajustem aos ambientes de rede de ambos os endpoints, evitando a fragmentação causada por pacotes superdimensionados ou a ineficiência causada por pacotes subdimensionados.

O MSS é negociado durante o handshake de três vias do TCP. O host remetente inclui a opção MSS no pacote SYN. Esse valor é normalmente calculado com base no MTU do endpoint menos o overhead fixo dos cabeçalhos IP e TCP. O host receptor determina um MSS adequado com base em seu próprio MTU e o retorna no pacote SYN-ACK. Ambos os hosts usam o MSS acordado para a conexão.

Adapte dinamicamente o MSS ao PMTU durante a transmissão de dados

A negociação de MSS não garante que todos os dispositivos intermediários tenham MTUs maiores ou iguais ao MSS negociado. Se um dispositivo no caminho tiver um MTU menor, a fragmentação IP ainda poderá ocorrer. Protocolos sem conexão, como UDP e ICMP, não dispõem de negociação de MSS. O PMTUD resolve esse problema descobrindo dinamicamente o PMTU e permitindo que as aplicações ajustem o MSS de acordo.