Każdy kolejny router IP na trasie pakietu
A. zwiększa wartość TTL przekazywanego pakietu o jeden.
B. zmniejsza wartość TTL przekazywanego pakietu o jeden.
C. zwiększa wartość TTL przekazywanego pakietu o dwa.
D. zmniejsza wartość TTL przekazywanego pakietu o dwa.
Pytanie z egzaminu CKE, czerwiec 2013 (arkusz E.13-X-13.05).
W protokole IP każdy router, który przekazuje pakiet dalej, zmniejsza pole TTL o 1. TTL, czyli Time To Live, w praktyce działa dziś bardziej jak licznik przeskoków przez routery niż dosłowny czas życia w sekundach. Gdy pakiet wychodzi np. z komputera z TTL = 64 i przejdzie przez pierwszy router, dalej ma TTL = 63, po następnym 62 itd. Jeśli wartość spadnie do 0, router usuwa pakiet i zwykle odsyła komunikat ICMP Time Exceeded do nadawcy. Dzięki temu pakiety nie krążą bez końca w pętli routingu, co w prawdziwej sieci byłoby niezłym bałaganem. Takie działanie jest zgodne z zasadami opisanymi dla IPv4 w RFC 791; w IPv6 podobną rolę pełni pole Hop Limit, opisane m.in. w RFC 8200. Z mojego doświadczenia TTL najlepiej kojarzyć z narzędziem traceroute albo tracert w Windows. Program specjalnie wysyła pakiety z coraz większym TTL, żeby kolejne routery po drodze odsyłały komunikaty ICMP i w ten sposób można było zobaczyć trasę do serwera. Warto też pamiętać, że zwykły przełącznik warstwy 2 nie zmniejsza TTL, bo nie routuje pakietów IP, tylko przełącza ramki Ethernet.
TTL nie jest wartością, którą routery zwiększają, ani nie jest zmniejszana standardowo o dwa. To dość częsty błąd myślowy, bo sama nazwa Time To Live może sugerować jakiś dynamiczny czas, który urządzenia po drodze mogłyby przeliczać według własnych zasad. W praktycznych sieciach IP router podczas przekazywania pakietu obniża TTL o 1, czyli o jeden przeskok. Gdyby routery zwiększały TTL o jeden albo o dwa, mechanizm ochrony przed pętlami routingu przestałby mieć sens. Pakiet krążący w zapętlonej trasie mógłby żyć coraz dłużej, zamiast zostać usunięty, a to prowadziłoby do przeciążenia łączy i tablic buforów routerów. Z kolei pomysł zmniejszania TTL o dwa też nie pasuje do normalnego działania routingu IP. Spowodowałby sztuczne skracanie maksymalnej możliwej trasy pakietu i zafałszowałby wyniki diagnostyki, na przykład w traceroute lub tracert. Te narzędzia zakładają, że każdy router odejmie dokładnie jeden od wartości TTL, więc odpowiedzi ICMP Time Exceeded pozwalają ustalić kolejne przeskoki na trasie. Moim zdaniem najlepiej zapamiętać to bardzo prosto: router warstwy 3 dotyka nagłówka IP i zmniejsza TTL o 1, a przełącznik warstwy 2 tego nie robi. Dobra praktyka administracyjna polega też na tym, żeby przy analizie tras, zapór i problemów z routingiem patrzeć na TTL jako na licznik hopów, a nie jako parametr zwiększany po drodze.