Любой протокол, используемый TRACEROUTE
: ICMP
или UDP
илиIP ?
Или использовать их все: Инкапсуляция?
решение1
Этот вопрос был рассмотренЛададададаздесь : Использует ли traceroute протокол UDP или ICMP или оба?
Тип отправляемого пакета различается в зависимости от реализации. По умолчанию 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 (под GNU/Linux) см. страницу руководстваздесьуказывает аргументы, которые следует использовать для указания протокола, отличного от UDP:
-I Use ICMP ECHO for probes
-T Use TCP SYN for probes
...
ICMP и UDP оба инкапсулированы в IP-пакеты. Надеюсь, это поможет :)
решение2
По умолчанию Traceroute использует UDP, ICMP Echo Request или TCP SYN пакеты, которые также могут быть использованы. Если вы использовали tracroute -T, вы будете использовать TCP SYN для зондов, в то время как если вы использовали traceroute -I, вы будете использовать icmp echo пакеты для зондов.