Презентация 6-07: протокол ICMP
Есть такие протоколы уровня IP, действие которых этим уровнем и ограничивается. Например, служебный протокол ICMP (Internet Control Message Protocol), предназначенный для передачи служебных сообщений.
Примером применения ICMP является утилита ping, которая позволяет проверить работоспособность узлов в сети. Другое применение ICMP — сообщать отправителю, почему его пакет невозможно доставить адресату, или передавать информацию об изменении маршрута, о возможности фрагментации и т. п.
Ещё одна задача, которую можно решить использованием протокола ICMP, является определение маршрута следования пакета. В UNIX существует ряд альтернативных команд для определения приблизительного маршрута прохождения пакета по сети: traceroute, tracepath и т. п.
Пример 2.7. Пример выполнения команды traceroute
desktop ~ # traceroute ya.rutraceroute to ya.ru (213.180.204.8), 64 hops max, 40 byte packets 1 195.91.230.65 (195.91.230.65) 0.890 ms 1.907 ms 0.809 ms 2 cs7206.rinet.ru (195.54.192.28) 0.895 ms 0.769 ms 0.605 ms 3 ix2-m9.yandex.net (193.232.244.93) 1.855 ms 1.519 ms 2.95 ms 4 c3-vlan4.yandex.net (213.180.210.146) 3.412 ms 2.698 ms 2.654 ms 5 ya.ru (213.180.204.8) 2.336 ms 2.612 ms 3.482 ms
Утилита traceroute показывает список абонентов, через которых проходит пакет по пути к адресату, и затраченное на это время. Однако список этот приблизительный. Строго говоря, неизвестно, каким маршрутом шла очередная группа пакетов, потому что с тех пор, как была отправлена предыдущая группа, какой-нибудь из промежуточных маршрутизаторов мог изменить решение и отправить новые пакеты другим путем.