| 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.
В RFC 792 приведено описание протокола ICMP.
Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| 2 мая 2024 г. | Справочные страницы Linux 6.9.1 |