В Windows значение TTL по умолчанию составляет 128, а в Ubuntu - 64.
Я всегда задавал вопрос, по какому принципу были выбраны эти значения, а не, например, 255?
В Windows значение TTL по умолчанию составляет 128, а в Ubuntu - 64.
Я всегда задавал вопрос, по какому принципу были выбраны эти значения, а не, например, 255?
Я всегда задавал вопрос, по какому принципу были выбраны эти значения, а не, например, 255?
тл; др:
Значение по умолчанию TTL меньше, чем его максимально возможное значение (255) в большинстве ОС, потому что оно уменьшает накладные расходы на ожидание пакета, который не может достичь своего назначения, что приводит к снижению TTL до 0. Нет никакого смысла в использовании TTL 255, кроме как для диагностических целей.
Давайте посмотрим на то, что TTL является первым:
Время жизни (TTL) или ограничение количества переходов - это механизм, который ограничивает продолжительность жизни или время жизни данных в компьютере или сети.
Поле TTL устанавливается отправителем дейтаграммы и уменьшается каждым маршрутизатором на маршруте к месту назначения.
В сегодняшнем возрасте пакеты прибывают в большинство пунктов назначения не более чем через 10-15 прыжков. И это потому, что так устроена мировая сеть. Большинство интернет-провайдеров имеют в своих таблицах маршрутизации многие сети других интернет-провайдеров, и пакеты в основном отправляются по кратчайшему или быстрому маршруту к месту назначения. Это достигается благодаря внешним протоколам маршрутизации, таким как BGP (Border Gateway Protocol).
По этой причине IETF (Internet Engineering Task Force) опубликовал рекомендованное значение по умолчанию для времени жизни, равное 64, в своем RFC 1700: присвоенные номера.
Просто нет причин устанавливать TTL на 255. Если пакеты могут найти пункт назначения, они будут доставлены туда не более (в основном) через 10-15 прыжков. Редкие случаи, когда пакеты проходят более 20 прыжков.
Таким образом, если пакет не может достичь своего места назначения, он будет повторять попытки, пока его TTL не упадет до 0. Если значение TTL по умолчанию установлено в 255, то пакет будет отброшен после 255 повторных попыток. Если установлено значение 64, оно будет сброшено после 64 попыток. И есть вероятность, что если пакет не прибыл к месту назначения после 64 прыжков, он, скорее всего, никогда не прибудет туда. Таким образом, чтобы уменьшить накладные расходы и количество операций ввода-вывода при истечении времени ожидания пакета, рекомендуемое значение для TTL уменьшается, чтобы оно могло быстрее достигать сообщения об ошибке ICMP Time Exceeded и сбрасываться, поэтому оно больше не будет обрабатываться.
Различные операционные системы имеют разные значения по умолчанию для набора TTL. Большинство ОС стремятся следовать рекомендации IETF для значения по умолчанию 64 (что является хорошей практикой), однако другие устанавливают разные значения в соответствии со своими убеждениями. Это вопрос выбора. Здесь вы можете увидеть значения TTL по умолчанию для большинства операционных систем. Есть некоторые с 30, другие даже с 128 (как Windows).