Дозвольте спробувати відповісти на це, адже це трохи складніше, що може виглядати спочатку.
Здається, ви вже знаєте основну операцію, traceroute
але перед усім іншим тут дуже невеликий резюме:
traceroute
намагається визначити всі кроки між проміжком від вашого хоста до хоста призначення або просто відстань, тобто кількість переходів, від вашого хоста до хоста призначення. Для цього він починає надсилати пакети до цільового вузла з "випадковим" номером порту призначення та TTL, який починається з 1 і постійно збільшується.
Ідея полягає в тому, що кожен маршрутизатор між ними знижує TTL на 1. Таким чином, якщо TTL досягає 0 (насправді це ніколи не відбувається, оскільки маршрутизатор, який збирається зменшити його до 0, створює помилку до цього), маршрутизатор поверне ICMP Повідомлення про помилку " Час до проживання перевищено ", наприклад номер пакету 24 у вашому файлі захоплення. Що ви отримуєте від цього, це те, що ваш пункт призначення знаходиться далі, і саме тому ви постійно збільшуєте TTL.
Якщо у вашому пакеті є TTL, достатньо великий, щоб досягти пункту призначення, ви отримаєте інше повідомлення про помилку ICMP: " Destination Unreachable (Port Unreachable) ", наприклад номер пакета 208 у вашому файлі захоплення. Від цього ви отримуєте те, що останній використаний TTL - це дійсно кількість переходів між вами та вузлом призначення. Причина, що ви отримуєте помилку, полягає лише в тому, що ви надсилаєте повідомлення до "випадкового" порту, який вузол призначення (сподіваємось) не слухає.
Тепер перейдемо до специфіки вашого файлу захоплення:
З сторінки керівництва traceroute
ми бачимо, що кожен TTL використовується 3 рази (опція '-q'), а протокол за замовчуванням використовується UDP (опція '-P'). Розглядаючи перші 3 пакети UDP, тобто пакети 8-9-10 , ми можемо побачити, що TTL дорівнює 1 . Наступні 3, тобто 11-12-13 , мають TTL 2 тощо. Тож з точки зору джерела все, здається, йде нормально.
Потім, через деякий час, залежний від затримки мережі, ми починаємо отримувати очікувані повідомлення про помилки. Таким чином, ми можемо бачити, що пакети помилок " 24-25-26" є пакетами помилок " Перевищено час ", і, таким чином, означає, що пункт призначення знаходиться далі.
Це повернення спроб та помилок триває, поки, нарешті, пакет 208 і на ньому ви не побачите повідомлення про помилки " Порт недоступний ", що означає, що ваше призначення було досягнуто.
Підрахувавши надіслані вами пакети та відповіді, ви зможете дізнатися навіть з того, який TTL насправді працював, але його копітка задача :)
Сподіваюся, що це допомогло