icmp(7) | Miscellaneous Information Manual | icmp(7) |
icmp - модуль ядра Linux, реализующий протокол IPv4 ICMP
Этот модуль ядра реализует Internet Control Message Protocol, описанный в RFC 792. Он используется для извещения об ошибках и для диагностики. Пользователь не взаимодействует напрямую с этим модулем; вместо этого он работает с другими протоколами в ядре, а они при помощи протокола ICMP передают ошибки на уровень приложения. Кроме того, этот модуль отвечает на ICMP-запросы.
Пользовательский протокол может получать ICMP-пакеты для всех локальных сокетов, если откроет неструктурированный (raw) сокет, используя протокол IPPROTO_ICMP. Более подробную информацию смотрите в raw(7). Типы ICMP-пакетов, передаваемые в сокет, могут быть отфильтрованы с помощью параметра сокета ICMP_FILTER. Пакеты ICMP всегда обрабатываются ядром, даже когда передаются в пользовательский сокет.
Linux ограничивает для каждого получателя поток ICMP-пакетов с сообщениями об ошибках. Количество ICMP_REDIRECT и ICMP_DEST_UNREACH также ограничивается для каждого отправителя приходящих пакетов.
Для настройки некоторых глобальных параметров IP ICMP поддерживает набор интерфейсов в /proc. Эти параметры доступны на чтение и запись через файлы в каталоге /proc/sys/net/ipv4/. Большинство параметров служит для управления ограничением потока пакетов ICMP определённых типов. В Linux 2.2 для ограничения ICMP используется фильтр «протекающего ведра» (token bucket). Значение — задержка в jiffy, отведённая на очистку фильтра после всплеска. Величина jiffy зависит от архитектуры машины, обычно, это 10мс на i386 и около 1мс на alpha и ia64.
0 Ответное эхо |
3 Назначение недостижимо * |
4 Погасить источник * |
5 Перенаправление |
8 Запрос эхо |
B Время вышло * |
C Проблема с параметром * |
D Запрос метки времени |
E Ответ меткой времени |
F Запрос информации |
G Ответ информацией |
H Запрос маски адреса |
I Ответ маской адреса |
Для битов, помеченных звёздочкой, ограничение включено по умолчанию (смотрите маску по умолчанию, приведённую ранее).
Support for the ICMP_ADDRESS request was removed in Linux 2.2.
Поддержка ICMP_SOURCE_QUENCH была удалена из Linux 2.2.
Так как многие реализации не поддерживают неструктурированные сокеты IPPROTO_ICMP, то использование этой возможности нежелательно при написании переносимых программ.
Пакеты ICMP_REDIRECT не посылаются, если Linux не работает как маршрутизатор. Также, они принимаются только от старых шлюзов, определённых в таблице маршрутизации, причем информация о перенаправлении маршрутов устаревает через некоторое время.
Значения 64-битных временных меток, возвращаемых по ICMP_TIMESTAMP, отсчитываются в миллисекундах с начала Эпохи, 1970-01-01 00:00:00 +0000 (UTC).
В Linux-реализации ICMP для посылки ICMP-пакетов используются неструктурированные сокеты. Такие сокеты могут показываться программой netstat(8), при этом их inode будет равен 0.
ip(7), rdisc(8)
В RFC 792 приведено описание протокола ICMP.
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
15 декабря 2022 г. | Linux man-pages 6.03 |