Allgemeine Konzepte
Die TTL (Time To Live) ist ein Feld im IP-Header (Internet Protocol), das zur Begrenzung der Lebensdauer eines Datenpakets in einem Netzwerk verwendet wird. Die TTL ist definiert als die maximale Anzahl an Sprüngen, die ein Paket machen kann, bevor es verworfen wird.
Jedes Mal, wenn ein Paket über einen Router gesendet wird, verringert der Router den TTL-Wert im IP-Header um eins. Wenn der TTL-Wert Null erreicht, wird das Paket verworfen und eine ICMP-Fehlermeldung (Internet Control Message Protocol) „Time Exceeded“ an den Absender gesendet. Die ICMP-Fehlermeldung enthält Informationen über den Router, auf dem das Paket verworfen wurde, und die Umlaufzeit des Pakets.
Die Hauptfunktion von TTL besteht darin, zu verhindern, dass Pakete unbegrenzt in einem Netzwerk zirkulieren. Wenn ein Paket eine sehr hohe TTL hat, kann es unbegrenzt lange im Netzwerk zirkulieren, was zu Netzwerküberlastungen und Leistungsproblemen führen kann.
Praktisches Beispiel für den TTL-Betrieb
Angenommen, ein Host A möchte ein Datenpaket an einen Host B senden und es gibt mehrere Zwischenrouter auf dem Pfad zwischen A und B. Host A legt im IP-Header des Pakets einen anfänglichen TTL-Wert fest, der gleich a ist gegebene Anzahl von Hops, die das Paket voraussichtlich durchlaufen wird, bevor es Host B erreicht.
Wenn das Paket beim ersten Router auf der Route ankommt, liest der Router den TTL-Wert im IP-Header des Pakets und verringert ihn um eins. Wenn der TTL-Wert Null erreicht, verwirft der Router das Paket und sendet eine ICMP-Fehlermeldung „Time Exceeded“ an Host A. Wenn der TTL-Wert größer als Null ist, leitet der Router das Paket an den nächsten Router im Netzwerk weiter.
Dieser Vorgang wird fortgesetzt, bis das Paket Host B erreicht oder bis der TTL-Wert Null erreicht. Wenn das Paket bei Host B ankommt, sendet Host B eine Bestätigung an Host A zurück. Wenn der TTL-Wert Null erreicht, wird das Paket verworfen und eine ICMP-Fehlermeldung „Time Exceeded“ an Host A gesendet.
Beispiel für den Befehl unter Linux
Auf Linux-Systemen lautet der Befehl zum Anpassen des TTL-Werts ttl
. Zum Beispiel, um ein Paket mit einem TTL-Wert von 64 von einem Host unter Linux an den Host mit der IP-Adresse zu senden 192.168.1.2
, können Sie den folgenden Befehl verwenden:
ping -c 1 -t 64 192.168.1.2
In diesem Befehl wird -c 1
Gibt an, dass ein einzelnes Paket gesendet wird und -t 64
Gibt an, dass der TTL-Wert 64 sein wird. Der Befehl ping
sendet ein ICMP-Paket (Internet Control Message Protocol) an die angegebene IP-Adresse und wartet auf eine Antwort vom Remote-Host.
Wenn der Remote-Host antwortet, wird eine Meldung ähnlich dieser angezeigt:
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=1.23 ms
In dieser Nachricht ttl=63
zeigt an, dass der TTL-Wert beim ersten Router auf der Route um eins reduziert wurde, bevor er den Remote-Host erreichte.
Wenn der TTL-Wert zu niedrig ist, beispielsweise wenn er auf 1 gesetzt ist, erreicht das Paket möglicherweise nicht den Remote-Host. Stattdessen wird eine „Time Exceeded“-Meldung an den Quellhost gesendet.
Kurz gesagt, der Befehl ping
Unter Linux kann es zum Senden von Paketen mit einem bestimmten TTL-Wert und zum Verfolgen der Anzahl der Hops auf dem Pfad eines Pakets in einem Netzwerk verwendet werden. Dies kann für die Fehlerbehebung im Netzwerk und die Leistungsoptimierung nützlich sein.
Kann TTL unter Windows verwendet werden?
Ja, Sie können den TTL-Wert auch auf Windows-Systemen anpassen. Der in Windows zum Anpassen des TTL-Werts verwendete Befehl lautet ping
. Wie in Linux ist der Befehl ping
wird zum Senden von Paketen an einen Remote-Host verwendet und Sie können den TTL-Wert mithilfe der Option anpassen -i
.
Zum Beispiel, um ein Paket mit einem TTL-Wert von 64 von einem Host unter Windows an den Host mit der IP-Adresse zu senden 192.168.1.2
, können Sie den folgenden Befehl verwenden:
ping 192.168.1.2 -i 64
In diesem Befehl wird -i 64
Gibt an, dass der TTL-Wert 64 sein wird. Wenn der Remote-Host antwortet, wird eine Meldung ähnlich dieser angezeigt:
Reply from 192.168.1.2: bytes=32 time=1ms TTL=63
In dieser Nachricht TTL=63
zeigt an, dass der TTL-Wert beim ersten Router auf der Route um eins reduziert wurde, bevor er den Remote-Host erreichte.
Kurz gesagt, der Befehl ping
Unter Windows kann es auch verwendet werden, um Pakete mit einem bestimmten TTL-Wert zu senden und die Anzahl der Hops auf dem Pfad eines Pakets in einem Netzwerk zu verfolgen. Dies kann für die Fehlerbehebung im Netzwerk und die Leistungsoptimierung nützlich sein.