Znaczenie chmielu (pomiar TTL)

10

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 ?

Kyrylo M.
źródło
Dobre pytanie. Jeśli dobrze pamiętam, zastąpili TTL chmielem w IPv6, ale nie jestem pewien.
AndrejaKo,
1
@AndrejaKo, tak, zrobili. Ale oficjalnie tylko w IPv6.
Kyrylo M,

Odpowiedzi:

7

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.

Pole czasu wygaśnięcia (TTL) nagłówka IP jest zdefiniowane jako czasomierz ograniczający czas życia datagramu. Jest to pole 8-bitowe, a jednostki to sekundy. Każdy router (lub inny moduł), który obsługuje pakiet, MUSI zmniejszyć TTL o co najmniej jeden, nawet jeśli upływający czas był znacznie krótszy niż sekunda. Ponieważ zdarza się to bardzo często, TTL jest efektywnym ograniczeniem liczby przeskoków określającym zasięg propagacji datagramu przez Internet.

Gdy router przesyła pakiet, MUSI zmniejszyć TTL o co najmniej jeden. Jeśli przechowuje pakiet przez ponad jedną sekundę, MOŻE zmniejszać TTL o jedną na każdą sekundę.

Zobacz też:

Wikipedia - Time to Live :

Pole TTL jest ustawiane przez nadawcę datagramu i zmniejszane przez każdy host na trasie do miejsca docelowego.

Maxi-pedia - Time to Live (TTL)

Każdy router, przez który przechodzi pakiet, musi odjąć co najmniej jedną liczbę od pola TTL.

Mikel
źródło
Nie widzę nic o chmielu i dlaczego użyli zamiast sekund lub ms.
Kyrylo M,
1
Dodałem link do RFC 1716. Tam jest określony.
Mikel