70839

Протокол ICMP. Утилита зондирования хостов PING

Лабораторная работа

Информатика, кибернетика и программирование

Internet Control Message Protocol (ICMP, RFC-792) – это протокол передачи команд и сообщений об ошибках. Он может быть использован для выполнения некоторых диагностических функций. Функции протокола ICMP: запрос эха и передача эхо-ответа; контроль времени жизни дейтаграмм в системе...

Русский

2014-10-28

144.77 KB

1 чел.

Тема 10: Протокол ICMP. Утилита зондирования хостов PING

Протокол ICMP –справочные сведения

Internet Control Message Protocol (ICMP, RFC-792) –это протокол передачи команд и сообщений об ошибках. Он может быть использован для выполнения некоторых диагностических функций.

Функции протокола ICMP:

  •  запрос эха и передача эхо-ответа;
  •  контроль времени жизни дейтаграмм в системе;
  •  переадресация пакетов;
  •  передача сообщений о недостижимости адресата;
  •  передача сообщений о некорректных IP-дейтаграммах;
  •  запрос и пересылка временных меток, адресных масок и другой информации.

ICMP сообщает об ошибках в IP-дейтаграммах, но никогда не дает информации об ошибках в самих ICMP-сообщениях. ICMP-сообщения об ошибках никогда не выдаются в следующих случаях:

  •  в ответ на ICMP-сообщения об ошибках;
  •  при широковещательном (broadcast) или групповом (multicast) адресе назначения;
  •  для фрагментов дейтаграмм (кроме первого);
  •  для дейтаграмм, чей адрес отправителя является нулевым, широковещательным или групповым.

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

Поле Тип

Тип сообщения ICMP

0

Ответ на эхо-запрос (echo reply)

3

Назначение недостижимо (destination unreachable)

4

Подавление источника (source quench)

5

Переадресация (redirect)

8

Запрос эха (echo)

11

Превышено время жизни (time exceeded)

12

Ошибка параметра в IP-дейтаграмме (parameter problem)

13

Запрос временной метки (timestamp)

14

Ответ на запрос временной метки (timestamp reply)

15

Запрос информации (information request)

16

Ответ на запрос информации (information reply)

17

Запрос адресной маски (address mask request)

18

Ответ на запрос адресной маски (address mask reply)

Коды ICMP-сообщений о недостижимости:

Поле Код

Значение

0

Сеть недостижима (network unreachable)

1

Хост недостижим (host unreachable)

2

Неизвестный протокол (protocol unreachable)

3

Порт недостижим (port unreachable)

4

Требуется фрагментация, но запрещена (fragmentation needed and DF set)

5

Невозможность маршрутизации, заданной источником (source route failed)

9

Взаимодействие с сетью назначения административно запрещено

10

Взаимодействие с хостом назначения административно запрещено

11

Сеть недостижима из-за класса обслуживания

12

Хост недостижим из-за класса обслуживания

Ping - утилита зондирования хостов. Введение в тему

Общие сведения

Термин ping заимствован из акустической локации. Утилита ping позволяет оценить RTT (время прохода пакетов до заданного элемента сети и обратно). Она использует эхо-запросы (echo request) и отклики (echo reply) протокола ICMP. Формат ICMP эхо-запросов и откликов одинаков - они различаются только значением в поле Type. Ping полезна не только в качестве средства отладки и диагностики, но и как инструмент для изучения реальной работы протоколов ICMP, IP и опций IP. Создатель ping  - Mike Muuss.

Принцип действия Ping

  1.  Утилита генерирует ICMP "echo request",в котором Type=8, Code=0, ID=PID (в Unix), Sequence number=0,1,2 ..., в поле Data записывается время в момент отправки запроса (это поле дополняется до заданной длины - по умолчанию обычно до 40-56 байтов).

   8 бит       8 бит            16 бит

|-- -- -- --|-- -- -- --|-- -- -- -- -- -- -- --|

|Type(8),(0)|  Code(0)  |       Checksum        |

|-- -- -- --|-- -- -- --|-- -- -- -- -- -- -- --|

|          ID           |   Sequence number     |

|-- -- -- -- -- -- -- --|-- -- -- -- -- -- -- --|

|                     Data                      |

|-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --|

  1.  В ответ от ядра ОС адресата приходит ICMP "echo-reply", в котором  Type=0, Code=0, а все остальные поля (ID, Seq.number и Data) возвращаются в исходном виде.
  2.  Среди многих поступающих на хост источника ICMP-сообщений процесс-источник запроса распознает ICMP-отклики на свои собственные запросы, сличая значения в полях ID со своим Process ID (см. п.1). Обнаружив "свой" отклик, он засекает момент его получения, извлекает из его поля Data момент отсылки соответствующего (по порядковому номеру sequence number) вызвавшего отклик запроса и вычисляет RTT (Round-Trip Time) как разность зтих двух моментов. Выдает строку вывода: размер пакета, его icmp-seq, RTT.

Если при запуске ping был задан одиночный режим, работа утилиты заканчивается.

Если был задан серийный режим (ключ -s некоторых реализаций Unix; в других реализациях это режим по умолчанию), то эхо-запросы высылаются через 1 сек. либо сколь угодно долго (до прерывания по Ctrl+C), либо заданное при запуске утилиты число раз.

В конце работы выдается статистика - процент потерь и RTT (min, average, max).

Дополнительные возможности.

Дополнительные возможности зависят от реализации Ping и определяются соответствующими ключами. В разных реализациях они обозначаются либо как options утилиты буквами (напр., запись маршрута -R в Unix и в Windows), либо как qualifiers (/record_route в VAX/VMS).

Параметры утилиты ping в Unix ОС:

-c (count) –отправить заданное количество эхо-запросов

-s (size) –отправлять пакеты заданного размера

-w или -i (wait) –время ожидания между отправками эхо-запросов

-t (timeout) –максимальное время работы утилиты независимо от количества отправленных и принятых пакетов.

-l (preload) –послать заданное количество пакетов без ожидания между отправкой, затем перейти в обычный режим

-f (flood) –не делать задержку между отправкой пакетов (только администратор (root) может использовать этот режим)

-R (record route) –использовать IP-опцию “record route” для записи маршрута

-r (no route) –не использовать таблицу маршрутизации при отправке пакетов)

Особенности, которые следует учитывать при работе с ping

1. Далеко не все исправно функционирующие хосты и маршрутизаторы откликаются на ping. Причиной могут быть предпринятые администратором узла превентивные меры (фильтрация приходящих ICMP эхо-запросов, блокирование исходящих ICMP эхо-откликов) с целью защиты от т.н. ICMP-наводнения их сетей (ICMP-flooding).

Пример. Летом 97 г. хост одной из кафедр ФТК вызвал интенсивный ICMP-flooding всей академсети Санкт-Петербурга. Более 30 организаций пришлось отключить от Internet на несколько часов, 9 корпус на сутки, а сегмент кафедры на 2 недели для принятия мер защиты и предупреждения.

Предупреждение.  Не зондируйте длинными сериями - прерывайте серию (Ctrl+C)! Тем более не используйте (особенно за пределы локальной сети) режим burst (flood или preload)!

2. Значение первого RTT может быть завышено из-за запроса протокола ARP (см. ARP-кэш).

3. Может нарушаться очередность поступления откликов.

4. На медленных линиях (RTT > 1 секунды) последний пакет (или больше) засчитывается пропавшим (lost), а на самом деле при остановке программы ответ(ы) просто еще в пути.

. Режим регистрации маршрута (ключ -R или /record_route) не всегда дает адекватный результат. Для понимания особенностей этого режима полезно знать, как работают IP-опции Record Route и Time-stamp, учитывать их ограничения и то, что далеко не все маршрутизаторы корректно обрабатывают как эти IP-опции, так и поле TTL IP-дейтаграмм.

Кратко о режиме Record Route утилит ping (ключ -R в Unix).

Используется RR-опция протокола IP - см. поле "опции" в заголовке IP (рис 6) и формат RR-опции IP(рис 7). В этой IP-опции: Code=7 (код), Len=32 (длина), ptr (указатель свободного места)=4,8,12...40  (40 означает full). Поскольку 39-3=36 байтов (рис 7), то только 9 IP-адресов (а если IP-опция timestamp, то только 4 пары "адрес-штемпель") могут разместиться в заголовке IP-дейтаграммы.

Вопрос. При обработке RR-опции IP-заголовка который из своих IP-адресов записывает маршрутизатор - своего входного или выходного интерфейса?

Ответ. Выходного - запомните это (позднее сопоставим с traceroute).


План работы по теме 10

  1.  Законспектировать сообщаемые преподавателем сведения (см. Введение в тему 10).
  2.  Прочесть man на ping, законспектировать основные установки и режимы. Внимание: не применять "опасные" режимы (flood, preload)
  3.  Короткой серией прозондировать несколько (минимум 2) хостов. Из них один "ближний" (а именно, главное здание - www.unilib.neva.ru) и как минимум один "дальний" хост. Сопоставить для ближней и дальней точек полученные средние значения RTT.
  4.  Прозондировать те же хосты с IP-опцией RR (-R) Записать полученное в конспект (понадобится позже в следующей теме).
  5.  Послать одиночный зонд или короткую серию на ограниченный широковещательный IP-адрес Internet (255.255.255.255) и на широковещательный IP-адрес нашей локальной сети. Объяснить результаты.

Контрольные вопросы

  1.  Адресат не откликается на ping. Значит ли это, что он недостижим по telnet, ftp и т.д.?
  2.  Почему в WAN может нарушаться очередность поступающих ICMP-откликов?
  3.  Часть пакетов ping потерялась. Перечислить возможные причины.
  4.  Почему обычно посылают не 1 пакет, а короткую серию? Почему короткую?
  5.  Действует ли в случае ping "классическая" схема "клиент-сервер"?
  6.  Как утилита ping отличает "свои" отклики от "чужих"?
  7.  Как утилита ping вычисляет RTT для разных пакетов (учесть, что пакеты могут терятся и приходить с нарушением очередности)?

Вопросы "сверх программы"

  1.  Зависит ли RTT от длины зондового пакета?
  2.  В книгах пишут, что ICMP-отклики могут не только терятся или приходить вне очереди, но и дублироваться. Чем такое явление может объясняться? (это вопрос "на засыпку" - запомните его на будущее)
  3.  Если задаться целью создать приложение "geo_ping" (то есть такое, чтобы можно было в GUI увидеть на карте мира координаты зондируемого хоста), то какой принцип географической привязки Вы могли бы предложить?

 

А также другие работы, которые могут Вас заинтересовать

52285. ВИПУСКНИЙ БАЛ «ПРОЩАВАЙ ПОЧАТКОВА ШКОЛО! 67 KB
  Лунає музика для вас В садах бузок зацвів для вас І сонця промінь теж для вас Мої малятадружній клас Ми всі чекаємо на вас. Учні входять під музику до зали Учні по черзі Доброго днядорогі батьки вчителігості Ми раді вас вітати у цьому затишному залі. Сьогодні вас називають таким вагомим словом випускники. 1: Ми всі раді вас вітати На нашому сімейному святі.
52286. Репродуктивне здоров`я молоді 61.5 KB
  Репродуктивне здоров`я молоді. Мета: сформувати уявлення про репродуктивне здоров`я системні валеологічні знання про здоровий спосіб життя розуміння необхідності дотримання культури статевих стосунків на основі дружби поваги вірності; навчити запобігати ризикам і негативному впливу на репродуктивне здоров’я соціальних та особистісних чинників; охарактеризувати чинники впливу і ризику; виховувати свідоме ставлення до свого репродуктивного здоров’я. Перевірка виконання практичної роботи №2 Самооцінка рівня фізичного здоров’я та аналіз...
52287. СВЯТО – ПОДОРОЖ ДО БАРВІНКОВОЇ КРАЇНИ 88.8 KB
  Діти сьогодні до нас на наше свято завітала Мудра Сова. Діти що за свято без Барвінку. Допоможемо Діти. Ну діти молодці справилися з першим завданням.
52288. Барви літа на картинах відомих українських художників 180.5 KB
  Сяйвом сонця все залито В нас гостює справжнє літо О. Сяйвом сонця все залито В нас гостює справжнє літо Кольорове та яскраве Запашне смішне цікаве О. Роговенко ІІ читецьЛіто літо золоте Випиває роси Та з пшениченьки плете Україні...
52289. Комплексная подготовка учащихся на уроках баскетбола 373 KB
  Сопряженное формирование навыков ловли и передачи мяча с развитием скоростносиловых качеств и координационных способностей. Передачи набивного мяча: двумя руками от груди двумя руками сверху; одной рукой от плеча. То же что упражнение №1 но чередуя передачи набивного и баскетбольного мяча. В парах по сигналу передачи на месте набивного мяча в отрыв на 1020 м.
52290. КОНСПЕКТ УРОКА ПО ФИЗИЧЕСКОЙ КУЛЬТУРЕ ДЛЯ УЧАЩИХСЯ КЛАССА 83 KB
  Ведение и бег с мячом запрещены. Ведение мяча правой и левой рукой 9. Ведение в приседе правой и левой рукой По 20 ударов каждой рукой По 15 ударов каждой рукой Упражнение выполняется в парах. 10Совершенствовать ведение мяча с разной высотой отскока 10.
52291. НЕМЕЦКИЙ ЯЗЫК ДЛЯ КОЛЛЕДЖЕЙ DEUTSCH FÜR COLLEGES 466.5 KB
  Данный учебник предназначено для студентов средних специальных учебных заведений всех специальностей, продолжающих изучать немецкий язык и имеющих по учебному плану в соответствии с Госстандартом 128 часов (на базе среднего полного общего образования) и 204 часа (на базе основного общего образования, т.е. для выпускников 9го класса).
52292. Я тебе люблю. Лекція для батьків 46.5 KB
  Скажіть будь ласка а що означає у вашому розумінні любити свою дитину Хтось говорить що любити свою дитину означає піклуватися про нього цікавитися його життям возити його відпочивати купувати їжу речі. А останнім часом я все частіше чую що любити свою дитину це говорити йому: Я тебе люблю Готуючись до сьогоднішніх зборів я провела анкетування і 92 дітей бракує слів любові. Що означає приймати дитину безумовно Це означає любити його просто тому що він є. Я пропоную розіграти сценку в якій можливо хтось побачить себе або...