Algemene concepten
De TTL (Time To Live) is een veld in de IP-header (Internet Protocol) dat wordt gebruikt om de levensduur van een datapakket op een netwerk te beperken. De TTL wordt gedefinieerd als het maximale aantal hops dat een pakket kan maken voordat het wordt weggegooid.
Elke keer dat een pakket via een router wordt verzonden, verlaagt de router de TTL-waarde in de IP-header met één. Als de TTL-waarde nul bereikt, wordt het pakket weggegooid en wordt een ICMP-foutbericht (Internet Control Message Protocol) “Time Exceeded” naar de afzender verzonden. Het ICMP-foutbericht bevat informatie over de router waar het pakket is verwijderd en de retourtijd van het pakket.
De belangrijkste functie van de TTL is om te voorkomen dat pakketten voor onbepaalde tijd op een netwerk circuleren. Als een pakket een zeer hoge TTL heeft, kan het voor onbepaalde tijd op het netwerk blijven circuleren, wat netwerkcongestie en prestatieproblemen kan veroorzaken.
Praktijkvoorbeeld van TTL-werking
Stel dat host A een datapakket naar host B wil sturen, en er zijn meerdere tussenliggende routers op het pad tussen A en B. Host A stelt een initiële TTL-waarde in de IP-header van het pakket in, die gelijk is aan a gegeven aantal hops dat het pakket naar verwachting zal doorlopen voordat het host B bereikt.
Wanneer het pakket bij de eerste router op de route arriveert, leest de router de TTL-waarde in de IP-header van het pakket en verlaagt deze met één. Als de TTL-waarde nul bereikt, gooit de router het pakket weg en stuurt een ICMP “Time Exceeded”-foutmelding naar host A. Als de TTL-waarde groter is dan nul, stuurt de router het pakket door naar de volgende router in het netwerk.
Dit proces gaat door totdat het pakket host B bereikt of totdat de TTL-waarde nul bereikt. Als het pakket bij host B arriveert, stuurt host B een bevestiging terug naar host A. Als de TTL-waarde nul bereikt, wordt het pakket weggegooid en wordt een ICMP-foutmelding ‘Time Exceeded’ naar host A verzonden.
Voorbeeld van de opdracht in Linux
Op Linux-systemen is het commando om de TTL-waarde aan te passen ttl
. Om bijvoorbeeld een pakket met een TTL-waarde van 64 te verzenden van een host op Linux naar de host met IP-adres 192.168.1.2
, kunt u de volgende opdracht gebruiken:
ping -c 1 -t 64 192.168.1.2
In dit commando -c 1
geeft aan dat er één enkel pakket wordt verzonden en -t 64
geeft aan dat de TTL-waarde 64 is. Het commando ping
verzendt een ICMP-pakket (Internet Control Message Protocol) naar het opgegeven IP-adres en wacht op een reactie van de externe host.
Als de externe host reageert, wordt een soortgelijk bericht weergegeven:
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=1.23 ms
In dit bericht, ttl=63
geeft aan dat de TTL-waarde met één is verlaagd bij de eerste router op de route voordat deze de externe host bereikte.
Als de TTL-waarde te laag is, bijvoorbeeld als deze is ingesteld op 1, bereikt het pakket mogelijk de externe host niet. In plaats daarvan wordt het bericht 'Time Exceeded' naar de bronhost verzonden.
Kortom, de opdracht ping
op Linux kan het worden gebruikt om pakketten met een gespecificeerde TTL-waarde te verzenden en het aantal hops in het pad van een pakket op een netwerk te volgen. Dit kan handig zijn voor het oplossen van netwerkproblemen en prestatie-optimalisatie.
Kan TTL op Windows worden gebruikt?
Ja, u kunt de TTL-waarde ook aanpassen op Windows-systemen. Het commando dat in Windows wordt gebruikt om de TTL-waarde aan te passen is ping
. Net als in Linux is het commando ping
wordt gebruikt om pakketten naar een externe host te sturen en u kunt de TTL-waarde aanpassen met behulp van de optie -i
.
Om bijvoorbeeld een pakket met een TTL-waarde van 64 te verzenden van een host op Windows naar de host met IP-adres 192.168.1.2
, kunt u de volgende opdracht gebruiken:
ping 192.168.1.2 -i 64
In dit commando -i 64
geeft aan dat de TTL-waarde 64 zal zijn. Als de externe host reageert, wordt een soortgelijk bericht weergegeven:
Reply from 192.168.1.2: bytes=32 time=1ms TTL=63
In dit bericht, TTL=63
geeft aan dat de TTL-waarde met één is verlaagd bij de eerste router op de route voordat deze de externe host bereikte.
Kortom, de opdracht ping
op Windows kan het ook worden gebruikt om pakketten met een opgegeven TTL-waarde te verzenden en het aantal hops in het pad van een pakket op een netwerk bij te houden. Dit kan handig zijn voor het oplossen van netwerkproblemen en prestatie-optimalisatie.