Тип надісланого пакету відрізняється залежно від реалізації. За замовчуванням Windows tracertвикористовує ICMP, і Mac OS X і Linux tracerouteвикористовують UDP. Я не маю під рукою машин BSD або Solaris або будь-якої іншої ОС, але на головній сторінці для версії Mac OS X згадується її походження BSD 4.3.
Версії Mac і Linux, які я пропоную, мають можливість вибирати різні протоколи, включаючи пакети ICMP, TCP, UDP та GRE. Інші протоколи можна вказати своїм ім'ям або номером, але traceroute нічого не знає про те, як працюють інші протоколи. Це просто сліпо посилає їх.
Вони також можуть змінювати корисне навантаження та вихідний порт і порти призначення, щоб уникнути брандмауерів або виявити, який маршрутизатор уздовж шляху скидає пакети певного розміру.
Усі версії traceroute покладаються на відповіді ICMP типу 11 (перевищено час) від кожного скаку по маршруту. Якщо відповіді ICMP типу 11 заблоковані вашим брандмауером, трасування не буде працювати. Ці пакети є вхідними, а не вихідними.
Тип 30 ICMP спеціально призначений для traceroute і позначений як "Запит на інформацію". Мені не вдалося знайти ніде, де це фактично використовується. На головній сторінці версій Mac OS X та Linux зазначено, що -Iбуде надіслано ICMP типу 8 (ехо-запит). У Вікіпедії зазначається, що Windows tracertтакож використовує ICMP запити ехо. ICMP типу 30 або 8 - це вихідні пакети, а не вхідні.
ICMP типу 0 (ехо-відповідь) може повернутися як самий останній пакет, коли TTL точно дорівнює кількості стрибків. Traceroute дізнається, що він закінчився, коли отримає один із них. Це вхідний пакет.
TCP SYN- пакети викликають або RSTпакет, або SYN ACKпакет у відповідь, коли вони досягнуть свого призначення. Якщо ви отримуєте SYN ACKпакет, ввічливо слідкувати за RSTпакетом, щоб не залишати напіввідкрите з'єднання на сервері.
Можливо повернути відповіді ICMP типу 3 коду 4 замість відповідей типу ICMP 11, якщо ви надішліть великий пакет із набором прапора "Не фрагментуйте", однак це, ймовірно, лише дозволить вам знайти скачок з найменшим MTU . Зазвичай ви отримаєте таку відповідь лише з одного стрибка по маршруту. Не всі вони.