Home

Page 3
Page 3
background image

 

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

 

Фактически,  неизменным  в ICMP  остается  только  первое  четырехбайтовое 

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

Приступим  к  изучению  работы  протокола  ICMP  с  описания  сообщений  со 

значениями  поля  Type  равными  0  и  8  (Echo  or  Echo  Reply  Message).  Одним  из 
методов  проверки  взаимодействия  3-го  уровня  может  быть  совместная  работа 
приложений,  выполняемых  на  разных  станциях,  взаимодействующих  по  сети. 
Недостатком  данного  метода  является  отсутствие  возможности  контроля 
выполнения  в  данный  момент  времени  приложения  на  каждой  станции, 
вследствие  чего  возможна  неправильная  интерпретация  результатов  подобной 
проверки.  Другими  словами,  мы  не  можем  утверждать,  что  в  данный  момент 
приложение запущено «на той стороне». А как быть с узлами, на которых пока 

не  запущены  приложения?  Было  бы  хорошо,  если  бы  можно  было  послать  на 
станцию  такой  пакет,  на  который,  в  любом  случае,  ответит  компонент  стека 
TCP/IP,  а  не  приложение,  которое  может  быть  и  не  запущено.  В  стеке  TCP/IP 
такая  возможность  предусмотрена.  В  предыдущих  уроках,  для  проверки 
возможности обмениваться пакетами с некоторой станцией применялась утилита 
ping.exe, но каким образом она работает, и какой протокол использует, нами не 
рассматривалось. Освещением этого вопроса мы сейчас и займемся.  

Итак,  ICMP  пакет,  поле  Type  которого  равно  8,  называется  эхо-запрос. 

Любая  станция  или  маршрутизатор,  получившие  такое  сообщение,  должны 
сгенерировать в ответ ICMP сообщение с типом 0, которое называется эхо-ответ, 
это  сообщение  получит  отправитель  эхо-запроса.  Так  как  поддержка  ICMP 
должна обязательно присутствовать во всех реализациях стека TCP/IP, то любая 
станция  или  маршрутизатор  всегда  ответят  на  эхо-запрос  эхо-ответом,  что 

позволяет  проверить  возможность  обмениваться  IP  пакетами  с  любой  станцией 
или  маршрутизатором,  не  зависимо  от  работающих  на  узлах  или 
маршрутизаторах  приложений.  Так  как  установка  поля  Type  в  значение  8  уже 
означает,  что  данный  ICMP  пакет  есть  эхо-запрос,  и  никакие  дополнительные 
уточнения  не  требуются,    то  поле  Code  как  эхо-запросов,  так  и  эхо-ответов 
всегда равно 0.  

Приложение на станции, с помощью которого администратор посылает эхо-

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

Рассмотрим  пример:  пусть  приложение  послало  ICMP  эхо-запрос  и  ждет 

эхо-ответа.  Ответа  нет  (например,  пакет  мог  потеряться,  а  ICMP  сообщения 
передаются  без  гарантии  доставки),  и  приложение  посылает  второй  запрос 
спустя некоторый тайм-аут. После этого приходит эхо-ответ. Возникает вопрос: 
пришел ответ на первый пакет или на второй? С одной стороны, это не слишком 
важно,  так  как  возможность  обмена  пакетами  между  узлами  очевидно 
существует.  С  другой  стороны,  если  администратор  решил  исследовать  именно 
задержку  в  сети,  то  в  зависимости  от  того,  на  какой  пакет  пришел  ответ, 
задержка,  выводимая  пославшим  запрос  приложением,  будет  сильно 
различаться. Т.е. было бы желательно снабдить каждый посылаемый ICMP эхо-


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.