Тип | Код | Название сообщения | Описание |
---|---|---|---|
0 | Echo Reply Message | Эхо-ответ | |
0 | Код всегда равен 0 | ||
3 | Destination Unreachable Message | Адресат недоступен | |
0 | Сеть недоступна | ||
1 | Узел недоступен — что-то случилось с компьютером возможно, он просто выключен | ||
2 | Протокол недоступен — запрашиваемый протокол ни поддерживается | ||
3 | Порт недоступен — на машине ни одна служба не связана с указанным номером порта | ||
4 | Длина пакета слишком велика, а в его заголовке установлен флаг DF (Don't Fragment), то есть не фрагментировать. Для передачи большого пакета его нужно фрагментировать (разбить на части), а так как установлен флаг DF, фрагментация, а следовательно, и передача пакета невозможна | ||
5 | Ошибочный маршрут источника | ||
4 | Source Quench Message | Обрыв источника | |
0 | Код всегда равен 0 | ||
5 | Redirect Message | Переадресация | |
0 | Переадресация пакетов для сети | ||
1 | Переадресация пакетов для узла | ||
2 | Переадресация пакетов для сети и типа обслуживания (TOS, Type Of Service) | ||
3 | Переадресация пакетов для узла и типа обслуживания (TOS, Type Of Service) | ||
8 | Echo Message | Эхо-запрос | |
0 | Код всегда равен 0 | ||
11 | Time Exceeded Message | Превышен лимит времени | |
0 | При передаче превышено «время жизни» (TTL, Time То Live) | ||
1 | Превышено время реассемблирования (сборки) фрагментов | ||
12 | Parameter Problem Message | Ошибочный параметр | |
0 | Указатель на ошибочный параметр (табл. 27.7) | ||
13 | Time stamp Message | Запрос временной метки | |
0 | Код всегда равен 0 | ||
14 | Timestamp Reply Message | Ответ о временной метке | |
0 | Код всегда равен 0 | ||
15 | Information Request | Информационный запрос (запрашивается номер нашей сети) | |
0 | Код всегда равен 0 | ||
16 | Information Reply Message | Информационный ответ (возвращается номер кашей сети) | |
0 | Код всегда равен 0 | ||
17 (*) | Information Request | Информационный запрос (запрашивается маска адреса) | |
0 | Код всегда равен 0 | ||
18 (*) | Information Reply Message | Информационный ответ (возвращается маска адреса) | |
0 | Код всегда равен 0 |
27.2.4. Функции для работы с протоколом ICMP
Для работы с протоколом ICMP существует 12 основных функций. Все эти функции описаны в файле /usr/src/linux/net/ipv4/icmp.c
♦ icmp_address()
— отправка ответа на запрос о маске адреса;♦ icmp_discard()
— удаляет ICMP-пакет;♦ icmp_echo()
— эхо-запрос;♦ icmp_init()
— инициализирует служебные подпрограммы протокола ICMP в операционной системе;♦ icmp_out_count()
— увеличивает счетчик отправленных пакетов;♦ icmp_rcv()
— прием ICMP-пакета;♦ icmp_redirect()
— отправка сообщения переадресации;♦ icmp_send()
— отправка ICMP-сообщения;♦ icmp_timestamp()
— ответ на запрос о времени создания;♦ icmp_unreach()
— отправляет сообщение об ошибке;♦ xrlim_allow()
— решает, отправлять ли ICMP-пакет или нет;♦ xrlim_init()
— ограничение скорости передачи ICMP-пакетов (в версии ядра 2.0).27.2.4.1. Технические подробности