Home

Page 52
Page 52
background image

 

 
 
Переходим к сообщениям следующего типа - Тип 12. 
Сообщения  этого  типа  посылаются  в  ответ  на  пакеты,  имеющие  ошибки  в 
заголовке и называются Parameter Problem.  
Формат данной опции: 

 

Type = 12 

Code   

Checksum 

Pointer 

Не используется 

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

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

 
 

В RFC792 описан только один код при значении типа = 12, этот код = 0 и 

означает, что в заголовке есть некоторая ошибка. При этом однобайтовое поле 

Pointer  (указатель)  показывает  номер  байта,  в  котором  произошла  ошибка.  Во 
многих  случаях  стек  TCP/IP  не  отправляет  ICMP  сообщения  типа  12  в  ответ  на 
ошибочные пакеты, например, при неверном значении поля контрольной суммы, 
неверном значение поля Total Length и т.п. Посылать ли в ответ на такие пакеты 
сообщение  ICMP  об  ошибке  обычно  решает  автор  стека  –  в  RFC  нет  четких 
указаний,  в  ответ  на  какие  именно  ошибки  необходимо  посылать  ICMP 
сообщения типа 12. В конечном счете, решение о том, посылать или не посылать 
ICMP  пакет  типа  12  принимается  исходя  из  текущих  условий  –  станция  может 
послать  сообщение типа 12 на  пакет вполне нормальный с  очки зрения других 
станций, но не подходящий для данной станции. 

Для того чтобы понять, когда могут быть посланы ICMP сообщения типа 12 

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

принципе не возможны.  

Начнем с начала: поле Version, как мы знаем, это поле предназначено для 

указания  версии  используемого  протокола  IP  и,  не  смотря  на  то,  что  мы 
занимаемся только лишь IP версии 4, тем не менее, это поле может принимать и 
другие  значения.  Поле  IHL  не  может  принимать  значение  меньше  5,  однако  в 
ответ  на  IP  пакеты  с  полем  IHL  <5  большинство  операционных  систем  не 
посылает  ICMP  сообщений  типа  12.  Поле  TOS  может  принимать  лишь 
ограниченный  набор  значений,  однако,  в  новых  RFC  могут  появиться  новые 
интерпретации  комбинаций  флагов  (как,  например,  появилась  интерпретация 
комбинации DTRC как максимизация безопасности передачи). Поле Total Length 
может  принимать  любые  значения,  но  не  менее  20  байт  (заголовок  IP),  однако 
при  ошибках  в  этом  поле  так  же,  обычно,  ICMP  сообщения  типа  12  не 

посылаются.  Поле  ID  может  принимать  все  возможные  значения,  как  и  поле 
Offset. Анализ возможности ошибок оставшейся стационарной  части заголовка, 
показывает что особенных явных ошибок в этой части заголовка сделать нельзя 
(помимо указанных выше). Однако есть еще опции, в которых можно допустить 
ряд  ошибок,  самая  характерная  их  ниx  –  неверное  значение  поля  Pointer. 
Например, в опции RR поле Pointer не может быть меньше 4.  

Рассмотрим  пример  пакета  с  опцией  RR  и  установленным  значение 

указателя равным 1: 

 
 
 


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

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