Формат сообщения ICMP
Хотя каждое сообщение ICMP имеет свой собственный формат, все они начинаются с трех одинаковых полей: 8-битового целочисленного поля ТИП, которое идентифицирует сообщение, 8-битового поля КОД, которое обеспечивает более точную информацию о типе сообщения, и 16-битового поля КОНТРОЛЬНАЯ_СУММА(ICMP использует тот же самый аддитивный алгоритм, что и IP, но контрольная сумма ICMP учитывает только сообщение ICMP). Помимо того, сообщения ICMP, сообщающие об ошибках, всегда включают заголовок и первые 64 бита данных дейтаграммы, вызвавшей ошибку.
Причиной возвращения не только заголовка дейтаграммы, вызвавшей ошибку, является желание позволить получателю более точно определять, какие протоколы и какие прикладные программы ответственны за появление этой дейтаграммы. Как мы увидим позже, протоколы более высокого уровня в связке TCP/IP разрабатывались таким образом, что критическая информация закодирована в первых 64 битах.
Поле ТИП ICMP определяет смысл сообщения, а также его формат. Эти типы включают:
0 | Ответ на эхо |
3 | Назначение недостижимо |
4 | Подавление источника |
5 | Переназначение(изменение маршрута) |
8 | Запрос эха |
11 | Превышено время для дейтаграммы |
12 | Ошибка параметра в дейтаграмме |
13 | Запрос временной отметки |
14 | Ответ для временной метки |
15 | Запрос информации(не действует) |
16 | Ответ на запрос информации(не действует) |
17 | Запрос маски адреса |
18 | Ответ на запрос маски адреса |
Следующие секции описывают каждое из этих сообщений, приводя при этом детальное описание формата сообщения и их смысл.