Résumé

  • IPv4 définit le TTL comme un champ de huit bits exprimé en secondes, mais chaque traitement doit lui retirer au moins une unité.
  • À zéro, le paquet est supprimé et, si la destination n’est pas multicast, le routeur envoie normalement ICMP Time Exceeded à la source.

Une durée nominale, pas un chronomètre

RFC 791 permet à l’émetteur de fixer la durée maximale d’un datagramme. Le champ de huit bits peut atteindre 255, soit 255 secondes — 4,25 minutes — dans l’interprétation nominale. Pourtant, chaque point qui traite l’en-tête doit diminuer le TTL pour refléter le temps de traitement et retirer au minimum une unité, même si moins d’une seconde s’est écoulée. Le RFC le décrit donc comme une limite supérieure, et non comme une horloge précise.

Cette règle garantit qu’un paquet ne peut pas circuler indéfiniment simplement parce que les routeurs le transmettent plus vite que l’unité nominale. Chaque étape consomme une part du budget.

Le budget de sauts devient explicite

RFC 1812 formule la conséquence opérationnelle : tout routeur doit décrémenter le TTL d’au moins un, même lorsque le délai est très inférieur à une seconde. Le champ devient ainsi effectivement une limite de sauts. Un routeur qui conserve un paquet plus d’une seconde peut aussi soustraire une unité pour chaque seconde écoulée. Le sens temporel subsiste, mais le minimum interopérable suit les étapes de transfert.

Lorsque la valeur atteint zéro ou moins, le routeur doit supprimer le paquet. Pour une destination non multicast, il doit envoyer ICMP Time Exceeded Code 0 à la source. Comme le TTL change dans l’en-tête, la somme de contrôle de l’en-tête IPv4 doit être recalculée et vérifiée.

Sources