ICMP Time Exceeded

termo

redes

O erro ICMP (tipo 11, tipo 3 no ICMPv6) enviado quando o TTL de um pacote acaba no caminho ou os fragmentos não são remontados a tempo.

O traceroute é construído sobre ele, e, nas palavras da RFC 4443, ele indica um routing loop ou um hop limit inicial pequeno demais. Quando um roteador não o envia, o trace mostra asteriscos, e um filtro, um rate limit e um roteador configurado para ficar calado parecem iguais.

A RFC 792 define dois códigos: 0, time to live exceeded in transit, que pode vir de um gateway, e 1, fragment reassembly time exceeded, que pode vir de um host que desistiu de remontar um datagrama e nem precisa ser enviado se o fragmento zero nunca chegou. O ICMPv6 mantém os dois no tipo 3, com o código 0 chamado hop limit exceeded in transit.

A RFC 792 o deixava opcional: o gateway pode avisar a origem. A RFC 1812 o torna MUST para o roteador que descarta um pacote por TTL expirado, salvo destino multicast, porque o traceroute depende dele, e permite uma opção por interface para desligá-lo, que por padrão precisa deixá-lo ligado. Roteadores devem poder limitar a taxa dele, e nós IPv6 precisam limitar, com um método que aguente as rajadas do traceroute.

Como todo erro ICMP, ele cita o pacote que o causou: o header IP e pelo menos 8 bytes de dados, e, vindo de roteadores, o quanto couber em 576 bytes, para que quem enviou o associe a uma sonda pelas portas ou pelo número de sequência. O tcpdump imprime ICMP time exceeded in-transit, e os bytes ICMP começam com 0b 00, tipo 11 e código 0. A RFC 4890 põe o Time Exceeded código 0 do ICMPv6, e só o código 0, entre as mensagens que um firewall não pode descartar.

Também conhecido como: time exceeded, ttl exceeded in transit, hop limit exceeded in transit, icmp type 11, fragment reassembly time exceeded

← Todos os verbetes do glossário