Список терминов

FREEnet PBL-0006 RU 1.1 1995-09-08

---------------------------------------------------------------------------

 

Протокол ICMP

 

Радик Усманов

radik@binep.ac.ru

 

Январь, 1995 г.

 

     Реферат: Документ содержит русский перевод спецификации протокола

     ICMP (Internet Control Message Protocol) - протокола управляющих

     сообщений в стеке протоколов IP, применяемого в международной

     компьютерной сети Internet. Оригинальный документ известен, как

     RFC792.

 

Примечания редактора

 

Со временем в спецификацию протокола ICMP были введены еще два

дополнительных типа сообщений: Address Mask Request (код 17) и Address Mask

Reply (код 18). Данные типы сообщений описаны в документе RFC950 "Internet

Standard Subnetting Procedure".

 

Оригинальная версия документа RFC792 размещается на сервере ISI

(Information Sciences Institute):

 

 URL - http://info.internet.isi.edu/in-notes/rfc/files/rfc792.txt

 

---------------------------------------------------------------------------

 

Группа разработки сетей                                   J.Postel

Request for Comment                                      ISI

                                                     сентябрь 1981

 

              Протокол контрольных сообщений Internet

                     Программа DARPA Internet

                      Спецификация протокола

 

Введение

   Протокол Internet (IP) [1] используется для обработки датаграм-

мы, передаваемой между хост-компьютерами в системе объединенных

сетей, называемой Catenet [2]. Устройства, осуществляющие соедине-

ние различных сетей, называются шлюзами. Для обеспечения управле-

ния шлюзы общаются друг с другом посредством протокола Gateway to

Gateway Protocol (GGP) [3,4]. Порой шлюз или хост-компьютер, полу-

чающий данные, обменивается информацией с хост-компьютером, от-

правляющим эти данные. Именно для таких йелей используется данный

протокол - протокол контрольных сообщений Internet (ICMP). ICMP

использует основные свойства протокола Internet (IP), как если бы

ICMP являлся протоколом более высокого уровня. Однако фактически

ICMP является составной частью протокола Internet и должен являть-

ся составной частью каждого модуля IP.

   Сообщения ICMP должны отправляться в некоторых затруднительных

ситуациях. Например, когда датаграмма не может достичь своего

адресата, когда шлюз не имеет достаточно места в своем буфере для

передачи какой-либо датаграммы, или когда шдюз приказывает хост-

компьютеру отправлять информацию по более короткому маршруту.

   Протокол Internet не создан для того, чтобы обеспечивать абсо-

лютную надежность передачи информации. Целью же данных контрольных

сообщений является обеспечение обратной связи, оповещение отправи-

теля данных о проблемах, возникающих в комминикационном оборудова-

нии. Их целью не является придание надежности протоколу IP. Прото-

кол не дает гарантий, что датаграмма достигает своего адресата или

что контрольное сообщение будет возвращено компьтеру, отправившему

данные. Некоторые из датаграмм могут исчезнуть в сети, не вызвав

при этом ни каких оповещений. Протоколы более высокого уровня,

использующие протокол IP, должны применять свои собственные проце-

дуры для обеспечения надежности передачи данных, если таковая тре-

буется.

   Сообщения ICMP протокола, как правило, оповещают об ошибках,

возникающих при обработке датаграмм. Чтобы проблемы с передачей

сообщений не вызывали появление новых сообщений, чтобы это в свою

очередь не привело к лавинообразному росту количества сообщений,

циркулирующих в сети, констатируется, что нельзя посылать сообще-

ния о сообщениях. Также констатируется, что ICMP сообщения можно

посылать только о проблемах, возникающих при обработке нулевого

фрагмента в сегментированной датаграмме (нулевой фрагмент имеет

нуль в поле смещения фрагмента).

 

Форматы сообщений

   ICMP сообщения посылаются с помощью стандартного IP заголовка.

Первый октет в поле данных датаграммы - это поле типа ICMP сообще-

ния. Значение этого пля определяет формат всех остальных данных в

датаграмме. Любое поле, которое помечено "unused", зарегистрировано

для последующих разработок и должно при отправлении содержать нули.

Однако получатель не должен использовать значения этих полей (за

исключением процедуры вычисления контрольной суммы). Если обратное

особо не оговорено при описании отдельных фрагметов, Internet заго-

ловок должен иметь в своих полях следующие значения:

Версия

   4

IHL

   Длина Internet заголовка; единица измерения - 32-битное слово.

Тип сервиса

   0

Общая длина

   Длина Internet заголовка и поля данных в октетах.

Идентификация, флаги, смещение фрагмента

   Используются в случае фрагментации, см. [1].

Время жизни

   Время жизни в секундах. Поскольку значение этого поля уменьша-

   ется на единицу в каждой машине, на которой обрабатывается дан-

   ная датаграмма, то значение этого поля должно, по крайней мере,

   превышать количество шлюзов, через которые будет проходить дан-

   ная датаграмма.

Протокол

   ICMP=1

Контрольная сумма заголовка

   16-битное дополнение до единицы суммы дополнений до единицы

   всех 16-битных слов в заголовке. При вычислении данной суммы

   следует первоначально устанавливать значение этого поля в нуль.

   В дальнейшем этот алгоритм вычисления контрольной суммы должен

   быть изменен.

Адрес отправления

   Адрес шлюза или хост-компьютера, который составил данное ICMP

   сообщение. Если не оговорено обратное, в этом поле может нахо-

   диться любой из адресов шлюза.

Адрес получателя

   Адрес шлюза или хост-компьютера, которому следует послать

   данное сообщение.

 

   Сообщение о недостижимости порта

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                      не используется                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet заголовок + 64 бита данных из исходной датаграммы    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля Internet протокола:

   Адрес получателя

      Локальная сеть и адрес компьютера, отправившего исходную

      датаграмму

Поля ICMP протокола

   Тип

      3

   Код

      0 - невозможно передать датаграмму на локальную сеть, где

          находится адресат

      1 - невозможно передать датаграмму на хост-компьютер,

          являющийся адресатом

      2 - нельзя воспользоваться указанным протоколом

      3 - нельзя передать данные на указанный порт

      4 - для передачи датаграммы по сети требуется фрагментация,

          однако выставлен флаг DF.

      5 - сбой в маршрутизации при отправлении

   Контрольная сумма

      Контрольная сумма является 16-битным дополнением до единицы

      суммы дополнений октетов в полях ICMP сообщения, начиная с

      поля типа ICMP. Для вычисления контрольной суммы первона-

      чально значение этого поля обнуляется. В будущем процедура

      вычисления контрольной суммы может быть изменена.

   Internet заголовок + 64 бита данных из исходной датаграммы

      Данное поле содержит Internet заголовок и первые 64 бита дан-

      ных из исходной датаграммы для выработки сообщения для соот-

      ветствующего процесса. Если протокол более высокого уровня

      использует номера портов, то предполагается, что эти номера

      находятся в первых 64 битах поля данных.

Описание

      Если, согласно информации в таблицах маршрутизации шлюза,

   локальная сеть, указанная в Internet заголовке датаграммы в поле

   адресата, является недостижимой, например, из-за ее чрезмерной

   удаленности, то шлюз может послать хост-компьютеру, отправившему

   датаграмму по Internet сети, сообщение о недостижимости адреса-

   та.

      Кроме этого, в некоторых сетях шлюз может иметь возможность

   определять доступность отдельного хост-компьютера. Шлюз в такой

   сети может послать данное сообщение, если хост-компьютер, являю-

   щийся адресатом, недоступен.

      Иная ситуация возникает, когда для достижения адресата дата-

   грамма должна быть разбита шлюзом на отдельные фрагменты, но

   установлен флаг запрета фрагментации. О этом случае шлюз обязан

   ликвидировать датаграмму и можен при этом послать сообщение о

   недостижимости адресата.

      Шлюз может послать сообщения с кодами 0, 1, 4 и 5. Хост-

   компьютер может послать сообщения с кодами 2 и 3.

 

   Сообщение о превышении контрольного времени

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                      не используется                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet заголовок + 64 бита данных из исходной датаграммы    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля IP заголовка

   Заимствованы сеть и адрес отправителя из мсходной датаграммы с

   данными.

Поля ICMP сообщения

   Тип

      11

   Код

      0 - при передаче превышено время жизни

      1 - превышено контрольное время при сборке фрагментов дата-

          граммы

   Контрольная сумма

      Контрольная сумма является 16-битным дополнением до единицы

      суммы дополнений в ICMP сообщении, начиная с поля типа ICMP.

      При вычислениии суммы следует сперва обнулить поле

      контрольной суммы. В будущем алгоритм контрольной суммы может

      быть изменен.

   Internet заголовок + 64 бита данных из исходной датаграммы

      Internet заголовок плюс первые 64 бита данных из исходной

      датаграммы. Эти биты данных используются хост-компьютером для

      привязки сообщения к соответствующему процессу. Если протокол

      более высокого уровня использует номера портов, то предпола-

      гается, что эти номера входят в первые 64 бита данных в ис-

      ходной датаграмме.

Описание

      Если фрагмент нулевого размера превысил контрольное время, то

   сообщение в этом не посылается вовсе.

      Шлюз может послать сообщение с кодом а хост - с кодом 1.

 

   Сообщение о проблемах с параметром

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|   указатель   |      не используется                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet заголовок + 64 бита данных из исходной датаграммы    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля IP заголовка

   Заимствованы сеть и адрес отправителя из мсходной датаграммы с

   данными.

Поля ICMP сообщения

   Тип

      12

   Код

      0 - указатель показывает ошибку

   Контрольная сумма

      Контрольная сумма является 16-битным дополнением до единицы

      суммы дополнений в ICMP сообщении, начиная с поля типа ICMP.

      При вычислении суммы следует сперва обнулить поле контрольной

      суммы. В будущем алгоритм вычисления контрольной суммы может

      быть изменен.

   Указатель

      Если код = 0, то он указывает на октет, где была обнаружена

      ошибка.

   Internet заголовок + 64 бита данных из исходной датаграммы

      Эти биты данных используются хост-компьютером для привязки

      сообщения к соответствующему процессу. Если протокол более

      высокого уровня использует номера портов, то предполагается,

      что эти номера входят в вервые 64 бита данных в исходной да-

      таграмме.

Описание

      Если шлюз или хост-компьютер, обрабатывающий датаграмму,

   обнаруживает проблему с обработкой параметров заголовка, и это

   не позволяет завершить ее обработку, то он должен ликвидировать

   рассматриваемую датаграмму. Одной из потенциальных причин такой

   неприятности могут бить неправильные аргументы в опции. Шлюз или

   хост-компьютер в сообщении о проблеме с параметрами может также

   упомянуть хост-компьютер, породивший датаграмму с ошибкой. Сооб-

   щения такого типа посылаются лишь в том случае, если ошибка при-

   водит к ликвидации этой датаграммы.

      Указатель определяет октет в заголовке исходной датаграммы,

   где была обнаружена ошибка (этот ошибочный октет может находить-

   ся даже посередине опции). Например, 1 указывает на то, что име-

   ется какая-то ошибка в поле типа сервиса, а (если имеются опции)

   20 определяет, что имеется ошибка в коде типа для первой опции.

      Код 0 сообщения может приходить как от шлюза, так и от хост-

   компьютера.

 

   Сообщение для приостановки отправителя

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                      не используется                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet заголовок + 64 бита данных из исходной датаграммы    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля IP заголовка

   Заимствованы сеть и адрес отправителя из исходной датаграммы с

   данными.

Поля ICMP сообщения

   Тип

      4

   Код

      0

   Контрольная сумма

      Контрольная сумма является 16-битным допонением до единицы

      суммы дополнений в ICMP сообщении, начиная с поля типа ICMP.

      При вычислении контрольной суммы следует сперва обнулить поле

      контрольной суммы. В будущем алгоритм вычисления контрольной

      суммы может быть изменен.

   Internet заголовок + 64 бита данных из исходной датаграммы

      Internet заголовок плюс первые 64 бита данных из исходной

      датаграммы. Эти данные используются хост-компьютером для

      привязки сообщения к соответствующему процессу. Если протокол

      более высокого уровня использует номера портов, то предпола-

      гается, что эти номера входят в первые 64 бита данных ис-

      ходной датаграммы.

Описание

      Шлюз может ликвидировать Internet датаграммы, если у него нет

   места в буфере для постановки этих датаграмм в очередь на от-

   правление в очередную сеть по маршруту следования к адресату.

   Если шлюз ликвидирует датаграмму, то он должен послать сообщение

   для приостановки хост-компьютеру в Internet системе, отправивше-

   му данную датаграмму. Сообщение о приостановке может послать

   также сам адресат, если датаграммы приходят слишком быстро, что-

   бы успеть их обработать. Сообщение о приостановке является за-

   просом для хост-компьютера уменьшить скорость посылки данных на

   этот конкретный адрес. Шлюз может посылать сообщение для при-

   остановки отправителя в каждом случае ликвидации. При получении

   такого сообщения хост-компьютер, отправивший данные, должен

   уменьшить скорость посылки данных по этому адресу до тех пор,

   пока не перестанут приходить запросы на приостановку с данного

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

   постепенно увеличивать скорость посылки данных по этому адресу,

   пока вновь не станут приходить сообщения о приостановке.

      Шлюз или хост-компьютер может посылать сообщение о приоста-

   новке еще до достижения предельной пропускной способности, и не

   ждать, пока этот предел будет пройден. Это означает, что дата-

   грамма с данными, вызвавшая появление сообщения о приостановке,

   все же может достичь своего адресата.

      И шлюз и хост-компьютер могут отправить сообщение с кодом 0.

 

   Сообщение о переадресации

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|               Internet адрес шлюза                            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Internet заголовок + 64 бита данных из исходной датаграммы    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля IP заголовка

   Заимствованы сеть и адрес отправителя из исходной датаграммы с

   данными.

Поля ICMP сообщения

   Тип

      5

   Код

      0 - переадресация датаграмм для сети

      1 - переадресация датаграмм для хост-компьютера

      2 - переадресация датаграмм для типа услуг и сети

      3 - переадресация датаграмм для типа услуг и хост-компьютера

   Контрольная сумма

      Контрольная сумма - это 16-битное допонение до единицы суммы

      дополнений в ICMP сообщении, начиная с поля типа ICMP. При

      вычислении контрольной суммы следует сперва обнулить поле

      контрольной суммы. В будущем алгоритм вычисления контрольной

      суммы может быть изменен.

   Internet адрес шлюза

      Адрес шлюза, на который должен быть проложен маршрут к сети,

      указанной в поле адреса в исходной датаграмме с данными.

   Internet заголовок + 64 бита данных из исходной датаграммы

      Internet заголовок плюс первые 64 бита данных из исходной

      датаграммы. Эти данные используются хост-компьютером для при-

      вязки сообщения к соответствующему процессу. Если протокол

      более высокого уровня использует номера портов, то предпола-

      гается, что эти номера входят в первые 64 бита данных исход-

      ной датаграммы.

Описание

      Шлюз посылает сообщение на хост-компьютер о переадресации в

   следующей ситуации: Шлюз G1 получает Internet датаграмму от

   хост-компьютера в сети, где он расположен. Шлюз G1 проверяет

   таблицу маршрутизации и находит адрес слеудющего шлюза G2 в ка-

   честве маршрута для датаграммы по пути в сеть X, где расположен

   ее адресат. Если G2 и исходный хост-компьютер идентифицируются

   Internet адресом как находящиеся в одной и той же сети, то на

   хост-компьютер следует послать сообщение о переадресации. Сооб-

   щение о переадресации заставляет хост-компьютер посылать дата-

   граммы для сети X прямо на шлюз G2, поскольку это более короткий

   путь, нежели привлекать еще шлюз G1. Шлюз передает данные исход-

   ной датаграммы их адресату в системе Internet.

      Для датаграмм с опциями IP маршрутизации отправления и адре-

   сом шлюза в поле получателя сообщение не посылается, даже если и

   существует более оптимальный маршрут к конечному адресату, чем

   следующий адрес, указанный в такой опции маршрута.

      Шлюзом могут быть переданы сообщения с кодами 0, 1, 2 и 3.

 

   Эхо-сообщение и сообщение в ответ на эхо

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|           Идентификатор       |     Номер очереди             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|   Данные .....

+-+-+-+-+-+-+-

 

Поля IP заголовка

   Адреса

      Адрес отправителя в эхо-сообщении будет адресом получателя в

      ответном сообщении. Чтобы сформировать сообщение ответа, сле-

      дует просто переставить местами адреса отправителя и получа-

      теля, код типа изменить на 0 и пересчитать контрольную сумму.

Поля ICMP сообщения

   Тип

      8 - эхо-сообщение

      0 - сообщение в ответ на эхо

   Код

      0

   Контрольная сумма

      Контрольная сумма - это 16-битное допонение до единицы суммы

      дополнений для ICMP сообщения, начиная с поля типа ICMP. При

      вычислении контрольной суммы это поле должно быть сперва об-

      нулено. Если общая длина сообщения нечетная, то для вычисле-

      ния контрольной суммы поле данных дополняется еще одним нуле-

      вым октетом. В будущем алгоритм вычисления контрольной суммы

      может быть изменен.

   Идентификатор

      Если код = 0, то идентификатор для соотнесения эхо-сообщений

      и ответов на них, должен быть обнулен.

   Номер очереди

      Если код = 0, то номер очереди, служащий для соотнесения

      эхо-сообщений и ответов на них, должен быть обнулен.

Описание

      Данные из эхо-сообщения должны быть переданы в ответе на это

   сообщение.

      Идентификатор и номер очереди может использоваться отправите-

   лем эхо-сообщения с целью идентификации приходящих пакетов. На-

   пример, идентификатор может использоваться в качестве порта по-

   добно протоколам TCP и UDP для идентификации сеанса. Номер оче-

   реди может увеличиваться на единицу припосылке каждого эхо-

   сообщения (запроса). Компьютер, отозвавшийся на это сообщение,

   возвращает в своем ответе те же значения для идентификатора и

   номера очереди, что были в исходном эхо-сообщении.

      Как шлюз, так и хост-компьютер могут возвращать сообщение с

   кодом 0.

 

   Сообщение со штампом времени и сообщение с ответом на штамп

   времени

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|           Идентификатор       |     Номер очереди             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                   Штамп времени отправления                   |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                   Штамп времени получения                     |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                   Штамп времени передачи                      |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля IP заголовка

   Адреса

      Адрес отправителя в сообщении со штампом времени будет адре-

      сом получателя в сообщении с ответом. Чтобы сформировать от-

      вет на сообщение, следует просто поменять местами адреса от-

      правителя и получателя, выбрать код типа 14, а также пересчи-

      тать контрольную сумму.

Поля ICMP сообщения

   Тип

      13 для сообщения со штампом времени

      14 для ответа на сообщение со штампом времени

   Код

      0

   Контрольная сумма

      Контрольная сумма - это 16-битное допонение до единицы суммы

      дополнений для ICMP сообщения, начиная с поля типа ICMP. При

      вычислении контрольной суммы это поле должно быть сперва об-

      нулено. В будущем алгоритм вычисления контрольной суммы

      может быть изменен.

   Идентификатор

      Если код = 0, то идентификатор, служащий для соотнесения

      сообщений со штампом времени и ответов на них, должен быть

      обнулен.

   Номер очереди

      Если код = 0, то номер очереди, служащий для соотнесения

      сообщений со штампом времени и ответов на них, должен быть

      обнулен.

Описание

      Данные из сообщения (штамп времени) возвращаются вместе с

   ответом, при этом в них добавляется еще один штамп времени.

   Штамп времени - это 32 бита, где записано время в миллисекундах,

   прошедшее после полуночи по единому времени (UT). Один из приме-

   ров использования таких временных штампов приведен в документе

   [5].

      Штамп времени отправления - это время, которое отправитель

   фиксировал последний раз перед посылкой сообщения. Штамп времени

   получения - это время, когда исходное сообщение впервые увидел

   получатель первоначального сообщения. Штамп времени передачи -

   это время, которое фиксировал в последний раз компьютер, отправ-

   ляющий ответное сообщение.

      Если нет возможности измерять время в миллисекундах или нель-

   зя определить единое время (UT), то в штамп все же можно занести

   имющееся время, снабдив его единицей в старшем бите. Последнее

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

      Идентификатор и номер очереди могут использоваться отправите-

   лем для соотнесения сообщений (запросов) и ответов на них. На-

   пример, идентификатор может использоваться в качестве порта,

   аналогично протоколам TCP и UDP, для идентификации сессии. Номер

   очереди может увеличиваться на единицу при каждой посылке сооб-

   щения (запроса). Адресат возвращает для этих параметров те зна-

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

      И шлюз и хост-компьютер могут возвращать сообщения с кодом 0.

 

   Запрос информации и ответное сообщение с информацией

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Тип       |      Код      |    Контрольная сумма          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|           Идентификатор       |     Номер очереди             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Поля IP заголовка

   Адреса

      Адрес отправителя в сообщении с запросом информации окажется

      адресом получателя в ответном сообщении с информацией. Чтобы

      сформировать ответное сообщение, следует просто поменять мес-

      тами адреса отправителя и получателя, код типа сменить на 16,

      пересчитать контрольную сумму.

Поля ICMP сообщения

   Тип

      15 - сообщение с запросом информации

      16 - ответное сообщение с информацией

   Код

      0

   Контрольная сумма

      Контрольная сумма - это 16-битное допонение до единицы суммы

      дополнений для ICMP сообщения, начиная с поля типа ICMP. При

      вычислении контрольной суммы следует предварительно обнулить

      поле самой контрольной суммы. В будущем алгоритм вычисления

      контрольной суммы может быть изменен.

   Идентификатор

      Если код = 0, то идентификатор, служащий для соотнесения за-

      просов и ответов, может быть обнулен.

   Номер очереди

      Если код = 0, то номер очереди, служащий для соотнесения за-

      просов и ответов, может быть обнулен.

Описание

      Данное сообщение может быть послано, когда в IP заголовке в

   полях отправителя и получателя записаны нули (это означает

   "именно эту" локальную сеть). В ответ должен быть послан IP мо-

   дуль с полностью заданными адресами. Данное сообщение является

   способом, с помощью которого хост-компьютер сможет определить

   номер сети, куда он подключен.

      Отправитель сообщений может использовать идентификатор и но-

   мер очереди для соотнесения запросов и пришедших ответов. Напри-

   мер, идентификатор может использоваться как порт в протоколах

   TCP и UDP для идентификации сеанса. Номер очереди может увеличи-

   ваться на единицу всякий раз, когда посылается запрос. Адресат

   возвращает в ответе те же значения этих параметров, которые были

   обнаружены в запросе.

      И хост-компьютер и шлюз могут возвращать сообщения с кодом 0.

 

                        Список типов сообщений

   0    ответ на запрос эхо

   3    адресат недостижим

   4    приостановка отправителя

   5    переадресация

   8    эхо-запрос

   11   превышение контрольного времени

   12   проблемы с параметрами

   13   штамп времени

   14   ответ на запрос штампа времени

   15   запрос информации

   16   ответ на запрос информации

 

                               Ссылки

[1]  Postel, J. (ed.), "Internet Protocol - DARPA Internet Program

     Protocol Specification," RFC 791, USC/Information Sciences

     Institute, September 1981.

[2]  Cerf, V., "The Catenet Model for Internetworking," IEN 48,

     Information Processing Techniques Office, Defense Advanced

     Research Project Agency, July 1978.

[3]  Strazisar, V., "Gateway Routing: An Implementation

     Specification", IEN 30, Bolt Beranek and Newman, April 1979.

[4]  Strazisar, V., "How to Build a Gateway", IEN 109, Bolt Beranek

     and Newman, August 1979.

[5]  Mills, D., "DCNET Internet Clock Service," RFC 778, COMSAT

     Laboratories, April 1981.

 

---------------------------------------------------------------------------