Протокол ICMP связан с диагностикой работоспособности интернет-сети. ICMP расшифровывается как «Internet Control Message Protocol». По сути, он используется для диагностирования сети и помогает определить, достигают ли адресата пакеты, передаваемые по сети. Если возникают какие-то проблемы в сети, тогда протокол ICMP выдает соответствующие сообщения об ошибках.
Допустим, у вас настроена передача данных по сети между двумя устройствами. При отправке пакетов информации между устройствами у вас нет гарантии, что пакет дойдет до своего адресата. Если с пакетом по пути что-либо случится, тогда вы не сможете ничего предпринять, так как не получите сообщение об этом, потому что не используете протокол ICMP. Если вы применяете протокол ICMP, тогда вы получите сообщение о проблеме в сети и сможете ее исправить.
Протокол ICMP — что это?
Если описать протокол ICMP простым языком, то это сообщение о работоспособности сети. В сообщении может содержаться информация о:
произошедшем событии в сети,
возникшей проблеме или ошибке,
диагностических мероприятиях.
Протокол ICMP передает сообщения в определенном формате. Изначально сообщение состоит из двух компонентов:
заголовок сообщения,
поле данных, содержащее фрагмент пакета, с которым произошла ошибка при передаче.
С полем данных все понятно. А вот заголовок сообщения состоит из нескольких важных частей:
Тип сообщения. Состоит из 1 байта информации и указывает на то, о чем будет дальнейшее сообщение: об ошибке, диагностике и т. д.
Код сообщения. Состоит из 1 байта информации и подробно разъясняет тип сообщения.
Контрольная сумма. Состоит из 2 байтов информации. Это поле применяется для диагностирования правильности доставки сообщения.
Служебная информация. Состоит из 4 байтов информации и содержит дополнительные служебные сведения, зависящие от кода и типа сообщения.
Протокол ICMP: тип сообщения
Принципиально важной частью сообщения для пользователя является «тип сообщения», потому что именно он указывает на то, в чем заключается назначение сообщений протокола ICMP. Тип сообщения определяется каким-то числом, для которого есть специальная расшифровка. Например:
«0» — «эхо-ответ», определяет доступность компьютера в сети;
«3» — «невозможно достичь узел назначения», сообщение об ошибке;
«5» — «маршрут был перенаправлен», сообщение о новом ускоренном маршруте передачи пакетов;
«8» — «эхо-запрос», определяет доступность компьютера в сети;
«9» — «описание работы маршрутизатора», сообщение от маршрутизатора;
«10» — «запрос сведений о маршрутизаторе», сообщение для маршрутизатора;
«11» — «время жизни пакета истекает», сообщение о наличии «петли» в сети, так как пакет не может быть доставлен до адресата;
«12» — «описание проблем с параметрами отправки», сообщения о проблеме с маршрутизатором;
«13» — «запрашиваем отметку времени», проверка быстродействия сети;
«14» — «высылаем отметку времени», проверка быстродействия сети.
Протокол ICMP: код сообщения
«Код сообщения» напрямую зависит от «типа сообщения». Обычно он немного подробнее разъясняет сообщение. Мы не будет приводить все возможные коды сообщений, потому что их очень много для каждого отдельного типа, но мы можем рассмотреть вероятные коды сообщения, которые будут соответствовать типу «3» (невозможно достичь узел назначения). У такого типа сообщения может быть следующий код сообщения:
«0» — «невозможно достичь сети»;
«1» — «невозможно достичь узла»;
«2» — «невозможно достичь протокола передачи»;
«3» — «невозможно достичь порта передачи»;
«4» — «невозможно фрагментировать пакет»;
«5» — «нарушен маршрут источника»;
«6» — «неизвестная сеть назначения»;
«7» — «неизвестный узел назначения»;
«8» — «изолированный узел источника»;
«9» — «запрет администратора сети».
Формирование сообщений протокола ICMP происходит в автоматическом режиме. Сообщения формируют участники одной сети. Если нужно принудительно диагностировать сеть, тогда можно воспользоваться сторонними утилитами, которые используют в своей работе протокол ICMP.
Протокол ICMP: утилиты
Протокол ICMP можно принудительно активировать при помощи 2-х утилит:
Утилита «ping». При помощи этой утилиты проверяют доступность устройств в сети. Для этого утилита отправляет сообщения типа «8» («эхо-запрос») на устройство, для которого нужно проверить доступность. В ответ от устройства должно прийти сообщение типа «0» («эхо-ответ»). Если «эхо-ответ» от устройства не пришел, значит, с ним невозможно установить связь. Соответственно, в сети есть какие-то проблемы.
Утилита «traceroute». При помощи этой утилиты определяется маршрут от отправляющего устройства к получающему. «Маршрут» может быть достаточно длинным и включать в себя множество маршрутизаторов, количество которых определяет утилита. К примеру, можно определить маршрут от вашего компьютера к сайту «Facebook».
Заключение
Протокол ICMP — это своеобразный сетевой мессенджер, который оповещает администратора сети о том, что сейчас происходит внутри самой сети и с ее устройствами. Это удобная штука, которая работает как в автоматическом режиме, когда сообщения генерируются самими участниками сети, так и при помощи сторонних утилит, которые работают на основе протокола ICMP.
Другое