Як 8 біт достатньо для TTL в заголовку IP?


18

TTL (Час жити) - це 8-бітове поле в заголовку IPv4. Він може приймати будь-яке значення від 0 до 255. Якщо це означає, що пакет може взяти максимум 255 стрибків (маршрутизаторів) на шляху до місця призначення, пакет буде відкинутий.

Як можна мені надсилати пакети по континентах?


14
З тієї ж причини, чому більшість tracerouteінструментів відмовляються від лише 30 стрибків - "діаметр Інтернету" не такий вже й великий, як ви думаєте.
користувач1686

4
Подумайте про це, як розмістити свої дані на літаках для подорожей. Для місцевих хмелів ви наймаєте легкий літак. Для великих міжнародних хмелів ви потрапляєте на найближчий 777 або A380 і робите великий стрибок. Замість міжнародного рейсу Дані подорожують з Європи до США (або деінде) одним із них: en.wikipedia.org/wiki/Transatlantic_communications_cable
Балдрік

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), весь тунель вважається лише одним або двома перескаками для внутрішнього пакета.


9

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

  • Windows використовує 128 (оскільки Windows NT 4),
  • MacOS X і Linux обидва використовують 64

У деяких системах, що використовуються для надсилання менших значень (наприклад, у Windows 95 було встановлено TTL за замовчуванням 32), ці значення підвищувались, щоб запобігти проблемам із можливо довшими маршрутами ... але тоді ці системи, безумовно, змогли досягти майже будь-якого хоста в Інтернеті. І, хоча у мене немає жодних доказів цього, я б сказав, що необхідна кількість хмелів зменшилася з тих пір, оскільки для перевезення трафіку встановлюється все більше волокон на далекі відстані.

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


8

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

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


Чи не для маршрутизованих напрямків звичайна практика встановлювати маршрут відхилення, щоб запобігти цьому?
користувач1686

7
Проблема не в маршрутизованих напрямках, проблема в пунктах призначення, де через неправильну конфігурацію або перехідні ефекти виникає цикл маршрутизації.
Пітер Грін

3

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

З Інтернет-протоколу RFC 791:

Час вимірюється в одиницях секунд, але оскільки кожен модуль, який обробляє дейтаграму, повинен зменшити TTL принаймні на один, навіть якщо він обробляє дейтаграму менше ніж за секунду, про TTL слід розглядати лише як верхню межу на час може існувати дейтаграма. Намір полягає в тому, щоб не допустити недоставних дейтаграм, а також обмежити максимальний термін дії дейтаграми.

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

Сьогодні світ швидший.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.