Что такое icmp пакеты

Что такое icmp пакеты

4.4.4 Протокол передачи команд и сообщений об ошибках (ICMP)
Семенов Ю.А. (ГНЦ ИТЭФ)

Задачи, решаемые ICMP

Подводя итоги, можно сказать, что ICMP-протокол осуществляет:

Следует только иметь в виду, что получив отклик на посланный запрос, мы узнаем состояние объекта не в данный момент, а RTT/2 тому назад.

ICMP-сообщения об ошибках никогда не выдаются в ответ на:

Эти правила призваны блокировать потоки дейтограмм, посылаемым в отклик на мультикастинг или широковещательные ICMP-сообщения.

ICMP-сообщения имеют свой формат, а схема их вложения аналогична UDP или TCP и представлена на рис. 4.4.4.1.

Схема вложения ICMP-пакетов в Ethernet-кадр

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.1. Схема вложения ICMP-пакетов в Ethernet-кадр

Все ICMP пакеты начинаются с 8-битного поля типа ICMP и его кода (15 значений).

По существу, значения полей типа и кода выполняют почти ту же функцию, что и порт в ТСР и UDP-протоколах.

Типы и коды ICMP-сообщений

Таблица 4.4.4.1. Типы и коды ICMP-сообщений.

ICMP-сообщениеОписание сообщения
ТипКод
0Эхо-ответ (ping-отклик)
3Адресат недостижим
0* Сеть недостижима
1* ЭВМ не достижима
2* Протокол не доступен
3* Порт не доступен
4* Необходима фрагментация сообщения
5* Исходный маршрут вышел из строя
6* Сеть места назначения не известна
7* ЭВМ места назначения не известна
8* Исходная ЭВМ изолирована
9* Связь с сетью места назначения административно запрещена
10* Связь с ЭВМ места назначения административно запрещена
11* Сеть не доступна для данного вида сервиса
12* ЭВМ не доступна для данного вида сервиса
13* Связь административно запрещена с помощью фильтра.
14* Нарушение старшинства ЭВМ
15* Дискриминация по старшинству
40* Отключение источника при переполнении очереди (quench)
5Переадресовать (изменить маршрут)
0Переадресовать дейтограмму в сеть (устарело)
1Переадресовать дейтограмму на ЭВМ
2Переадресовать дейтограмму для типа сервиса (tos) и сети
3Переадресовать дейтограмму для типа сервиса и ЭВМ
80Эхо запроса (ping-запрос).
90Объявление маршрутизатора
100Запрос маршрутизатора
11Для дейтограммы время жизни истекло (ttl=0):
0*при передаче
1* при сборке (случай фрагментации).
12* Проблема с параметрами дейтограммы
0* Ошибка в ip-заголовке
1* Отсутствует необходимая опция
13Запрос временной метки
14Временная метка-отклик
15Запрос информации (устарел)
16Информационный отклик (устарел)
17Запрос адресной маски
18Отклик на запрос адресной маски

Процедура «отключение источника» (quench, поле тип ICMP=4) позволяет управлять потоками данных в каналах Интернет. Не справляясь с обработкой дейтограмм, ЭВМ-адресат может послать запрос «отключить источник» отправителю, который может сократить темп посылки пакетов или вовсе прервать их посылку. Специальной команды, отменяющей прежние запреты, не существует. Если сообщения об отключении прекращаются, источник может возобновить посылку пакетов или увеличить частоту их отправки. Ниже (на рис. 4.4.4.2) представлен формат эхо-запроса (ping) и отклика для протокола ICMP.

Форматы пакетов ICMP

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.2. Формат эхо-запроса и отклика ICMP

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Так как в пакете ICMP нет поля порт, то при запуске нескольких процессов PING одновременно может возникнуть проблема с тем какому из процессов следует передать тот или иной отклик. Для преодоления этой неопределенности следует использовать уникальные значения полей идентификатор.

Поле идентификатор бывает важно, когда ЭВМ используется как программируемый генератор трафика. В этом случае очередной ICMP-пакет посылается, не дожидаясь прихода отклика. Более того, такие пакеты могут генерироваться несколькими процессами одновременно. В этом случае поле идентификатор становится необходимым, чтобы определить, какому процессу ОС передать очередной отклик.

Время распространения ICMP-запроса, вообще говоря, не равно времени распространения отклика. Это связано не только с возможными изменениями в канале. В общем случае маршруты их движения могут быть различными.

Когда маршрутизатор не может доставить дейтограмму по месту назначения, он посылает отправителю сообщение «адресат не достижим» (destination unreachable). Формат такого сообщения показан ниже (на рис. 4.4.4.3).

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.3. Формат ICMP-сообщения «адресат не достижим»

Поле код содержит целое число, проясняющее положение дел. Перечень кодов таких сообщений помещен в таблице 4.4.4.1. Поле MTU на следующем этапе характеризует максимальную длину пакетов на очередном шаге пересылки.

Так как в сообщении содержится Интернет-заголовок и первые 64-байта дейтограммы, легко понять, какой адрес оказался недостижим. Этот тип ICMP-сообщения посылается и в случае, когда дейтограмма имеет флаг DF=1 («не фрагментировать»), а фрагментация необходима. В поле код в этом случае будет записано число 4.

Если буфер приема сообщения переполнен, ЭВМ посылает сообщение типа 4 для каждого из не записанных в буфер сообщений.

Так как собственные часы различных ЭВМ имеют свое представление о времени, протокол ICMP, среди прочего, служит для синхронизации работы различных узлов, если это требуется (запросы временных меток). Протокол синхронизации NTP (network time protocol) описан в RFC-1119.

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

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.4. Формат icmp-запроса снижения загрузки

В Internet таблицы маршрутизации остаются без изменений достаточно долгое время, но иногда таблицы все же меняются. Если маршрутизатор обнаружит, что ЭВМ использует неоптимальный маршрут, он может послать ей ICMP-запрос переадресации. Формат такого сообщения отображен на рисунке 4.4.4.5.

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.5. Формат ICMP-запроса переадресации

Поле Internet-адрес маршрутизатора содержит адрес маршрутизатора, который ЭВМ должна использовать, чтобы посланная дейтограмма достигла места назначения, указанного в ее заголовке. В поле internet-заголовок кроме самого заголовка лежит 64 первых бита дейтограммы, вызвавшей это сообщение. Поле код специфицирует то, как нужно интерпретировать адрес места назначения (см. табл. 4.4.4.1).

Команды переадресации маршрутизатор посылает только ЭВМ и никогда другим маршрутизаторам. Рассмотрим конкретный пример. Пусть некоторая ЭВМ на основе своей маршрутной таблицы посылает пакет маршрутизатору M1. Он, просмотрев свою маршрутную таблицу, находит, что пакет следует переслать маршрутизатору M2. Причем выясняется, что пакет из M1 в M2 следует послать через тот же интерфейс, через который он попал в M1. Это означает, что M2 доступен и непосредственно для ЭВМ-отправителя. В такой ситуации M1 посылает ICMP-запрос переадресации ЭВМ-отправителю указанного пакета с тем, чтобы она внесла соответствующие коррективы в свою маршрутную таблицу.

Маршрутная таблица может загружаться из файла, формироваться менеджером сети, но может создаваться и в результате запросов и объявлений, посылаемых маршрутизаторами. После загрузки системы маршрутизатор посылает широковещательный запрос. Один или более маршрутизаторов посылают в ответ сообщения об имеющейся маршрутной информации. Кроме того, маршрутизаторы периодически (раз в 450-600 сек.) широковещательно объявляют о своих маршрутах, что позволяет другим маршрутизаторам скорректировать свои маршрутные таблицы. В RFC-1256 описаны форматы ICMP-сообщений такого рода (см. рис. 4.4.4.6).

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.6. Формат ICMP-сообщений об имеющихся маршрутах

Поле число адресов характеризует количество адресных записей в сообщении. Поле длина адреса содержит число 32-битных слов, необходимых для описания адреса маршрутизатора. Поле время жизни предназначено для записи продолжительности жизни объявленных маршрутов (адресов) в секундах. По умолчанию время жизни равно 30 мин. Поля уровень приоритета представляют собой меру приоритетности маршрута по отношению к другим маршрутам данной подсети. Чем больше этот код тем выше приоритет. Маршрут по умолчанию имеет уровень приоритета 0. Формат запроса маршрутной информации (8 октетов, рис. 4.4.4.7).

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.7 Формат запроса маршрутной информации

Так как следующий прогон (hop) дейтограммы определяется на основании локальной маршрутной таблицы, ошибки в последней могут привести к зацикливанию пакетов. Для подавления таких циркуляций используется контроль по времени жизни пакета (TTL). При ликвидации пакета по истечении TTL маршрутизатор посылает отправителю сообщение «время истекло», которое имеет формат (рис. 4.4.4.8):

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.8. Формат сообщения «время (ttl) истекло»

Значение поля код определяет природу тайм-аута (см. табл. 4.4.4.1).

Когда маршрутизатор или ЭВМ выявили какую-либо ошибку, не из числа описанных выше (например, нелегальный заголовок дейтограммы), посылается сообщение «конфликт параметров». Это может произойти при неверных параметрах опций. При этом посылается сообщение вида (рис. 4.4.4.9):

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.9. Формат сообщения типа «конфликт параметров»

Поле указатель отмечает октет дейтограммы, который создал проблему. Код=1 используется для сообщения о том, что отсутствует требуемая опция (например, опция безопасности при конфиденциальных обменах), поле указатель при значении поля код=1 не используется.

В процессе трассировки маршрутов возникает проблема синхронизации работы часов в различных ЭВМ. К счастью синхронизация внутренних часов ЭВМ требуется не так часто (например, при выполнении синхронных измерений), негативную роль здесь могут играть задержки в каналах связи. Для запроса временной метки другой ЭВМ используется сообщение запрос временной метки, которое вызывает отклик с форматом (рис. 4.4.4.10):

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.10. Формат ICMP-запроса временной метки

traceroute to crnvma.cern.ch(128.141.2.4) 30 hops max, 40 byte packets
1itep-fddi-bbone(193.124.224.50) 3 ms 2 ms 3 ms
2msu-tower.moscow.ru.radio-msu.net(193.124.137.13) 3 ms 3 ms 3 ms
3npi-msu.moscow.ru.radio-msu.net(193.124.137.9) 27 ms 3 ms 9 ms
4desy.hamburg.de.radio-msu.net(193.124.137.6) 556 ms 535 ms 535 ms
5* 188.1.133.56(188.1.133.56) 637ms 670ms
6duesseldorf2.empb.net(193.172.4.12) 740ms(ttl=59!) 839ms(ttl=59!) 2066ms(ttl=59!)
7bern3.empb.net(193.172.4.30) 2135ms (ttl=58!) 1644ms (ttl=58!) 1409ms (ttl=58!)
8cernh3.euro-hep.net(193.172.24.10) 1808ms 1508ms 1830ms
9cgate1.cern.ch(192.65.185.1) 1116ms 1270ms 1278ms
10crnvma.cern.ch(128.141.2.4) 1132ms 1362ms 1524ms

Отсюда видно, что наиболее узкими участками маршрута являются Гамбург-Дюссельдорф-Берн-CERN. Следует иметь в виду, что канал МГУ-Гамбург является спутниковым и 500мс задержки здесь вносит время распространения сигнала до спутника и обратно. Участок Гамбург-Дюссельдорф (X.25, квота 256кбит/с) является общим также и для потока данных из Германии в США. Передача IP поверх X.25 также снижает эффективную широкополосность канала. Остальные связи обладают недостаточной пропускной способностью. Программа ping показывает для данных участков в часы пик высокую долю потерянных пакетов. Таким образом, имея карту связей и используя указанные процедуры, вы можете успешно диагностировать ситуацию в сети. Продвинутые же программисты могут легко написать свои диагностические программы, базирующиеся на ICMP, как для локальной сети, так и для «окрестного» Интернет.

При работе с субсетью важно знать маску этой субсети. Как уже отмечалось выше, IP-адрес содержит секцию адреса ЭВМ и секцию адреса сети. Для получения маски субсети ЭВМ может послать «запрос маски» в маршрутизатор и получить отклик, содержащий эту маску. ЭВМ может это сделать непосредственно, если ей известен адрес маршрутизатора, либо прибегнув к широковещательному запросу. Ниже описан формат таких запросов-откликов (рис. 4.4.4.11).

Что такое icmp пакеты. Смотреть фото Что такое icmp пакеты. Смотреть картинку Что такое icmp пакеты. Картинка про Что такое icmp пакеты. Фото Что такое icmp пакеты

Рис. 4.4.4.11. Формат запроса (отклика) маски субсети

Источник

Что такое icmp пакеты

Другими словами, вы можете представить ICMP как команду, которая производит механические детали для автомобилей. Лучшим способом сборки транспортного средства было бы сначала изготовить каждую отдельную деталь, прежде чем отправлять каждую из этих деталей на сборочную линию, которая затем собирала бы их в более сложный продукт. Однако, как мы все знаем, будут моменты, когда производственная бригада не сможет отправить некоторые детали в запланированные сроки. Если когда-либо будут отсутствовать детали, то сборочная линия должна будет уведомить об этом производственную группу, следовательно, ICMP работает аналогичным образом. По сути, ICMP играет роль посланника, который передает данные и информацию от получателя к отправителю.

Cодержание

Функциональность

На самом деле, этот протокол довольно сложный. Он имеет множество других функций, помимо сообщения об ошибках в пакетных передачах и хостах, которые не могут быть достигнуты. Он также ретранслирует эхосигналы, а также эхо-ответы на сообщения. Это используется с помощью хорошо известной команды PING, которая позволяет большинству пользователей передавать эхо на принимающий хост. При получении эхосигнала он посылает эхо-ответ.

Таким образом, ICMP-сообщения предоставляют возможность сети и системе уведомлять IP-адрес источника, который является передающим, если удаленный узел, который является принимающей стороной, не получает пакетов, которые были переданы. [2]

Маршрутизатор используется для передачи популярного сообщения «Destination Unreachable» обратно на исходный узел. [3] Это затем отправит его на устройство или программу, которые первыми передали пакеты данных. Эти сообщения об ошибках затем сообщали программе о наличии проблемы с подключением к сети. Как только исходная программа получит информацию о том, что некоторые из этих пакетов данных не дошли до получателя, она затем повторно передаст эту информацию получателю.

Как основная функция, ICMP не обязательно регулярно используется отдельными пользователями в приложениях конечных пользователей, но используется многими сетевыми администраторами для устранения любых ошибок, присутствующих в интернет соединениях, с помощью таких утилит, как диагностика: [4]

Основной протокол, используемый ICMP, используется промежуточными устройствами, маршрутизаторами и даже хостами для связи в случае возникновения ошибки и обновления необходимых маршрутизаторов, промежуточных устройств и хостов. При этом наиболее широко используемые IPv4 (Internet Protocol version 4) и гораздо новые IPv6 используют аналогичные версии протокола ICMP, которые называются ICMPv4 и ICMP6 соответственно. [5]

С точки зрения того, как ICMP соотносится с различными заголовками пакетов, заголовок ICMP появляется после заголовка пакета IPv4 или IPv6 при распознавании по номеру протокола. Этот сложный протокол содержит три различных основных компонента: [6]

ICMP Сообщения

Наиболее популярным и известным сообщением из датаграммы ICMP является сообщение «Destination Unreachable». [1:1] Существует несколько причин, по которым генерируется это сообщение, включая такие проблемы, как невозможность подключения к сети, хосту, порту или даже неисправный протокол.

Большинство пользователей должны знать и учитывать, что хотя сообщение «Destination Unreachable» является наиболее распространенным полученным сообщением, ICMP не единственное сообщение, которое может транслироваться. Существуют и другие сообщения об ошибках, которые включают в себя: [2:1]

Другие сообщения: «Проблема с параметрами», «Запрос и ответ на адресную маску», «Метка времени».

Ограничения

Несмотря на все эти роли, которые должна выполнять ICMP, у нее есть некоторые функциональные ограничения. ICMP не помогает хосту-источнику или IP-адресу стать более надежным и фактически не принимает и не отправляет никаких данных, которые могут быть использованы для передачи. [5:1] ICMP просто существует как способ выявления проблем с потерянными пакетами и любой нарушенной маршрутизацией.

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

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

ICMP (Internet Control Messaging Protocol)

Протокол управляющих сообщений Internet (Internet Control Messaging Protocol — ICMP) фактически считается вспомогательным протоколом для IP. Поэтому он определен в том же документе стандарта Internet (стандарт 5), что и IP. Но ICMP по принципам своего функционирования в большей степени напоминает протокол верхнего уровня, чем вспомогательный протокол, и использует IP таким же образом, как его используют другие протоколы верхнего уровня (такие как TCP). В частности, ICMP позволяет протоколу IP инкапсулировать передаваемые им данные. Поэтому в протоколе ICMP, как таковом, применяются механизмы адресации и фрагментации IP. Причина, по которой ICMP считается вспомогательным протоколом, состоит в том, что он играет крайне важную роль в обеспечении успешного функционирования IP, поэтому стал обязательным компонентом любой реализации IP. Какую же важную роль играет этот протокол? Он просто сообщает об ошибках.

Назначение ICMP как протокола состоит в предоставлении устройствам IP информации о результатах выполненных ими операций передачи данных по протоколу IP. Как правило, этот протокол чаще всего используется для передачи хостам сообщений о том, что возникла какая-то ошибка. Например, предположим, что предпринимается попытка подключения к удаленному хосту с помощью протокола Telnet. Пользователь вводит в приложении Telnet соответствующее имя хоста, а через несколько секунд получает ответ, что адресат недоступен — Destination Unreachable. Каким образом приложение Telnet могло определить, что адресат недоступен? Если бы маршрутизатор просто уничтожил пакет с запросом на установление соединения, то не было бы возможности определить действительную причину ошибки.

Именно для этой цели и служит ICM Р. Приложение Telnet не должно ожидать до бесконечности установления соединения (или устанавливать тайм-аут на четыре минуты, ожидая истечения максимального значения TTL), поскольку им может быть сразу же получено сообщение ICMP от маршрутизатора с указанием, что адресат недоступен. Сообщение Destination Unreachable представляет собой лишь одно из сообщений многих типов, которые определены в протоколе ICMP. Полный список типов сообщений ICMP, которые предусмотрены в документе RFC 792, приведен в табл. 5.1. Назначение сообщений некоторых типов описано ниже. Следует отметить, что все реализации IP формально должны распознавать сообщения всех типов, но не во всех этих реализациях фактически используется полный перечень типов сообщения. Иными словами, состав поддерживаемых сообщений зависит от реализации протокола IP в конкретной операционной системе.

Таблица 5.1. Коды и типы сообщений ICMP.

Код ICMPТип ICMP
0Echo Reply (Ответ эхо-повтора)
3Destination Unreachable (Адресат недоступен)
4Source Quench (Подавление источника)
5Redirect (Перенаправление)
8Echo Request (Запрос эхо-повтора)
11Time Exceeded (Превышение установленного времени)
12Parameter Problem (Ошибка при обработке параметра)
13Timestamp Request (Запрос временной отметки)
14Timestamp Reply (Ответ с временной отметкой)
15Information Request (Информационный запрос)
16Information Reply (Информационный ответ)

Содержание

Запрос и ответ эхо-повтора ICMP

Сообщения эхо-повтора ICMP используются для диагностических целей в одном из наиболее широко применяемых в настоящее время сетевых приложений — в программе Ping. Те, кто незнаком с программой Ping, могут рассматривать ее как грубый способ проверки наличия признаков жизни. Например, если преподаватель на уроке заметил, что один из учеников положил голову на стол, он может проверить, жив ли этот ученик (и просто уснул) или умер. В этом случае преподавателю нужно взять указку (ведь она есть практически у каждого преподавателя) и «постучать» нерадивого ученика по голове. Итак, если он действительно спит, то обязательно отреагирует каким- либо образом. Ну а если случилось худшее, то и об этом необходимо вовремя узнать.

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

Сообщение Destination Unreacheable (адресат недостижим)

Это сообщение применяется для передачи хосту указания на то, что получатель отправленного им пакета IP не был найден. Такая проблема может быть вызвана многими причинами, о которых можно узнать по дополнительному коду в сообщении Destination Unreachable. Для этого сообщения определено шесть дополнительных кодов, описание которых приведено ниже.

Этот код позволяет хосту определить, что заданный им маршрут передачи пакета получателю является недействительным. Как правило, это сообщение не применяется, поскольку в протоколе IP обычно не предусматривается маршрутизация от отправителя. Сообщение Source Quench(подавление источника)

Сообщение Source Quench

Сообщение Source Quench протокола ICMP является типичным примером уведомления о заторе. Когда буфер устройства начинает заполняться, этим устройством может быть отправлено сообщение Source Quench ICMP на предыдущее устройство, находящееся на расстоянии одного транзитного перехода, с требованием замедлить передачу. Такой механизм напоминает схему уведомления о заторе, которая рассматривалась в главе 1. Единственным недостатком такого механизма является то, что устройства обычно начинают отправлять сообщения Source Quench только после того, как в них начинается уничтожение пакетов, полученных от предыдущего устройства. Сообщения Source Quench могут вырабатываться любыми устройствами вдоль пути следования пакета, независимо от того, являются ли эти устройства маршрутизаторами или оконечными устройствами (хостами). Кроме того, на сообщение Source Quench может также ответить любое устройство вдоль пути следования (маршрутизатор или хост), но и в этом случае перечень возможных ответов зависит от конкретной реализации протокола ICMP.

Сообщение Redirect (перенаправление)

Сообщение Redirect ICMP передает устройству информацию о том, что в нем используется неправильный шлюз (маршрутизатор) для передачи пакетов по заданному адресу. После получения маршрутизатором от хоста пакета, предназначенного для отправки в конкретную удаленную сеть, маршрутизатор выполняет в своей таблице маршрутизации поиск сети получателя и перенаправляет пакет на следующий маршрутизатор по пути к этой сети. А если согласно этой таблице обнаруживается, что устройство (или маршрутизатор), находящееся в конце следующего транзитного перехода, относится к той же сети, что и клиент, текущий маршрутизатор перенаправляет пакет обычным образом, но затем передает клиенту сообщение Redirect. Это сообщение информирует клиента, что более быстрый путь к достижению искомой сети состоит в обращении непосредственно к тому маршрутизатору, который находится в одной сети с клиентом. Сообщение Redirect предназначено для того, чтобы клиент включил в свою локальную таблицу маршрутизации новую запись с указанием сети получателя и альтернативного маршрутизатора, сократив тем самым путь к удаленной сети.

Сообщение Time Exceeded (превышение установленного времени)

Для передачи хосту информации о том, что пересылка отправленного им сообщения потребовала слишком много времени на пути к намеченному получателю, после достижения нулевого значения в поле TTL пакета IP хосту отправителя передается сообщение Time Exceeded. Поле TTL обычно применяется в программе traceroute (версия этой программы, применяемая в операционной системе Cisco, носит название Пасе, а в операционной системе Windows — tracert). Назначение программы traceroute состоит в проверке каждого транзитного перехода на пути к указанному получателю. Такая информация позволяет узнать точный маршрут прохождения пакетов от отправителя к получателю. Такая информация имеет исключительно важное значение при поиске неисправностей.

Например, обычно автор, чтобы обратиться на Web-узел Microsoft, отправляет со своего домашнего компьютера пакеты, которые вначале поступают на узел в г. Роли (Raleigh), шт. Северная Каролина, затем в Вашингтон, округ Колумбия, и наконец, поступают в Сиэтл, шт. Вашингтон. А когда автор заметил, что в определенные дни Web-узел Microsoft отвечает на запросы с особенно значительным замедлением, он решил выяснить, находится ли причина такого замедления в его локальной сети, в сети провайдера Internet или просто связана с нарушением работы опорной сети. А поскольку после выполнения трассировки маршрута с помощью программы traceroute было обнаружено, что путь в Сиэтл в период значительного замедления проходит через Флориду, ответ стал очевидным. По всей вероятности, опорная сеть, которая обычно используется, была перегружена или остановлена, поэтому пакеты были направлены по альтернативному маршруту, который оказался намного длиннее.

В программе traceroute задача проверки маршрута выполняется очень просто. Как указано выше, после истечения времени, установленного в поле TTL, пакет уничтожается и хосту передается сообщение Time Exceeded протокола ICMP. В программе traceroute как раз и используется это поле, в котором по мере отправки очередных пакетов устанавливаются небольшие, но последовательно увеличивающиеся значения. Установив значение TTL в первом пакете, передаваемом получателю, равное 1, программа traceroute получает сообщение Time Exceeded от первого же маршрутизатора на пути к месту назначения (такое сообщение, безусловно, не может быть получено в том случае, если в конфигурации маршрутизатора не предусмотрена отправка сообщений Time Exceeded). Причина отправки такого сообщения является очевидной: каждый маршрутизатор в пути следования пакета должен уменьшить значение TTL, по меньшей мере, на 1. А если поле TTL имело значение 1 и маршрутизатор уменьшил его на 1, такое значение становится равным 0, поэтому пакет отбрасывается и отправителю передается сообщение Time Exceeded.

Итак, программа traceroute просто выполняет такую операцию много раз, последовательно увеличивая при этом значение TTL на 1. Поэтому при отправке первого сообщения TTL равно 1, что позволяет определить первый транзитный переход. Во втором сообщении оно равно 2, что дает возможность узнать, где находится второй транзитный переход и т.д.

Сообщение Parameter Problem (ошибка при обработке параметра)

Сообщение Parameter Problem передается отправителю в том случае, если устройство получателя не может определить, что означает один из параметров в заголовке IP, и поэтому вынуждено отбросить ракет. Как правило, это сообщение передается только в том случае, если получателем обнаружены в пакете такие опции, которые он не может распознать.

Сообщения Timestamp Request (запрос отметки времени) и Timestamp Reply (ответ с отметкой времени)

Сообщения Timestamp протокола ICMP позволяют проставить в пакете отметку времени (в миллисекундах после полуночи) с указанием того момента, когда отправитель послал сообщение, получатель принял это сообщение, а затем отправил его назад. Наиболее очевидный способ использования таких сообщений состоит в измерении задержки (определении того, какова продолжительность времени между отправкой сообщения по сети и получением ответа), но эти сообщения применяются также для синхронизации аппаратных часов.

Сообщения Information Request (информационный запрос) и Information Reply (информационный ответ)

Сообщения ICMP типа Information применяются устройством для определения того, в какой сети оно находится. Устройство отправляет пакет IP, в котором в полях адреса отправителя и получателя находятся значения 0.0.0.0. Затем другое устройство (обычно маршрутизатор или сервер) в ответ передают сетевой адрес данной локальной сети, что позволяет отправителю первоначального сообщения определить, к какой сети он относится.

Дополнительная информация о протоколе ICMP приведена в документе RFC 792 (стандарт 5).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *