Главная > Freebsd, Windows > TTL (time to live) — время жизни пакета

TTL (time to live) — время жизни пакета

4 859

Время жизни пакета (TTL - Time To Live)
Основное назначение - предупредить длительное зацикливание, когда, например, на пути следования пакета маршрутизатор вышел из строя или была потеряна связь между двумя узловыми точками.

На каждом промежуточном узле (маршрутизаторе) значение поля TTL, заполняемого источником дейтаграммы (пакета), уменьшается на 1 (по-умолчанию, если не определено иначе), пока дейтаграмма не достигнет пункта назначения. В случае если значение на каком либо узле достигнет 1, то пакет уничтожается, а на исходный хост посылается собщение о необходимости заново передать пакет. При слишком маленьком значении пакет может просто не дойти, при слишком большом, в случае зацикливания, ждать много времени (теоретически при TTL = 255 (у винды, 128 у фряхи (по-умолчанию, если не определено иначе)) время ожидания может достигать 4 мин. 15 сек.).

На тугих маршрутизаторах вычитается еще и время нахождения пакета на роутере (по-умолчанию, если не определено иначе)

В IPv4 TTL представляет собой восьмиразрядное поле IP-заголовка. Оно находится в девятом октете из двадцати. Значение TTL может рассматриваться как верхняя граница времени существования IP-дейтаграммы в сети. Поле TTL устанавливается отправителем дейтаграммы, и уменьшается каждым узлом (например, маршрутизатором) на пути его следования, в соответствии со временем пребывания в данном устройстве или согласно протоколу обработки.

Если поле TTL становится равным нулю до того, как дейтаграмма прибудет в пункт назначения, то такая дейтаграмма отбрасывается и отправителю отсылается ICMP-пакет с кодом 11 — «Превышение временного интервала».

Отбрасывание пакетов с истекшим временем жизни позволяет избежать ситуаций, когда недоставленные дейтаграммы продолжают «вечно» циркулировать в системе Интернет, перегружая сеть (например, при образовании зацикленных маршрутов из-за некорректной маршрутизации).

По стандарту RFC791, время на жизнь измеряется в секундах, но каждый узел, через который проходит дейтаграмма, должен уменьшить значение TTL по крайней мере на одну единицу. На практике, если обработка занимает меньше секунды, поле TTL уменьшается на единицу на каждом хопе. Для того чтобы отразить это, в протоколе IPv6 поле называют «хоп лимитом». Также в некоторых реализациях IP-протокола TTL измеряется в числе шагов (хопов), в этом случае каждый маршрутизатор уменьшает значение TTL ровно на единицу.

 

Categories: Freebsd, Windows Tags:
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.

.