Сетевой протокол icmp функции формат пакета основные типы пакетов и их использование

Структура протокола ICMP

Internet Control Message Protocol или просто ICMP описан в RFC 792. Данный протокол определяет набор различных сообщений, целью которых является управление сетью.

ICMP сообщения могут классифицироваться как сообщения об ошибках, а также как сообщения типа “запрос — ответ”.

Ниже представлен основной формат пакета ICMP

Пакеты ICMP определяются по их типу (Type), однако, большинство типов могут иметь более специфичные типы, они определяются по полю Code. RFC 1700 определяет все основные типы и коды для протокола ICMP.

В следующей таблице перечислены данные поля с их описанием

Тип Код Название
0 0 Echo Reply
3 DESTINATION UNREACHABLE
0 Network Unreachable
1 Host Unreachable
2 Protocol Unreachable
3 Port Unreachable
4 Fragmentation Needed and Don’t Fragment Flag Set
5 Source Route Failed
6 Destination Network Unknown
7 Destination Host Unknown
8 Source Host Isolated
9 Destination Network Administratively Prohibited
10 Destination Host Administratively Prohibited
11 Destination Network Unreachable for Type of Service
12 Destination Host Unreachable for Type of Service
4 0 SOURCE QUENCH (deprecated)
5 REDIRECT
0 Redirect Datagram for the Network (or Subnet)
1 Redirect Datagram for the Host
2 Redirect Datagram for the Network and Type of Service
3 Redirect Datagram for the Host and Type of Service
6 0 ALTERNATE HOST ADDRESS
8 0 ECHO
9 0 ROUTER ADVERTISEMENT
10 0 ROUTER SELECTION
11 TIME EXCEEDED
0 Time to Live Exceeded in Transmit
1 Fragment Reassembly Time Exceeded
12 PARAMETER PROBLEM
0 Pointer Indicates the Error
1 Missing a Required Option
2 Bad Length
13 0 TIMESTAMP
14 0 TIMESTAMP REPLY
15 0 INFORMATION REQUEST (Obsolete)
16 0 INFORMATION REPLY (Obsolete)
17 0 ADDRESS MASK REQUEST (Near-Obsolete)
18 0 ADDRESS MASK REPLY (Near-Obsolete)
30 Traceroute

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

Одни из наиболее часто встречающихся примеров ICMP сообщений являются Echo и Reply . По ссылке можно скачать дамп, показывающий выполнение команды ping в сторону адреса 8.8.8.8. Ниже будут представлены вырезки Echo и Reply из данных дампов.

Далеко не все типы пакетов ICMP можно встретить сегодня в современных сетях, но некоторые из них имеют важное значение для функционала маршрутизации, например, редирект — ICMP Type 5.

Данный тип используется маршрутизаторами для уведомления других устройств о том, что для данного адреса назначения в текущей канальной среде следует использовать другой маршрутизатор.

Читайте также:  Компьютерная сеть офисная сеть и локальная сеть

Предположим, что в одной канальной среде с конечным устройством есть два маршрутизатора Router-London и Router-Moscow . Маршрутизатор Router-Moscow является шлюзом по умолчанию для конечного устройства. Конечное устройство отправляет пакет на маршрутизатор Router-Moscow , в свою очередь маршрутизатор Router-Moscow имеет достижимость адреса на который отправил конечный хост через маршрутизатор Router-London .

Получается, что маршрутизатор Router-Moscow должен отправить пакет в тот же самый интерфейс на котором он получил изначальный пакет. Маршрутизатор Router-Moscow отправляет пакет маршрутизатору Router-London , а также отправляет сообщение ICMP Redirect конечному устройству, информируя его о том, что все следующие пакеты он должен отправлять непосредственно через маршрутизатор Router-London (имеется в виду только до сети, куда был отправлен первый пакет, все пакеты до других сетей отправляются также на шлюз по умолчанию)

Практика

Рассмотрим пример с ICMP Redirect на практике. Имеется простая схема с двумя маршрутизаторами в одной канальной среде

Вся адресация представлена на схеме. В качестве простоты эксперимента рассмотрим ситуацию когда клиент будет отправлять пинг на адрес внешнего интерфейса маршрутизатора Router-London , маршрутизатор Router-Moscow является шлюзом для клиента.

На маршрутизаторе Router-Moscow дополнительно настроен статический маршрут до сети 172.17.0.0/24 через адрес внутреннего интерфейса маршрутизатора Router-London .

Для того чтобы убедиться в правдивости моих слов предлагаю скачать дампы с двух интерфейсов маршрутизатора Router-London и Router-Moscow и посмотреть весь процесс самим.

Помните: так как все устройства находятся в общей широковещательной среде, то все пакеты отправленные на широковещательный адрес ffff.ffff.ffff будут видны в каждом из дампов.

Дамп с интерфейса gi0/0 маршрутизатора Router-Moscow Дамп с интерфейса gi0/0 маршрутизатора Router-London

По умолчанию редирект включен на устройствах cisco. Данное поведение можно отключить на интерфейсе, выполнив команду no ip redirects

P.S. вся информация представленная здесь используется исключительно в образовательных целях. Все совпадения с реальными объектами, адресами, именами и т.д. случайна и не несёт цели получить от этого выгоду или причинить кому-либо вред.

Updated: October 7, 2021

Источник

Сетевой протокол icmp функции формат пакета основные типы пакетов и их использование

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry
Читайте также:  При кольцевой топологии сети рабочие станции

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

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

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

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

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

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

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

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

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

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

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

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

  • Например, тип 0 и тип 8 это эхо-ответ и эхо-запрос, которые используются для проверки доступности компьютера в сети.
  • Тип 13 и 14 запрос и ответ отметки времени. Эти запросы используются для проверки быстродействия сети. Другой вид это сообщение без запроса.
  • Тип 3 это сообщение об ошибке узел назначения недостижим.
  • Тип 5 сообщение о новом маршруте, который позволяет быстрее попасть к необходимой сети.
  • Тип 9 сообщение о маршрутизаторе. Маршрутизаторы в сети периодически рассылают такие сообщения, чтобы компьютеры, которые находятся в сети могли узнать, какие есть маршрутизаторы.
  • Тип 10 запрос сообщения о маршрутизаторе, если компьютер только что подключился к сети, он может не дожидаться периодического сообщения от маршрутизаторов, отправить такой запрос и маршрутизатор сразу отправит ответ о себе.
  • Сообщение с типом 11 используется если маршрутизатор отбросил пакет время жизни которого истекло, как правило такая ситуация возникает, если в сети появилась петля.
  • Сообщение с типом 12 — проблемы с параметрами, говорит о том, что в заголовке IP какая-то ошибка и маршрутизатор не может отправить такой пакет.
Читайте также:  Схема компьютерных сетей visio

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

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

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

Применение ICMP

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

Утилита ping

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

Утилита ping

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

Утилита ping

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

ping пример

Утилита traceroute

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

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

Пример Утилита traceroute

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Источник

Оцените статью
Adblock
detector