Time to live
Il time to live (TTL) è un meccanismo che determina il tempo di vita di un dato in un computer di una rete.
Nel caso di un record DNS, indica per quanto tempo può essere ritenuto valido. Il tempo è espresso in secondi oppure può essere un timestamp.
Nel caso di un pacchetto IP, determina il numero di volte al quale un router può accedere prima che esso venga distrutto.
Funzionamento
modificaAl momento della trasmissione iniziale del pacchetto il campo, della dimensione di un byte, viene caricato con un valore compreso tra 1 e 255: solitamente viene utilizzato 128. Ogni router che il pacchetto attraversa riduce questo valore di una unità: se viene raggiunto il valore zero, il pacchetto viene cancellato, e viene inviato un pacchetto ICMP di avviso al mittente.
Utilità
modificaL'utilità di questa funzione diventa evidente se si immagina una situazione in cui per errore o guasto si viene a creare un loop in una catena di router. Se non esistesse il TTL i pacchetti viaggerebbero indefinitamente nel circolo vizioso non arrivando mai a destinazione. Questa situazione non è poi così rara: anzi è stata esplicitamente prevista quando si definirono le specifiche di Internet.
Utilizzo di TTL in Traceroute
modificaIl TTL può anche essere utilizzato per determinare il numero di router attraversati da un pacchetto. Il comando traceroute (presente in molti sistemi operativi) sfrutta infatti il TTL per determinare approssimativamente il percorso tra due host. Dapprima viene mandato verso l'host di destinazione un pacchetto con TTL=1: questo pacchetto viene scartato dal primo router, che segnala al mittente con il messaggio ICMP le sue coordinate. Successivamente viene inviato un pacchetto con TTL=2, che viene scartato dal secondo router che così si identifica. L'operazione è reiterata fino al raggiungimento dell'host di destinazione.
Implementazione in IPv6
modificaNel protocollo IPv6 il campo è stato rinominato in Hop limit, per specificare che il dato non indica un tempo ma un numero di salti (hops).