Kiedy używam polecenia ping, otrzymuję kolejne wyniki (Windows):
C:\>ping example.microsoft.com
Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
...
W dokumentacji takich narzędzi TTL jest mierzone w chmielu . Zgodnie ze specyfikacją ICMP RFC 792 :
Czas żyć. Czas żyć w kilka sekund ; ponieważ to pole jest zmniejszane na każdym komputerze, na którym przetwarzany jest datagram, wartość w tym polu powinna być co najmniej tak duża, jak liczba bramek, które ten datagram będzie przechodził.
Zatem każdy host zmniejsza TTL o co najmniej 1 sekundę . Nic nie mówiono o chmielu . Dlaczego więc stosuje się chmiel? Dlaczego nie używać, powiedzmy ms , jeśli hosty przetwarzają datagramy zbyt szybko? I dlaczego specyfikacja nie mówi nic o chmielu ?
Odpowiedzi:
TTL został zaprojektowany, aby zatrzymać życie pakietów (i zużycie zasobów) na zawsze, jeśli istnieje pętla routingu.
Pierwotnie routery mogły przetwarzać pakiet dłużej niż sekundę.
Gdy routery stały się znacznie szybsze i zaczęły przetwarzać pakiety w czasie krótszym niż sekunda, głupotą byłoby dla nich zmniejszenie TTL o zero, ponieważ wtedy nie zatrzymywałoby pętli.
Zamiast tego zmniejsza TTL o jedną sekundę.
Ta zmiana została udokumentowana w RFC 1716 sekcja 5.3.1.
Zobacz też:
Wikipedia - Time to Live :
Maxi-pedia - Time to Live (TTL)
źródło