|
Протокол ICMP
Радик Усманов Январь, 1995 г.
Примечания редактораСо временем в спецификацию протокола ICMP были введены еще два дополнительных типа сообщений: Address Mask Request (код 17) и Address Mask Reply (код 18). Данные типы сообщений описаны в документе RFC950 "Internet Standard Subnetting Procedure".
Оригинальная версия документа RFC792 размещается на сервере ISI
(Information Sciences Institute): Группа разработки сетей 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. |
|||||||||||||||||
With any suggestions or questions please feel free to contact us |