Time to Live
Le Time to Live (« temps de vie » ou « durée de vie »), abrégé TTL, indique le temps pendant lequel une information doit être conservée, ou le temps pendant lequel une information doit être gardée en cache.
Le Time to Live sur les paquets IP
[modifier | modifier le code]Le TTL est une donnée placée au niveau de l'en-tête du paquet IP qui indique le nombre maximal de routeurs de transit. Ce champ est codé sur huit bits, ce qui permet de spécifier des valeurs initiales de 1 à 255. La valeur initiale est généralement fixée par le système d'exploitation et dépend du « diamètre d'Internet » (RFC 1122[1]), c'est-à-dire du nombre maximal de routeurs qui peut exister entre deux hôtes Internet à un moment donné. La valeur recommandée par le RFC 1700[2] est de 64[3],[4].
Quand un routeur de transit arrive à la valeur 0 après avoir décrémenté ce champ, le paquet est détruit et un paquet ICMP 11 Time Exceeded est envoyé vers la source. Ceci évite qu'un paquet boucle à l'infini s’il existe un problème de boucle de routage. traceroute est un outil qui exploite ce mécanisme pour déterminer la route empruntée par un paquet vers la destination.
La valeur initiale de 1 est utilisée par certains protocoles pour s'assurer que les paquets ne sont pas routés au-delà d'un segment, c'est le cas de eBGP ou de la diffusion multicast.
La valeur initiale de 255 est utilisée par des protocoles pour s'assurer que le paquet reçu émane bien du même segment, il doit valoir donc impérativement avoir 254 à la réception. C'est le cas du protocole Bidirectional Forwarding Detection.
Historique
[modifier | modifier le code]Dans la définition du RFC 791[5], le Time to Live d'un paquet IP transitant sur un réseau représente le nombre de secondes pendant lesquelles il est autorisé à passer dans les divers routeurs ponctuant sa route. En théorie, chaque routeur par lequel passe le paquet décrémente le TTL du nombre de secondes que le paquet y passe avant de continuer sa route, avec un minimum de 1. En pratique, le temps passé dans un routeur étant bien inférieur à la seconde, cela revient à décrémenter le TTL de 1.
Ce champ est renommé Hop Limit en IPv6, reflétant ainsi la pratique existant en IPv4.
Le Time to Live dans le DNS
[modifier | modifier le code]Dans le protocole utilisé par les serveurs DNS, une donnée Time to Live est présente et indique le temps, en secondes, pendant lequel l'information donnée par le serveur (le plus souvent un nom de domaine ou un autre serveur DNS) peut être conservée en cache. Passé ce délai, l'information doit être considérée comme obsolète et être mise à jour.
Le TTL est en général de l'ordre d'un jour (TTL = 86400), il peut être réduit jusqu'à 0 pour des informations variant fréquemment.
L'enregistrement SOA contient également une valeur de TTL à utiliser pour le cache négatif.
Notes et références
[modifier | modifier le code]- (en) « Requirements for Internet Hosts -- Communication Layers », Request for comments no 1122,
- (en) « ASSIGNED NUMBERS », Request for comments no 1700,
- Page 63, paragraphe IP TIME TO LIVE PARAMETER du RFC 1700
- IP Parameters sur le site de l'IANA (texte qui cite le RFC 791 et le RFC 1122)
- (en) « INTERNET PROTOCOL - DARPA INTERNET PROGRAM - PROTOCOL SPECIFICATION », Request for comments no 791,