Протокол ICMP, утилита traceroute | Практика по курсу 'Компьютерные сети'

preview_player
Показать описание

Утилита traceroute (в Windows tracert) используется для определения маршрута от отправителя к получателю. Утилита выдает перечень всех маршрутизаторов, через которые необходимо пройти.

Для определения IP-адресов маршрутизаторов, traceroute использует протокол ICMP. На первом этапе отправляется эхо-запрос (ICMP-пакет с кодом 8, типом 0) со временем жизни 1. Первый маршрутизатор уменьшает время жизни до 0, отбрасывает пакет и передает отправителю сообщение об истечении времени жизни пакета (ICMP-пакет с кодом 11, типом 0). traceroute получает ICMP-пакет, анализирует IP-заголовок и извлекает из него IP-адрес отправителя. Это и есть адрес первого маршрутизатора.

Затем отправляется эхо-запрос со временем жизни 2, он доходит до второго маршрутизатора. Второй маршрутизатор отбрасывает пакет и также передает сообщение, что время жизни пакета истекло. traceroute извлекает из сообщения IP-адрес второго маршрутизатора. После этого traceroute передает эхо-запрос со временем жизни 3, 4, 5 и т.д., пока запрос не дойдет до получателя.

Работу утилиты traceroute можно эмулировать с помощью команды ping. Для этого нужно с помощью специального ключа задать время жизни эхо запроса:

Практическое задание для вас: определить путь до сайтов, которые вы часто смотрите. Используете сначала утилиту traceroute (в Windows tracert), затем ping и сравните результаты. Также с помощью Wireshark посмотрите, какие ICMP-пакеты при этом передаются.

Практическое занятие по протоколу ICMP:

Видеолекция по протоколу ICMP:
Рекомендации по теме
Комментарии
Автор

Спасибо вам за полезные Видео. Ваши видео всё ещё актуальны даже в 21 году)
Привет из Ташкента

shokhrookhr
Автор

Самое понятное объяснение! Спасибо огромное!

mgdglfp
Автор

Спасибо! Практика очень укрепляет теорию.

igorlisenkov
Автор

воооу, спасибочки большое, очень помогло и все понятно

katherineangelic
Автор

подскажи автор у меня на 2ром адресе пинг 40мс модем adsl я считаю это много до шлюза провайдера ... в сравнении у соседей ниже в 3 раза ... если не трудно дай свое мнения по этому поводу посоветуй что либо почему так происходит .?

alex
Автор

А что значит Превышен интервал ожидания для запроса

rosevetrov
Автор

Андрей, большое спасибо за теорию и за практику! При тестировании с помощью команды ping заметил разницу между ней и командой tracert. Размер передаваемых и принимаемых кадров отличается на 32 байта. Отличие в поле "Data" протокола ICMP.
Tracert: Data:
[Length: 64]
Ping: Data:
[Length: 32]

Это какое-то подобие отпечатков пальцев? Чтобы понимать, от какой именно программы приходят пакеты?

TommySawyerRus
Автор

Здравствуйте. Спасибо за очередное занятие! Появилось несколько вопросов о tracert.

Во-первых, при построении маршрутов к некоторым сайтам вместо некоторых маршрутизаторов стоят звёздочки. Что это значит?
Во-вторых, возле некоторых IP в трассировке подписаны какие-то домены. Что это за домены и откуда они берутся?
И последний вопрос. А что будет, если три пакета, отосланных tracert, отправятся разными маршрутами? Ведь маршрутизатор может отправлять пакеты разными путями, в зависимости от текущих настроек и ситуации в сети.

sergeyufimtsev
Автор

подскажите пож-ста, у меня в WIRESHARK ICMP нет - почему?

aizhanyerzhanova
Автор

Использую Linux Debian 11. Утилита traceroute почему-то отсылает не ICMP запросы с разным временем жизни, а UDP. Узнал это, посмотрев ICMP ответ в wireshark.

markruffalo
Автор

Подскажите пожалуйста, как устройство понимает куда дальше отправлять icmp запрос я так и не понял, с первым хопом понятно, это нашь gw, а дальше ?

Iseeyoucrybich
Автор

А если звездочки стоят, то это значит что какой-то промежуточный маршрутизатор не хочет возвращать icmp сообщение? А может ли какой-то маршрутизатор пропустить пакет, не изменяя ttl? Он может сделать себя незаметным?

sosiska
Автор

Добрый вечер! Я попробовал использовать утилиту traceroute для того, чтобы узнать путь к условному домену. Данная утилита мне выдала набор маршрутизаторов, через которые проходили ICMP пакеты, после этого я пошёл проверять работу traceroute через утилиту пинг, и указав тот же домен, что и в первом случае, у меня отправился запрос напрямую на данный домен, подскажите, что я сделал не так? Разве пакет не должен через маршрутизаторы проходить? OS Debian

jmtxpkv
Автор

здравствуйте а если есть звездочки превышено ожидание то что это значит

vo_lesya
Автор

Здравствуйте. В лекции по протоколу ICMP все маршрутизаторы нарисованы последовательно от одного компьютера к другому. В то же время в лекции "Протокол IP: маршрутизация" нарисована целая сеть маршрутизаторов и возможность доставки пакета по любой цепи. Каким образом эхо-запрос проходит правильную цепь маршрутизаторов, а не уходит в совсем другую ветку, в которой запрашиваемого адреса нет в помине?!?
За лекции ++ и благодарность!

SC-egdv
Автор

а как узнать на каком маршрутизаторе проблемы если пакеты идут долго

alexey
Автор

как вы настраиваете для того что-бы видеть пакеты icmp?

uris
Автор

Wireshark под макосью показывает только TTL exceeded пакеты, без echo ping. Это какая-то особенность реализации? Фильтр стоит только для отображения icmp, тут ошибки быть не может

BalynOmavel
Автор

почему при трассировке маршрута выделено три столба для пинга? что это означает?

conf_term
Автор

скажите по какой причине выполнение команды ping с указанием имени сервера завершается с ошибкой "не удалось обнаружить узел", а выполнение ping с указанием IP адреса этого сервера завершается успешно

yurykuzmich