Протокол ICMP

Список ключевых слов: протокол межсетевых управляющих сообщений, поля типа, кода, контрольной суммы, идентификатора и порядкового номера, эхо-запрос, эхо-ответ.

Протокол межсетевых управляющих сообщений (Internet Control Message Protocol, ICMP) играет в сети вспомогательную роль. Спецификация этого про­токола содержится в RFC 792.

Существует ряд ситуаций, когда протокол IP не может доставить пакет адресату, например, когда истекает время жизни пакета, когда в таблице маршрутизации отсутствует маршрут к заданному в пакете адресу назначения, когда пакет не проходит проверку по контрольной сумме, когда шлюз не имеет достаточно мес­та в своем буфере для передачи какого-либо пакета и т. д. и т. п. Как мы не раз отмечали, протокол IP работает по возможности (с максимальными усилиями), то есть не предпринимает мер для гарантированной доставки данных. Это свой­ство «необязательности» протокола IP компенсируется протоколами более вы­соких уровней, например TCP на транспортном уровне или в какой-то степени DNS на прикладном уровне. Они берут на себя обязанности по обеспечению на­дежности, применяя такие известные приемы, как нумерация сообщений, под­тверждение доставки, повторная посылка данных.

Протокол ICMP служит дополнением протокола IP несколько другого рода. Он не предназначен для исправления возникших при передаче пакета проблем: если пакет потерян, ICMP не может послать его заново. Задача ICMP другая — он яв­ляется средством оповещения отправителя о «несчастных случаях», произошед­ших с его пакетами. В то время как протокол IP посылает пакет и забывает о нем, протокол ICMP «отслеживает» передвижение пакета по сети и при отбра­сывании пакета маршрутизатором передает сообщение об этом узлу-источнику, обеспечивая таким образом обратную связь между посланным пакетом и отпра­вителем.

Пусть, например, протокол IP, работающий на каком-либо маршрутизаторе, об­наружил, что пакет для дальнейшей передачи по маршруту необходимо фраг­ментировать, но в пакете установлен признак DF (не фрагментировать). Прото­кол IP, обнаруживший, что он не может передать IP-пакет далее по сети, должен отправить диагностическое ICMP-сообщение узлу-источнику и только потом от­бросить пакет.

Помимо диагностики ICMP также используется для мониторинга сети. Так, в ос­нове популярных утилит для мониторинга IP-сетей ping и tracert лежат ICMP- сообщения. С помощью ICMP-сообщений приложение может определить мар­шрут перемещения данных, оценить работоспособность сети, определить время прохождения данных до заданного узла, сделать запрос о значении маски опре­деленного сетевого интерфейса и т. п.

Заметим, что некоторые из пакетов могут исчезнуть в сети, не вызвав при этом никаких оповещений. В частности, протокол ICMP не предусматривает переда­чу сообщений о проблемах, возникающих при обработке IP-пакетов, несущик ICMP-сообщения об ошибках. (Это правило, однако, не действует для 1СМР-за- просов.) Такое решение было принято разработчиками протокола, чтобы не по­рождать «штормы» в сетях, когда количество сообщений об ошибках лавинооб­разно возрастает. По этой же причине ICMP-сообщения не передаются, если ошибка возникла при передаче какого-либо фрагмента, кроме первого, а также когда потерянный пакет имел широковещательный IP-адрес или был упакован в кадр с широковещательным адресом несущей технологии.

Поскольку IP-пакет содержит адрес отправителя, но не содержит никакой адрес­ной информации о промежуточных маршрутизаторах, ICMP-сообщения направ­ляются только конечным узлам. Здесь сообщения могут быть обработаны либо ядром операционной системы, либо протоколами транспортного и прикладного уровней, либо приложениями, либо просто проигнорированы. Важно, что обра­ботка ICMP-сообщений не входит в обязанности протоколов IP и ICMP.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: