Використовуючи інтернет, легко забути про складну інфраструктуру, яка забезпечує його роботу. Безліч маршрутизаторів та серверів невпинно працюють, щоб кожен ваш запит, будь то повідомлення в чаті або зображення, досяг свого адресата. Кожен біт інформації проходить довгий шлях, щоб потрапити туди, куди ви його відправили.
На жаль, саме відсутність доступу до веб-сайту нагадує нам про складність цього процесу. Проблема може критися як у вашому пристрої, так і на сервері, або десь між ними. Найкращий спосіб з’ясувати причину неполадки – це скористатися інструментом Traceroute.
Що таке Traceroute?
Traceroute – це інструмент, що дозволяє простежити шлях, який долають ваші пакети даних, мандруючи мережею інтернет. Практично кожна сучасна операційна система має вбудовану функцію Traceroute.
Запускаючи Traceroute, ви вказуєте йому цільовий веб-сайт або сервер, маршрут до якого ви хочете відстежити. Зазвичай це URL-адреса, але можна також використати IP-адресу.
Після запуску, Traceroute відправляє пакети до зазначеної адреси. Паралельно він фіксує шлях їх пересування та відправляє інформацію про це на ваш комп’ютер. Таким чином, ви бачите повний маршрут, який пройшли ваші дані.
Це особливо корисно при діагностиці мережевих проблем. Якщо якийсь сервер або маршрутизатор не працює, Traceroute виявить це та сповістить вас про несправність. Ця інформація допомагає точно визначити причину збою.
Як працює Traceroute?
Traceroute є потужним інструментом для діагностики мережевих проблем. Його робота базується на принципі використання змінної “Time-to-Live” (TTL) в пакетах даних.
Що таке “час життя” пакета?
В ідеальному світі, коли ваш комп’ютер відправляє пакет даних, він миттєво потрапляє до адресата, не затримуючись та не потрапляючи у нескінченні цикли.
Проте, мережі можуть бути непередбачуваними. Помилки в налаштуваннях серверів можуть призвести до того, що пакети будуть циркулювати між ними без кінця. Щоб уникнути цього, винайшли “час життя” пакета, або TTL.
Кожному пакету присвоюється число, що представляє його TTL. Щоразу, коли пакет проходить через сервер, його значення TTL зменшується на одиницю. Якщо TTL досягає нуля, пакет вважається “мертвим” і знищується. Зазвичай TTL встановлюється достатньо високим, щоб пакет встиг досягти місця призначення. Але якщо він все ж таки потрапить у цикл, його TTL швидко обнулиться.
Коли термін дії пакета закінчується, сервер, на якому це сталося, надсилає повідомлення “ICMP Time Exceeded” назад відправнику. Це сповіщення повідомляє про те, що пакет “помер” передчасно і вказує, де саме це сталося. Ця інформація допомагає виявити проблеми з маршрутизацією.
Як час життя пакета дозволяє працювати Traceroute?
Повідомлення “ICMP Time Exceeded” є ключем до розуміння принципу роботи Traceroute. Traceroute відправляє перший пакет зі значенням TTL, рівним 1. Він досягає першого сервера, його TTL зменшується до 0, і він “вмирає”.
Перший сервер відправляє повідомлення “ICMP Time Exceeded” на ваш комп’ютер, повідомляючи про своє місцезнаходження. Traceroute реєструє цю інформацію, як перший крок на шляху до цілі.
Потім Traceroute відправляє другий пакет з TTL = 2, третій з TTL = 3 і так далі, доки пакет не досягне кінцевого пункту призначення. Таким чином, кожен пакет “вмирає” на наступному етапі маршруту, а кожен сервер надсилає повідомлення, що дозволяє Traceroute повністю простежити шлях даних.
Для чого використовується Traceroute?
На базовому рівні, Traceroute дозволяє побачити, як саме пакети даних переміщуються в мережі. Він корисний для інженерів, які хочуть переконатися в правильній роботі інфраструктури, або для звичайних користувачів, яким цікаво, як їхні дані потрапляють на сервери Google.
Крім того, Traceroute допомагає виявляти несправності в мережі. Якщо Traceroute намагається зв’язатися з сервером, який не відповідає, він відмітить, що відповідь надісланого пакету не надходить протягом певного часу. Коли час очікування вичерпується, Traceroute повідомляє про “Request timed out”, тобто відповідь не надійшла.
Звичайно, відсутність відповіді не завжди означає, що сервер не працює. Деякі сервери можуть блокувати запити Traceroute. Проте, якщо ви впевнені, що жоден з серверів не повинен блокувати запити, відсутність відповіді може вказувати на проблему з веб-сайтом або сервером, до якого ви не можете підключитися.
Яка різниця між Traceroute і Ping?
Досвідчені користувачі помітять схожість між Traceroute і Ping, ще одним корисним мережевим інструментом. Хоча обидва інструменти мають спільні риси, вони використовуються для різних цілей.
Як згадувалося раніше, Traceroute відстежує маршрут, яким пакети даних переміщаються по мережі. Ping, натомість, перевіряє можливість з’єднання з певним сервером і вимірює час затримки (час, потрібний для того, щоб дані досягли сервера та повернулися).
Отже, якщо вас цікавить шлях, який проходять ваші дані, Traceroute — це ваш вибір. Якщо ж вас цікавить лише факт доступності сервера, використовуйте Ping. Звичайно, Traceroute також покаже вам доступність сервера, але вам доведеться почекати, поки він пройде весь маршрут, щоб отримати цю інформацію.
Як виконати Traceroute?
Як зазначалося вище, майже всі сучасні операційні системи мають можливість виконувати Traceroute. Для цього достатньо відкрити командний термінал і ввести відповідну команду.
В macOS вам потрібно відкрити термінал та ввести “traceroute”, після чого вказати URL-адресу або IP-адресу цільового сервера. У Linux процедура аналогічна, проте, можливо, доведеться попередньо встановити Traceroute.
Запуск команди traceroute в Linux.
В операційних системах Windows функція аналогічна, але називається “tracert”. Детальніше про tracert та інші команди для керування бездротовими мережами можна дізнатися з нашого посібника.
Автор зображення: Мішель Бакні/Wikimedia Commons
Відстеження ваших пакетів за допомогою Traceroute
Якщо ви хочете побачити, який шлях долають ваші дані після того, як вони залишають ваш комп’ютер, Traceroute – ваш надійний помічник. Неважливо, чи ви діагностуєте проблеми з мережею, чи просто цікавитеся, куди саме мандрують ваші пакети, Traceroute допоможе вам розібратися в цьому процесі.