
Урок № 6. Протокол ICMP
1. Назначение протокола ICMP. Типы сообщений.
В любой IP сети, не зависимо от ее размеров и сложности построения,
возникает потребность в диагностике различных проблем. Например, существует
необходимость проверить возможность обмена пакетами с определенным узлом.
С одной стороны, это можно сделать, обратившись к любой службе, работающей
на узле и по реакции службы судить о возможности обмена пакетами с данным
узлом. С другой стороны, бывают ситуации, когда мы не знаем, какие
приложения запущены на узле и поэтому, проверка возможности обмениваться
пакетами таким образом, сопряжена со сложностями и неопределенностью
результата.
Когда обмен пакетами с узлом на сетевом уровне не происходит,
необходимо найти, на каком именно маршрутизаторе пакеты теряются, чтобы
внести исправления в конфигурацию данного маршрутизатора. Описывая
подобного рода неисправность, принимается, что взаимодействие на физическом
и канальном уровне обеспечиваются по всей протяженности составной сети.
Вообще, чем больше сеть, тем более нужны средства диагностики
неисправностей, а так как IP претендует на возможность строить сети
произвольного масштаба, то наличие в стеке TCP/IP диагностических
инструментов просто необходимо. Кроме того, существует ряд ситуаций, в
которых маршрутизаторы или узлы отбрасывают пакеты, снова таки вследствие
каких то ошибок конфигурации. Было бы полезно, если бы отправителя
уведомляли о подобных ситуациях, чтобы с одной стороны администратор
получал информацию о проблемах и мог действовать в направлении их
устранения, а с другой стороны, чтобы приложения не посылали в сеть пакеты
которые будут отброшены, а уведомляли пользователя о невозможности
коммуникаций и не заставляли пользовать ждать результат, которого все равно
не будет.
Для решения перечисленных выше задач: диагностики неисправностей и
уведомления об ошибках в стеке TCP/IP существует специальный протокол ICMP
–Internet Control Message Protocol (Протокол управляющих сообщений составной
сети).
К задачам протокола ICMP относятся: предоставление администратору
инструмента диагностики для обнаружения ошибок в составной сети и
уведомление приложений о разнообразных ошибках, возникающих при
передаче пакетов в составной сети. Например, если пакет уничтожается
маршрутизатором из-за отсутствия маршрута к получателю, то, с помощью
протокола ICMP, отправителю пакета пересылается уведомление об этом.
Однако, применение протокола ICMP не делает ненадежную IP сеть
надежной. Пакеты в IP сети, как мы знаем, могут теряться, использование ICMP
нисколько не уменьшит потери пакетов, но в случае потери пакета будет
послано соответствующее уведомляющее сообщение его отправителю, которое,
разумеется, не уменьшает вероятность потери пакета, но послужит всего лишь
уведомлением. И на усмотрение получателя пакета - то, как он отреагирует на
это уведомление. Более того, ICMP сообщения передаются по составной сети