Что такое icmp запрос

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

ICMP, который расшифровывается как Internet Control Message Protocol это протокол третьего уровня модели OSI, который используется для диагностики проблем со связностью в сети. Говоря простым языком, ICMP помогает определить может ли достичь пакет адреса назначения в установленные временные рамки. Обычно, ICMP “юзают» маршрутизаторы и устройства третьего уровня.

Полный курс по Сетевым Технологиям

В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer

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

Для чего используется ICMP?

Про трассировку

Так и с “трассировкой». Когда говорят “сделайте трассировку маршрута» это означает, что мы хотим увидеть полный маршрут между хостом, на котором выполняется трассировка до хоста назначения. Трассировка покажет каждый из маршрутизаторов на пути до цели и время обработки и прохождения каждого из участков маршрута. Кстати, такой маршрут называется “хопом». Часто говорят: если от узла отправления до узла назначения на пути встретиться 7 маршрутизаторов, то говорят на пути будет 7 хопов. А если на 6 маршрутизаторе пакет обрабатывается дольше обычного, то в среде инженеров говорят “на 6 хопе повышенная задержка». Это один из базовых инструментов того, как можно понять, какой из сетевых узлов на маршруте пакет “сбоит». Именно в этом нам помогает протокол ICMP.

Про пинг

Теперь про ping. Можно сказать, это самый базовый инструмент инженера, который позволяет понять “»А жив ли хост?»

Помимо прочего, пинг поможет понять как долго пакет доходит до адреса назначения и, соответственно, поможет измерить задержку.

Работает ping предельно просто:

Темная сторона ICMP

Так же, раньше была популярна атака Ping of Death. Если кратко, ее суть заключалась в следующем: злоумышленник намеренно отправляет пакет больше максимального размера. Такой пакет фрагментируется на сети на несколько частей, прилетает в буфер устройства и попадает в очередь на сборка пакета “воедино». Переполнение этой очереди приводило к подвисанию хоста и полному отказу в работе.

Что же, теперь вы знаете, что такое ICMP, почему и как он используется в утилитах ping и трассировке, а так же, какие виды атак можно выполнить с помощью ICMP.

Keep calm and Merion!

Полный курс по Сетевым Технологиям

В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer

Источник

Урок 6. Описание протокола ICMP

Сам протокол находится на сетевом уровне, однако также частично выполняет функции транспортного уровня. Все ICMP пакеты инкапсулируются в IP пакеты

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

А вот и расположение протокола в модели OSI:

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

Какие функции транспортного уровня он выполняет?

Сообщает об ошибках, возникающие в сети, потому что протокол IP не предоставляет никакие механизмы по оповещению узлов в случае возникновения сетевых проблем. Поэтому данные функции и возложены на ICMP.

Но разве это не делает TCP и протоколы прикладного уровня?

TCP и протоколы прикладного уровня применяют данные механизмы в случаях, когда соединение уже установлено или на стадии установления. К тому же, если на сетевом уровне имеется проблема, то пакет никогда не дойдет до транспортного и прикладного уровней и соответственно “верхние” протоколы ничего не смогут сделать и даже ничего не будут знать.

Поясню на простом примере. Мы уже знаем как работает фрагментация пакетов. Теперь представим, что мы отправляем данные и устанавливаем флаг DF (Don’t fragment). На пути следования пакетов одному из узлов вдруг потребуется провести фрагментацию, но так как у нас установлен флаг DF, то узел не сможет обработать запрос и естественно не отправит пакет на транспортный уровень для дальнейшей обработки. Пакет будет уничтожен и если бы не ICMP, то узел-отправитель и дальше бы отправлял пакеты с запретом на фрагментацию, а пользователи бы не знали в чем проблема.
Поэтому, уничтожив пакет, узел-получатель формирует специальный ICMP ответ с указанием, что требуется фрагментация.

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

Из всего этого видно, что даже на сетевом уровне необходим механизм по контролю за ошибками.

А что произойдет, если сгенерированный ICMP пакет был потерян?

Ничего, повторно пакет высылаться не будет.

А как же выглядит сам заголовок ICMP пакета?

Заголовок состоит из 8 байт и выглядит следующим образом

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

Вот как выглядят некоторые сообщения в сниффере Wireshark:

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

С помощью ICMP можно также проверить доступность определенных узлов в сети или провести простое сетевое сканирование.
Достигается это с помощью простой техники. Узел-отправитель генерирует пакет Echo request (эхо запрос) и отправляет его определенному узлу-получателю. Узел-получатель, приняв пакет, ответит узлу-отправителю пакетом Echo reply (эхо ответ). Когда узел-отправитель получит ответ, то измерит задержку распространения пакетов в сети и возможные потери и отобразит результаты на экране. Реализуется это с помощью утилиты Ping, которая доступна на многих платформах (Windows, Linux)

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

Если пакеты не достигнут узла-получателя, то на экране узла-отправителя отобразится такой результата:

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

То есть это означает, что узел выключен или не подключен к сети?

Не совсем. Причин неуспешного пинга может быть несколько. Например, не работает маршрутизация, ICMP пакеты блокируются и так далее.
То есть Ping не дает стопроцентной гарантии того, что узел выключен.

Другой полезный инструмент, работающи й на основе ICMP способен строить карту сети, то есть отмечает все промежуточные узлы, через которые прошел пакет. Таким способом можно проверить как работает сеть и каким путем следуют пакеты к узлу-получателю. Кроме того, при возникновении сетевых проблем данная утилита поможет найти узел, который возможно является причиной сетевой проблемы. Достигается это с помощью утилиты Traceroute (Linux) либо Tracert (Windows).
Вот как выглядит работы программы:

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

А как работает данная программа?

Работа основана на том, что каждый узел (маршрутизатор), который перенаправляет пакеты в другую сеть уменьшает TTL пакета на 1. Когда TTL равна 0, то узел уничтожит пакет и сгенерирует ICMP сообщение Time Exceeded (Время жизни пакета истекло) и отправит узлу-отправителю.
Поэтому при запуске Traceroute генерирует первый пакет Ping Echo Request с TTL = 1. Первый маршрутизатор на пути следования пакета уменьшит TTL и отправит сообщение Time Exceeded. Причем данный пакет будет содержать IP адрес данного маршрутизатора в качестве узла-отправителя (Source IP address), а в качестве узла-получателя будет выступать узел, который запустил программу Traceroute.
Затем Traceroute сгенерирует второй пакет, но уже с TTL = 2. Первый маршрутизатор уменьшит TTL на 1 и отправит на следующий маршрутизатор, который тоже уменьшит TTL и если он станет равным 0, то уничтожит его и отправит Time Exceeded с указанием своего адреса. И так продолжается до тех пор, пока пакет не достигнет узла-получателя либо пока не закончится цикл отправки пакетов, который по умолчанию равен 30. Таким образом программа Traceroute и узнает обо всех маршрутизаторах в маршруте следования пакетов.

Вот как выглядит трафик в анализаторе Wireshark:

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

Иногда можно увидеть и такой трейс:

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

Что означают звездочки в выводе программы и сообщения Request timed out?

Это означает, что наш компьютер не получил никаких пакетов Time Exceeded, потому что маршрутизатору запрещено отправлять пакеты Time Exceeded. Сделано это в целях безопасности.

Источник

Протокол межсетевых управляющих сообщений. Типы и Коды ICMP — сообщений

Протокол ICMP (Internet Control Message Protocol) — протокол межсетевых управляющих сообщений.

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

Информация о возникающих ошибках в сети передается по протоколу ICMP. А также протокол ICMP может использоваться для диагностики работы в сети даже, когда в ней не возникают ошибки. Так как IP предоставляет сервис без гарантии доставки, то сообщение об ошибках ICMP не обязаны обрабатываться ни протоколом ICMP ни протоколом IP.

Формат заголовка ICMP

Рассмотрим формат пакета ICMP. Первое поле в заголовке тип сообщения. Оно говорит о том, что произошло в сети, какая ошибка или какое действие по диагностике пытаются выполнить.

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

Типы ICMP — сообщений

Самое важно в пакете ICMP это тип сообщений. Именно тип, говорит о том, что произошло в сети. Есть 2 вида ICMP сообщений. Первый вид это запрос-ответ.

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

Коды ICMP — сообщений

Следующее поле в заголовке ICMP это код сообщения. Ниже представлено несколько возможных кодов для типа сообщения 3 — узел назначения недостижим. Какие могут быть причины? Причины перечислены ниже на картинке.

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

Применение ICMP

Большая часть пакетов ICMP формируется и отправляется автоматически сетевым оборудованиям. Но некоторые типы сообщений формируются утилитами, которые применяются для диагностики сети. Рассмотрим утилиты ping и traceroute (в Windows tracert)

Утилита ping

Утилита ping используется, чтобы проверить доступность компьютера в сети. Возможно подключиться к этому компьютеру или нельзя. Ping использует это-протокол ICMP. Компьютер, который хочет проверить доступность другого, отправляет эхо-запрос (тип=8, код=0).

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

Компьютер, который получил такой запрос, в ответ отправляет эхо-ответ ICMP с типом 0, если эхо-ответ не пришел, значит установить с компьютером соединение по сети невозможно.

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

Пример использования утилиты ping для проверки возможности подключиться к сайту ВКонтакте. По умолчанию утилита ping запускает 4 эхо-запроса и для каждого эхо-запроса получен эхо-ответ. В ответе указывается некоторая диагностическая информация.

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

Утилита traceroute

Утилита traceroute позволяет определить маршрут от отправителя к получателю. Под маршрутом имеется в виду перечень всех маршрутизаторов через которые проходит пакет.

Пример работы утилиты traceroute ее windows вариант tracert для определения маршрута к сайту ВКонтакте.

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

Работа утилиты traceroute

Как утилита traceroute узнает маршрутизатор? Для этого утилита использует ICMP сообщения время жизни истекло. Чтобы этого достичь, сначала отправляется сообщение у которого время жизни установлено в единицу TTL=1.

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

Пакет доходит до первого маршрутизатора, маршрутизатор уменьшает время жизни TTL=0 и маршрутизатор отбрасывает пакет.

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

И генерирует сообщение об ошибке ICMP с типом 11, код 0 время жизни истекло. Утилита traceroute из заголовка IP пакета в которого вложен ICMP извлекает IP-адрес маршрутизатора.

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

На следующем этапе о тправляется пакет с временем жизни равным двум TTL=2.

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

На первом маршрутизаторе время жизни уменьшается до единицы и пакет переходит на второй маршрутизатор.

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

Второй маршрутизатор снова уменьшает время на 1, время жизни становится нулем. Пакет отбрасывается и уже второй маршрутизатор отправляет сообщение время жизни истекло. Утилита traceroute извлекает адрес второго маршрутизатора из IP заголовка этого сообщения.

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

И так происходит до тех пор пока пакет не дойдет до узла назначения.

Заключение

Рассмотрели протокол ICMP протокол межсетевых управляющих сообщений. Протокол 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 не будет опубликован. Обязательные поля помечены *