Как 8 битов достаточно для TTL в заголовке IP?

18

TTL (время жизни) - это 8-битное поле в заголовке IPv4. Может принимать любое значение от 0 до 255. Если это означает, что пакет может пройти максимум 255 прыжков (маршрутизаторов) на пути к месту назначения, тогда пакет будет отброшен.

Как я могу отправлять пакеты через континенты?

редди хари
источник
14
По той же причине, по которой большинство tracerouteинструментов отказываются после 30 прыжков - «диаметр интернета» не так велик, как вы думаете.
user1686
4
Подумайте об этом, как о том, как поместить свои данные в самолеты для путешествий. Для местных перелетов вы арендуете легкий самолет. Для больших международных перелетов вы садитесь на ближайший 777 или A380 и делаете большой прыжок. Однако вместо международного перелета данные отправляются из Европы в США (или в другое место) на одном из следующих маршрутов
Baldrickk
2
Теория «шести степеней разделения» также может вас заинтересовать.
Пэм
1
Я серьезно призываю вас рассмотреть предложение Пэм. Оказывается, что в естественных системах (незапланированных системах), таких как люди, заводящие друзей, добавление узлов в интернет, компании, ведущие бизнес и т. Д., Для большинства соединений не требуется много переходов. Для человеческих взаимодействий это число редко превышает 6. Взять, к примеру, oracleofbacon.org, который вычисляет связь актера Кевина Бэкона с другими актерами. Расстояние между Бэконом и телугу актером Рави Теджа составляет всего 3 фильма. Малайская актриса 60-х Салома также имеет только 3 фильма между ней и Кевином Бэконом
slebetman
Вам помог какой-нибудь ответ? Если это так, вы должны принять ответ, чтобы вопрос не появлялся вечно, ища ответ. Кроме того, вы можете предоставить и принять свой собственный ответ.
Рон Мопин

Ответы:

27

Даже при отправке пакетов через континенты TTL 255 более чем достаточно - просто не задействовано больше маршрутизаторов.

Быстрый тест (из Германии) показывает 17 прыжков в США и 18 в Японию. Обычно вы не получаете больше 30 или около того. Это связано с иерархической структурой Интернета - вы попали в магистраль своего провайдера всего за 2-5 прыжков, еще 2-3 прыжка приведут вас к следующему поставщику и т. Д.

Обратите внимание, что TTL учитывает только прыжки уровня 3. Гораздо более часто используемые переходы уровня 2 между коммутаторами не влияют на TTL - такого понятия нет в Ethernet или подобных протоколах.

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

Zac67
источник
9

Небольшое дополнение к другим ответам, чтобы быть более полным: хотя многие маршрутизаторы, похоже, отправляют пакеты с TTL 255 (для пакетов, которые они производят сами, а не для тех, которые они пересылают!), Большинство операционных систем отправляют пакеты с большим количеством более низкие начальные значения TTL:

  • Windows использует 128 (начиная с Windows NT 4),
  • MacOS X и Linux оба используют 64

Некоторые системы использовали для отправки более низких значений (например, Windows 95 имел TTL по умолчанию 32), эти значения были увеличены, чтобы предотвратить проблемы с возможно более длинными маршрутами ... но эти системы определенно были в состоянии достигнуть почти любого хоста в Интернете тогда. И, хотя у меня нет никаких доказательств этого, я бы сказал, что необходимое количество прыжков с тех пор уменьшилось, потому что для передачи трафика устанавливается все больше и больше дальних волокон.

Также не забывайте, что количество прыжков и географическое расстояние не коррелируют . Океаны обычно пересекаются с помощью одного перехода (оптические повторители вдоль подводных волокон не касаются пакетов, только маршрутизаторы уменьшают TTL). Только что сделал трассировку из Швейцарии в Новую Зеландию: перелет № 7 находится менее чем в 50 км от моего места, № 9 - в Калифорнии, а № 10 - в Новой Зеландии ... межконтинентальная транзитная часть, как правило, всего несколько прыжков на маршруте остальная часть в основном достигает международного перевозчика и прибывает к месту назначения от него.

эль
источник
8

8 бит более чем достаточно. из-за пиринга ISP вы можете достичь пункта назначения, путешествуя менее чем через 5 или 6 ISP, а из-за архитектуры магистральной сети пакет будет передаваться максимум через 3 или 4 маршрутизатора в одном ISP.

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

abdul_razak
источник
Для маршрутизации без маршрутизации разве не является обычной практикой установка отклоняющего маршрута, чтобы предотвратить это?
user1686
7
Проблема не в маршрутизации без маршрутизации, а в проблемах назначения, где из-за неправильной конфигурации или переходных эффектов возникает петля маршрутизации.
Питер Грин
3

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

Из интернет-протокола RFC 791:

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

Мультисекундные пакеты не были чем-то необычным: минимально допустимая датаграмма IP в 68 октетов занимает более 2 секунд при скорости 300 бод. Тем не менее, я никогда не видел маршрутизатор, который уменьшился более чем на 1 для мультисекундных пакетов.

Мир быстрее в эти дни.

jonathanjo
источник