Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Сети -> TCP/IP -> Протокол ICMP



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 бита данных в ис-
      ходной датаграмме.
Описание
      Если фрагмент нулевого размера превысил контрольное время, то
   сообщение в этом не посылается вовсе.
      Шлюз может послать сообщение с кодом 0б а хост - с кодом 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.

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



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.