Definition
Time-to-Live (TTL) ist die Lebensdauer, die ein Datenpaket, ein DNS-Eintrag oder ein Eintrag in einem Cache mitbekommt. Läuft sie ab, wird das Paket verworfen oder der zwischengespeicherte Wert gilt als veraltet und wird neu geholt. Je nach Einsatz zählt die TTL Sekunden oder Weiterleitungen über Router.
Der Begriff hat nichts mit der Entwicklungsdauer eines Produkts zu tun. Die Zeit von der Idee bis zur Markteinführung heißt Time-to-Market.
TTL in IP-Netzwerken
Im Kopf jedes IPv4-Pakets steht ein TTL-Feld mit 8 Bit, also ein Wert von 0 bis 255. Jeder Router, der das Paket weiterleitet, verringert den Wert um eins. Erreicht er null, verwirft der Router das Paket und schickt dem Absender eine ICMP-Meldung „Time Exceeded“ zurück. So kreist ein Paket bei einem Fehler im Routing nicht endlos durch das Netz.
Ursprünglich war der Wert in RFC 791 als Sekunden gedacht, in der Praxis zählt er Weiterleitungen. IPv6 nennt das Feld deshalb Hop Limit. Betriebssysteme starten mit unterschiedlichen Werten, Linux und macOS meist mit 64, Windows mit 128. Werkzeuge wie traceroute nutzen die TTL gezielt: Sie senden Pakete mit TTL 1, 2, 3 und so weiter und erfahren aus den Fehlermeldungen, über welche Router der Weg führt.
TTL bei DNS-Einträgen
Jeder DNS-Eintrag, etwa ein A-, AAAA-, CNAME- oder MX-Eintrag, trägt eine TTL in Sekunden. Sie legt fest, wie lange Resolver bei Providern, in Firmennetzen oder auf dem eigenen Rechner die Antwort zwischenspeichern dürfen, bevor sie beim zuständigen Nameserver neu nachfragen. Übliche Werte liegen zwischen 300 Sekunden (5 Minuten) und 86.400 Sekunden (24 Stunden).
Eine lange TTL entlastet die Nameserver und beschleunigt die Namensauflösung, verzögert aber jede Änderung: Zeigt eine Domain auf einen neuen Server, landen manche Besucher noch bis zum Ablauf der alten TTL auf dem alten. Vor einem Serverumzug senken Sie die TTL deshalb rechtzeitig, mindestens um die Dauer der bisherigen TTL vorher, und heben sie nach dem Umzug wieder an. Auch Antworten, dass ein Name nicht existiert, werden zwischengespeichert; ihre Dauer ergibt sich aus dem SOA-Eintrag der Zone (RFC 2308).
TTL beim Caching
Auch Caches arbeiten mit einer TTL. Im HTTP-Protokoll legt der Header Cache-Control mit max-age fest, wie viele Sekunden Browser und Proxys eine Antwort wiederverwenden dürfen; s-maxage gilt nur für gemeinsam genutzte Caches wie ein CDN. Ein Wert von max-age=31536000 hält zum Beispiel eine Datei mit versioniertem Dateinamen ein Jahr lang im Browser.
In Anwendungen bekommen Einträge in Redis oder Memcached eine Ablaufzeit, in Redis etwa mit EXPIRE oder SET mit der Option EX. Die Wahl der TTL ist immer eine Abwägung: Je länger sie ist, desto seltener wird die Quelle belastet, desto länger sehen Nutzer aber auch veraltete Daten. Wo Daten sich zu einem bekannten Zeitpunkt ändern, ist gezieltes Löschen des Eintrags oft besser als eine kurze TTL.
Abgrenzung zu verwandten Begriffen
Time-to-Market beschreibt die Zeit von der Idee bis zum verfügbaren Produkt und ist eine betriebswirtschaftliche Kennzahl. Hop Limit ist der IPv6-Name für die TTL im Paketkopf. Der HTTP-Header Expires nennt einen festen Ablaufzeitpunkt statt einer Dauer; gibt es zusätzlich max-age, hat max-age Vorrang.