Любой протокол, используемый TRACEROUTE
: ICMP
или UDP
или IP?
Или использовать их все : Инкапсуляция?
Этот вопрос был задан Лададададой здесь: Использует ли traceroute UDP или ICMP или и то, и другое?
Тип отправляемого пакета различается в зависимости от реализации. По умолчанию tracert Windows использует ICMP, а traceroute Mac OS X и Linux используют UDP. У меня нет машин BSD, Solaris или любой другой ОС, чтобы проверить, но на странице руководства для версии Mac OS X упоминается, что ее происхождение - BSD 4.3.
Версии для Mac и Linux, которые у меня есть, предлагают возможность выбрать множество различных протоколов, включая пакеты ICMP, TCP, UDP и GRE. Другие протоколы можно указать по их имени или номеру, но traceroute ничего не знает о том, как работают другие протоколы. Он просто слепо отправляет их.
Для traceroute (под GNU / Linux) на странице руководства здесь указаны аргументы, которые следует использовать для указания протокола, отличного от UDP:
-I Use ICMP ECHO for probes
-T Use TCP SYN for probes
...
ICMP и UDP являются оба инкапсулированы в IP-пакеты. Надеюсь, это поможет :)
По умолчанию Traceroute использует UDP, ICMP Echo Request или TCP SYN-пакеты также могут использоваться. Если вы использовали tracroute -T, вы будете использовать TCP SYN для зондов, а если вы использовали traceroute -I, вы будете использовать эхо-пакеты icmp для зондов.