Транзитный участок, означающий (измерение TTL)

Когда я использую команду 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 измеряется в транзитных участках. Согласно спецификации RFC 792 ICMP:

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

Так, каждый хост descreases TTL по крайней мере на 1 секунду. Ничто не сказало о транзитных участках. Итак, почему транзитные участки используются? Почему не использовать скажем мс, если хосты обрабатывают датаграммы слишком быстро? И почему спецификация ничего не говорит о транзитных участках?

10
задан 07.03.2011, 22:41

1 ответ

TTL разработан для остановки пакетного проживания (и потребление ресурсов) навсегда, если существует маршрутная петля.

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

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

Таким образом вместо этого, это постепенно уменьшает TTL на одну секунду.

Это изменение было зарегистрировано в раздел RFC 1716 5.3.1.

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

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

См. также:

Википедия - Время жизни:

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

Макси-pedia - время жизни (TTL)

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

7
ответ дан 07.12.2019, 12:59

Теги

Похожие вопросы