Значення хопу (вимірювання TTL)


10

Коли я використовую команду ping, я отримую наступні результати (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
...

У документації до таких утиліт TTL вимірюється в хмелі . Відповідно до специфікації ICMP RFC 792 :

Час жити. Час жити в секундах ; оскільки це поле зменшується на кожній машині, в якій обробляється дейтаграма, значення в цьому полі має бути принаймні таким же великим, як кількість шлюзів, по яких ця дейтаграма буде проходити.

Отже, кожен хост зменшує TTL принаймні на 1 секунду . Про хміль нічого не сказано . То чому хміль використовується? Чому б не використовувати, скажімо, ms , якщо хости обробляють дейтаграми занадто швидко? І чому специфікація нічого не говорить про хміль ?


Хороше питання. Якщо я правильно пам'ятаю, вони замінили TTL на хміль в IPv6, але я не впевнений.
AndrejaKo

1
@AndrejaKo, так, вони. Але офіційно лише в IPv6.
Кирило М

Відповіді:


7

TTL призначений для того, щоб зупинити пакети, що живуть (і споживають ресурси) назавжди, якщо є цикл маршрутизації.

Спочатку обробці пакету може знадобитися більше однієї секунди.

Коли маршрутизатори стали набагато швидшими і почали обробляти пакети за одну секунду, було б нерозумно знизити TTL до нуля, оскільки тоді це не зупиняло циклів.

Таким чином, він зменшує TTL на одну секунду.

Ця зміна була задокументована в розділі 5.3.1 RFC 1716 .

Поле Time-to Live (TTL) у заголовку IP визначається як таймер, що обмежує час роботи дейтаграми. Це 8-бітове поле, а одиниці - це секунди. Кожен маршрутизатор (або інший модуль), який обробляє пакет, ОБОВ'ЯЗКОВО зменшує TTL щонайменше на один, навіть якщо минулий час був значно меншим за секунду. Оскільки це дуже часто трапляється, TTL фактично обмежує кількість стрибків у стрибках щодо того, як далеко може розповсюджуватися дейтаграма через Інтернет.

Коли маршрутизатор пересилає пакет, він ОБОВ'ЯЗКОВО зменшить TTL хоча б на один. Якщо він тримає пакет більше однієї секунди, він МОЖЕ декрементувати TTL по одному на кожну секунду.

Дивіться також:

Вікіпедія - час жити :

Поле TTL встановлюється відправником дейтаграми і зменшується кожним хостом на маршруті до місця призначення.

Максі-педіа - час жити (TTL)

Кожен маршрутизатор, через який проходить пакет, необхідний для віднімання принаймні одного рахунку з поля TTL.


Не бачите нічого про хміль і чому вони використовували замість секунд або мс.
Кирило М

1
Я додав посилання на RFC 1716. Ось де це вказано.
Мікель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.