Значение прыжка (измерение 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 .

Поле времени жизни (TTL) заголовка IP определяется как таймер, ограничивающий время жизни дейтаграммы. Это 8-битное поле, а единицы измерения - секунды. Каждый маршрутизатор (или другой модуль), который обрабатывает пакет, ДОЛЖЕН уменьшать TTL как минимум на один, даже если прошедшее время было намного меньше секунды. Поскольку это очень часто так, TTL - это ограничение количества переходов на то, как далеко дейтаграмма может распространяться через Интернет.

Когда маршрутизатор пересылает пакет, он ДОЛЖЕН уменьшить TTL как минимум на единицу. Если он удерживает пакет более одной секунды, он МОЖЕТ уменьшать TTL на единицу за каждую секунду.

Смотрите также:

Википедия - Время жить :

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

Макси-Педиа - Время жить (TTL)

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


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

1
Я добавил ссылку на RFC 1716. Вот где это указано.
Микель
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.