Кратко

  • IPv4 задаёт TTL как восьмибитное поле в секундах, но при каждой обработке его нужно уменьшать минимум на единицу.
  • При достижении нуля пакет отбрасывается, а если адрес назначения не групповой, источнику обычно отправляется ICMP Time Exceeded.

Время жизни без точного хронометража

RFC 791 позволяет отправителю задать максимальное время жизни дейтаграммы. Восьмибитное поле допускает значение 255 — номинально 255 секунд, или 4,25 минуты. Однако каждая точка обработки интернет-заголовка должна уменьшать TTL с учётом времени обработки и вычитать хотя бы единицу, даже если прошла доля секунды. Поэтому RFC называет TTL лишь верхней границей времени жизни, а не точным секундомером.

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

Ограничение длины маршрута становится явным

RFC 1812 прямо описывает практический результат: каждый маршрутизатор обязан уменьшить TTL минимум на единицу, даже если прошло значительно меньше секунды. Поэтому TTL фактически ограничивает число маршрутизаторов, через которые может пройти дейтаграмма. Если маршрутизатор удерживает пакет дольше секунды, он может вычитать по единице за каждую секунду. Временная составляющая сохраняется, но обязательная общая норма привязана к каждому шагу пересылки.

При TTL, равном нулю или меньше, маршрутизатор обязан отбросить пакет. Если адрес назначения не групповой, он также должен отправить источнику ICMP Time Exceeded Code 0. Поскольку TTL меняется в пути, контрольную сумму заголовка IPv4 нужно пересчитать и проверить.

Источники