Home

Page 15
Page 15
background image

 

 
присутствует  опция  SSRR,  однако  достичь  на  канальном  уровне  следующего 
указанного отправителем маршрутизатора нет возможности. 

Приведенные  выше  коды  описаны  в  RFC792.  Кроме  этого,  существуют 

несколько  сообщений  типа  3,  описанных  в  более  поздних  RFC,  однако 

сообщения  с  этими  кодами  сегодня  не  применяются  и  рассматривать  их  мы  не 
будем.  

Предположим,  некоторая  станция  послала  какие-то  пакеты  и  получила  от 

маршрутизатора  сообщение  о  недостижимости  узла.  Это  сообщение  следует 
использовать,  например,  так:  вывести  пользователю  на  экран  сообщение  о 
недоступности  запрошенного  им  сетевого  ресурса,  при  этом,  возможно,  так  же 
стоит  сообщить  пользователю,  что  узел  недостижим.  Возможно,  пользователь 
поймет,  что  это  значит  или  спросит  администратора  и  это  позволит  ему  более 
эффективно  спланировать  свою  работу.  Например,  пользователь  поймет,  что 
если  транзитный  маршрутизатор  в  Интернет  сообщил  о  недостижимости,  то  нет 
никакой  возможности  решить  проблему  локально,  а  если  маршрутизатор 
провайдера  сообщил  о  недостижимости,  то  можно  позвонить  в  поддержку 

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

Но в любом случае остается открытым вопрос: откуда станция, пославшая 

много  пакетов,  возможно  многим  станциям  составной  сети,  и  получившая  ICMP 
сообщение  о  недостижимости  узла  поймет,  какой  именно  узел  недостижим? 
Рассмотрим  пример:  мы  послали  1000  писем  бумажной  почтой,  и  нам  приходит 
извещение  –  ваше  письмо  не  доставлено,  так  как  адресат  выбыл!  КОМУ  не 
доставлено письмо? Без этой информации ICMP сообщение об ошибке выглядит 
бессмысленно:  получатель  не  достижим,  а  кто  не  достижим  –  не  понятно.  Для 
того чтобы снабдить отправителя сведениями о том, какой именно пакет не смог 

достичь  получателя,  в  поле  данных  ICMP  пакета  о  недостижимости  полностью 
цитируется  IP  заголовок  уничтоженного  пакета  и  первые  8  байт  данных  этого 
пакета.  Получив  такое  сообщение  о  недостижимости,  отправитель  сможет 
проанализировать  заголовок  уничтоженного  пакета  и  понять,  КАКОЙ  ИМЕННО 
узел оказался не достижим. Рассмотрим формат ICMP пакета о недостижимости: 

 

Type = 3 

Code   

Checksum 

Не используется, равно 00 00 

IP заголовок уничтоженного пакета и первые 8 байт данных этого пакета.

Всего от 28 до 68 байт данных 

 
Теперь  перейдем  к  практическому  рассмотрению  работы  ICMP  сообщений 

данного типа с различными кодами. Начнем с сообщения о недостижимости сети. 

Рассмотрим  сеть,  в  которой  могло  бы  быть  сформировано  сообщение  Net 

Unreachable,  для  этого  необходим  маршрутизатор,  не  имеющий  маршрута  в 
некоторую  сеть  (и,  разумеется,  маршрута  по  умолчанию).  И  проанализируем  
реакцию на отправку пакета в несуществующую сеть.  

 

 
 


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

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