Федеральное агентство по образованию
Государственное образовательное учреждение высшегопрофессионального образования
Челябинский государственный педагогический университет
(ГОУВПО «ЧГПУ»)
Профессионально-педагогический институт
Кафедра подготовки педагоговпрофессионального обучения и предметных методик
Реферат
натемуICMP (InternetControl Message Protocol)
по дисциплине
«Компьютерные коммуникации и сети»
Выполнил:
Казанцев А.С.
Проверил:
Блинов А.Н
Челябинск, 2005
TOC o «1-5» f h z u
Введение. PAGEREF _Toc115780814 h 3
Формат ICMP сообщений. PAGEREF _Toc115780815 h 5
Сообщение о недостижимости порта. PAGEREF _Toc115780816 h 6
Сообщение о превышении контрольного времени. PAGEREF _Toc115780817 h 8
Сообщение о проблемах с параметром. PAGEREF _Toc115780818 h 9
Сообщение для приостановки отправителя. PAGEREF _Toc115780819 h 11
Сообщение о переадресации. PAGEREF _Toc115780820 h 13
Эхо-сообщение и сообщение в ответ на эхо. PAGEREF _Toc115780821 h 15
Сообщение со штампом времени и сообщение с ответом наштамп времени PAGEREF _Toc115780822 h 16
Запрос информации и ответное сообщение с информацией. PAGEREF _Toc115780823 h 18
Список типов сообщений. PAGEREF _Toc115780824 h 21
Type8 и Type 0 — эхо-запрос и эхо-ответ. PAGEREF _Toc115780825 h 21
Type 3—Пунктназначениянедоступен. PAGEREF_Toc115780826 h 21
Туре4 — Подавлениеисточника. PAGEREF _Toc115780827 h 22
Туре5 —Переадресация. PAGEREF _Toc115780828 h 22
Type 9 и Type 10 — Объявление и запрос маршрутизатора. PAGEREF _Toc115780829 h 22
Туре 11 — Превышение времени жизни датаграммы… PAGEREF _Toc115780830 h 23
Туре 12 — Ошибка параметра. PAGEREF _Toc115780831 h 23
Туре 13 и Туре 14 — Запрос и ответ об отметке времени. PAGEREF _Toc115780832 h 23
Туре 15 и Туре 16 — Информационный запрос и ответ. PAGEREF _Toc115780833 h 23
Туре 17 и Туре 18 — Запрос и ответ о маске адреса. PAGEREF _Toc115780834 h 24
Вывод. PAGEREF _Toc115780835 h 25
Литература. PAGEREF _Toc115780836 h 26
Введение
Протокол Internet (IP) используетсядля обработки датаграммы, передаваемой между хост-компьютерами в системеобъединенных сетей, называемой Catenet. Устройства, осуществляющие соединениеразличных сетей, называются шлюзами. Для обеспечения управления шлюзы общаютсядруг с другом посредством протокола Gateway to Gateway Protocol (GGP). Поройшлюз или хост-компьютер, получающий данные, обменивается информацией схост-компьютером, отправляющим эти данные. Именно для таких целей используетсяданный протокол — протокол контрольных сообщений Internet (ICMP). ICMPиспользует основные свойства протокола Internet (IP), как если бы ICMP являлсяпротоколом более высокого уровня. Однако фактически ICMP является составнойчастью протокола Internet и должен являться составной частью каждого модуля IP.
Сообщения ICMP должны отправляться внекоторых затруднительных ситуациях. Например, когда датаграмма не можетдостичь своего адресата, когда шлюз не имеет достаточно места в своем буфередля передачи какой-либо датаграммы, или когда шлюз приказывает хост-компьютеруотправлять информацию по более короткому маршруту.
Протокол Internet не создан для того,чтобы обеспечивать абсолютную надежность передачи информации. Целью же данныхконтрольных сообщений является обеспечение обратной связи, оповещениеотправителя данных о проблемах, возникающих в коммуникационном оборудовании. Ихцелью не является придание надежности протоколу IP. Протокол не дает гарантий,что датаграмма достигает своего адресата или что контрольное сообщение будетвозвращено компьютеру, отправившему данные. Некоторые из датаграмм могутисчезнуть в сети, не вызвав при этом ни каких оповещений. Протоколы болеевысокого уровня, использующие протокол IP, должны применять свои собственныепроцедуры для обеспечения надежности передачи данных, если таковая требуется.
Сообщения ICMP протокола, какправило, оповещают об ошибках, возникающих при обработке датаграмм. Чтобыпроблемы с передачей сообщений не вызывали появление новых сообщений, чтобы этов свою очередь не привело к лавинообразному росту количества сообщений,циркулирующих в сети, констатируется, что нельзя посылать сообщения осообщениях. Также констатируется, что ICMP сообщения можно посылать только опроблемах, возникающих при обработке нулевого фрагмента в сегментированнойдатаграмме (нулевой фрагмент имеет нуль в поле смещения фрагмента).
Формат ICMP сообщений
ICMP сообщения посылаются с помощью стандартного IPзаголовка. Первый октет в поле данных датаграммы — это поле типа ICMPсообщения. Значение этого поля определяет формат всех остальных данных вдатаграмме. Любое поле, которое помечено «unused», зарегистрированодля последующих разработок и должно при отправлении содержать нули. Однакополучатель не должен использовать значения этих полей (за исключением процедурывычисления контрольной суммы). Если обратное особо не оговорено при описанииотдельных фрагментов, Internet заголовок должен иметь в своих полях следующиезначения:
Версия
4
IHL
Длина Internet заголовка; единица измерения — 32-битное слово.
Тип сервиса
0
Общаядлина
Длина Internet заголовка и поля данных в октетах.
Идентификация, флаги, смещение фрагмента
Время жизни
Время жизни в секундах. Поскольку значение этого поляуменьшается на единицу в каждой машине, на которой обрабатывается даннаядатаграмма, то значение этого поля должно, по крайней мере, превышатьколичество шлюзов, через которые будет проходить данная датаграмма.
Протокол
ICMP=1
Контрольная сумма заголовка
16-битное дополнение до единицы суммы дополнений до единицывсех 16-битных слов в заголовке. При вычислении данной суммы следуетпервоначально устанавливать значение этого поля в нуль.
В дальнейшем этот алгоритм вычисления контрольной суммы должен быть изменен.
Адрес отправления
Адрес шлюза или хост-компьютера, который составил данное ICMPсообщение. Если не оговорено обратное, в этом поле может находиться любой изадресов шлюза.
Адрес получателя
Адрес шлюза или хост-компьютера, которому следует послатьданное сообщение.Сообщение о недостижимости порта
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
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. Сообщение о превышении контрольного времени
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
Тип
Код
Контрольная сумма
не используется
Internet заголовок + 64 бита данных из исходной датаграммы
Поля IP заголовка
Заимствованы сеть и адрес отправителя из исходной датаграммыс данными. Поля ICMP сообщения
Тип
11
Код
0
при передаче превышено время жизни
1
превышено контрольное время при сборке фрагментов датаграммы
Контрольная сумма
Контрольная сумма является 16-битным дополнением до единицысуммы дополнений в ICMP сообщении, начиная с поля типа ICMP.
При вычислении суммы следует сперва обнулить поле контрольнойсуммы. В будущем алгоритм контрольной суммы может быть изменен.
Internet заголовок + 64 бита данных из исходной датаграммы
Internet заголовок плюс первые 64 бита данных из исходной датаграммы.Эти биты данных используются хост-компьютером для привязки сообщения ксоответствующему процессу. Если протокол более высокого уровня используетномера портов, то предполагается, что эти номера входят в первые 64 бита данныхв исходной датаграмме.
Описание
Если фрагмент нулевого размера превысил контрольное время, то сообщение в этомне посылается вовсе.
Шлюз может послать сообщение с кодом 0, а хост — с кодом 1. Сообщение о проблемах с параметром
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
Тип
Код
Контрольная сумма
указатель
не используется
Internet заголовок + 64 бита данных из исходной датаграммы
Поля IP заголовка
Заимствованы сеть и адрес отправителя из исходной датаграммыс данными. Поля ICMP сообщения
Тип
12
Код
0 — указатель показывает ошибку
Контрольная сумма
Контрольная сумма является 16-битным дополнением до единицысуммы дополнений в ICMP сообщении, начиная с поля типа ICMP.
При вычислении суммы следует сперва обнулить поле контрольнойсуммы. В будущем алгоритм вычисления контрольной суммы может быть изменен.
Указатель
Если код = 0, то он указывает на октет, где была обнаруженаошибка.
Internet заголовок + 64 бита данных из исходной датаграммы
Эти биты данных используются хост-компьютером для привязки сообщения ксоответствующему процессу. Если протокол более высокого уровня используетномера портов, то предполагается, что эти номера входят в первые 64 бита данныхв исходной датаграмме.
Описание
Если шлюз или хост-компьютер, обрабатывающий датаграмму, обнаруживает проблемус обработкой параметров заголовка, и это не позволяет завершить ее обработку,то он должен ликвидировать рассматриваемую датаграмму. Одной из потенциальныхпричин такой неприятности могут бить неправильные аргументы в опции. Шлюз или хост-компьютерв сообщении о проблеме с параметрами может также упомянуть хост-компьютер,породивший датаграмму с ошибкой. Сообщения такого типа посылаются лишь в томслучае, если ошибка приводит к ликвидации этой датаграммы.
Указатель определяет октет в заголовке исходной датаграммы,где была обнаружена ошибка (этот ошибочный октет может находиться дажепосередине опции). Например, 1 указывает на то, что имеется какая-то ошибка вполе типа сервиса, а (если имеются опции) 20 определяет, что имеется ошибка в кодетипа для первой опции. Код 0 сообщения может приходить как от шлюза, так и отхост-компьютера. Сообщение для приостановки отправителя
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
Тип
Код
Контрольная сумма
не используется
Internet заголовок + 64 бита данных из исходной датаграммы
Поля IP заголовка
Заимствованы сеть и адрес отправителя из исходной датаграммыс данными.
Поля ICMP сообщения
Тип
4
Код
0
Контрольная сумма
Контрольная сумма является 16-битным дополнением до единицысуммы дополнений в ICMP сообщении, начиная с поля типа ICMP. При вычисленииконтрольной суммы следует сперва обнулить поле контрольной суммы. В будущемалгоритм вычисления контрольной суммы может быть изменен.
Internet заголовок + 64 бита данных из исходной датаграммы
Internet заголовок плюс первые 64 бита данных из исходнойдатаграммы. Эти данные используются хост-компьютером для привязки сообщения ксоответствующему процессу. Если протокол более высокого уровня используетномера портов, то предполагается, что эти номера входят в первые 64 бита данныхисходной датаграммы.
Описание
Шлюз может ликвидировать Internet датаграммы, если у него нет места в буфередля постановки этих датаграмм в очередь на от правление в очередную сеть помаршруту следования к адресату.
Если шлюз ликвидирует датаграмму, то он должен послатьсообщение для приостановки хост-компьютеру в Internet системе, отправившемуданную датаграмму. Сообщение о приостановке может послать также сам адресат,если датаграммы приходят слишком быстро, чтобы успеть их обработать. Сообщениео приостановке является за просом для хост-компьютера уменьшить скоростьпосылки данных на этот конкретный адрес. Шлюз может посылать сообщение для приостановки отправителя в каждом случае ликвидации. При получении такогосообщения хост-компьютер, отправивший данные, должен уменьшить скорость посылкиданных по этому адресу до тех пор, пока не перестанут приходить запросы наприостановку с данного шлюза. После этого хост-компьютер, отправляющий данные,может постепенно увеличивать скорость посылки данных по этому адресу, покавновь не станут приходить сообщения о приостановке.
Шлюз или хост-компьютер может посылать сообщение оприостановке еще до достижения предельной пропускной способности, и не ждать,пока этот предел будет пройден. Это означает, что датаграмма с данными,вызвавшая появление сообщения о приостановке, все же может достичь своегоадресата. И шлюз и хост-компьютер могут отправить сообщение с кодом 0.Сообщение о переадресации
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
Тип
Код
Контрольная сумма
Internet адрес шлюза
Internet заголовок + 64 бита данных из исходной датаграммы
Поля IP заголовка
Заимствованы сеть и адрес отправителя из исходной датаграммыс данными.
Поля ICMP сообщения
Тип
5
Код
— переадресация датаграмм для сети
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.Эхо-сообщение и сообщение в ответ на эхо
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
Тип
Код
Контрольная сумма
Идентификатор
Номер очереди
Данные .....
Поля IP заголовка
Адреса
Адрес отправителя в эхо-сообщении будет адресом получателя в ответномсообщении. Чтобы сформировать сообщение ответа, следует просто переставитьместами адреса отправителя и получателя, код типа изменить на 0 и пересчитатьконтрольную сумму.
Поля ICMP сообщения
Тип
8
— эхо-сообщение
— сообщение в ответ на эхо
Код
0
Контрольная сумма
Контрольная сумма — это 16-битное дополнение до единицы суммыдополнений для ICMP сообщения, начиная с поля типа ICMP.
При вычислении контрольной суммы это поле должно быть сперваобнулено. Если общая длина сообщения нечетная, то для вычисления контрольнойсуммы поле данных дополняется еще одним нулевым октетом. В будущем алгоритмвычисления контрольной суммы может быть изменен.
Идентификатор
Если код = 0, то идентификатор для соотнесения эхо-сообщений и ответов на них,должен быть обнулен.
Номер очереди
Если код = 0, то номер очереди, служащий для соотнесенияэхо-сообщений и ответов на них, должен быть обнулен.
Описание
Данные из эхо-сообщения должны быть переданы в ответе на это сообщение.
Идентификатор и номер очереди может использоватьсяотправителем эхо-сообщения с целью идентификации приходящих пакетов. На пример,идентификатор может использоваться в качестве порта подобно протоколам TCP иUDP для идентификации сеанса. Номер очереди может увеличиваться на единицу припосылке каждого эхо сообщения (запроса). Компьютер, отозвавшийся на этосообщение, возвращает в своем ответе те же значения для идентификатора и номераочереди, что были в исходном эхо-сообщении.
Как шлюз, так и хост-компьютер могут возвращать сообщение скодом 0. Сообщение со штампом времени и сообщение с ответомна штамп времени
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
Тип
Код
Контрольная сумма
Идентификатор
Номер очереди
Штамп времени отправления
Штамп времени получения
Штамп времени передачи
Поля IP заголовка
Адреса
Адрес отправителя в сообщении со штампом времени будет адресом получателя всообщении с ответом. Чтобы сформировать ответ на сообщение, следует простопоменять местами адреса отправителя и получателя, выбрать код типа 14, а такжепересчитать контрольную сумму.
Поля ICMP сообщения
Тип
13
для сообщения со штампом времени
14
для ответа на сообщение со штампом времени
Код
0
Контрольная сумма
Контрольная сумма — это 16-битное дополнение до единицы суммыдополнений для ICMP сообщения, начиная с поля типа ICMP.
При вычислении контрольной суммы это поле должно быть сперваобнулено. В будущем алгоритм вычисления контрольной суммы может быть изменен.
Идентификатор
Если код = 0, то идентификатор, служащий для соотнесения сообщений со штампомвремени и ответов на них, должен быть обнулен.
Номер очереди
Если код = 0, то номер очереди, служащий для соотнесениясообщений со штампом времени и ответов на них, должен быть обнулен.
Описание
Данные из сообщения (штамп времени) возвращаются вместе с ответом, при этом вних добавляется еще один штамп времени. Штамп времени — это 32 бита, гдезаписано время в миллисекундах, прошедшее после полуночи по единому времени(UT). Один из примеров использования таких временных штампов приведен вдокументе
Штамп времени отправления — это время, которое отправительфиксировал последний раз перед посылкой сообщения. Штамп времени получения — это время, когда исходное сообщение впервые увидел получатель первоначальногосообщения. Штамп времени передачи — это время, которое фиксировал в последнийраз компьютер, отправляющий ответное сообщение.
Если нет возможности измерять время в миллисекундах илинельзя определить единое время (UT), то в штамп все же можно занести имеющеесявремя, снабдив его единицей в старшем бите. Последнее также указывает на записьнестандартного значения в этом поле.
Идентификатор и номер очереди могут использоватьсяотправителем для соотнесения сообщений (запросов) и ответов на них. На пример,идентификатор может использоваться в качестве порта, аналогично протоколам TCPи UDP, для идентификации сессии. Номер очереди может увеличиваться на единицупри каждой посылке сообщения (запроса). Адресат возвращает для этих параметровте значения, которые были обнаружены в запросе. И шлюз и хост-компьютер могутвозвращать сообщения с кодом 0. Запрос информации и ответное сообщение синформацией
1
2
3
4
5
6
7
8
9