Документация по LinuxLinuxDoc.Ru 🔍

icmp, IPPROTO_ICMP - модуль IPv4 ICMP ядра Linux

НАЗВАНИЕ
icmp, IPPROTO_ICMP - модуль IPv4 ICMP ядра Linux.

ОПИСАНИЕ
Этот модуль ядра реализует протокол, контролирующий
сообщения в Интернет (ICMP - Internet Control Message Pro-
tocol), определенный в RFC792. Протокол предназначен для
сообщений об ошибках и для их диагностики. Пользователи не
работают с этим модулем непосредственно; вместо этого он
сообщается с другими протоколами ядра, а они помещают
ошибки ICMP на уровень приложений. Кроме того, модуль
ICMP-ядра отвечает на запросы ICMP.

Протокол пользователя может получать пакеты ICMP для всех
локальных сокетов, открывая raw-сокет с протоколом
IPPROTO_ICMP. За дополнительной информацией обращайтесь к
raw(7). Пакеты ICMP, передаваемые сокету, могут быть
отсортированы согласно их типу с помощью опции ICMP_FIL-
TER. Пакеты ICMP всегда обрабатываются ядром, даже если
передаются сокету пользователя.

Linux ограничивает темп отправки пакетов ICMP с
сообщениями об ошибках в определенный пункт назначения.
ICMP_REDIRECT и ICMP_DEST_UNREACH также ограничиваются
согласно маршруту назначения приходящих пакетов.

РАБОТА С ИНТЕРФЕЙСОМ SYSCTLS
ICMP поддерживает интерфейс sysctl для настройки некоторых
общих параметров IP. Доступ к sysctl можно получить путем
чтения или записи информации в /proc/sys/net/ipv4/* или с
помощью интерфейса sysctl(2). Большинство вызовов sysctl
ограничивают темп определенных типов ICMP. Linux 2.2 для
ограничения ICMP использует буферный фильтр (token bucket
filter). Указываемые значения - это время в тиках
(jiffies) до очищения буферного фильтра после передачи
данных (burst). Тик - это системозависимый отрезок
времени, обычно 10 мс в архитектуре x86 и около 1 мс в
alpha или IA64.

icmp_destunreach_rate
Определяет максимальный темп передачи пакетов ICMP
в недоступный пункт назначения. Ограничивает темп,
в котором пакеты передаются по определенному
маршруту или в определенный пункт назначения.
Ограничение не касается отправки пакетов
ICMP_FRAG_NEEDED, необходимых для выяснения
MTU-пути.

icmp_echo_ignore_all
Если это значение не равно нулю, то Linux будет
игнорировать все запросы ICMP_ECHO.

icmp_echo_ignore_broadcasts
Если это значение не равно нулю, то Linux будет
игнорировать все пакеты ICMP_ECHO, посланные по
широковещательным адресам.

icmp_echoreply_rate
Максимальный темп отправки пакетов ICMP_ECHOREPLY в
ответ на отправленные пакеты ICMP_ECHOREQUEST.

icmp_paramprob_rate
Максимальный темп отправки пакетов ICMP_PARAMETER-
PROB. Эти пакеты отправляются, когда приходит
пакет с неправильным заголовком IP.

icmp_timeexceed_rate
Максимальный темп отправки пакетов
ICMP_TIME_EXCEEDED. Эти пакеты посылаются для
предотвращения зацикливания, если пакет совершил
слишком много "hops" - переходов от одной машины к
другой.

ЗАМЕЧАНИЯ
Так как многие реализации не поддерживают raw-сокеты
IPPROTO_ICMP, то переносимые (portable) программы не
должны зависеть от наличия этой возможности.

Пакеты ICMP_REDIRECT не посылаются, если Linux не работает
как маршрутизатор. Кроме того, от старых шлюзов,
определенных в таблице маршрутизации, пакеты могут только
приниматься, и перенаправленные маршруты через некоторое
время устаревают.

64-битная отметка времени, возвращаемая ICMP_TIMESTAMP,
рассчитается в миллисекундах с 1 января 1970 г.

ICMP Linux для отправки ICMP использует raw-сокет. Этот
сокет может появляться в выводимой команде netstat(8) с
нулевым узлом.


ВЕРСИИ
Поддержка запроса ICMP_ADDRESS была удалена из Linux
версии 2.2.

Поддержка запроса ICMP_SOURCE_QUENCH была удалена из Linux
версии 2.2.
Читать новости Linux в Telegram
Linux - icmp, IPPROTO_ICMP - модуль IPv4 ICMP ядра Linux
Мы в соцсетях ✉