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