Provided by: manpages-ru_0.98-4_all bug

НАЗВАНИЕ

       icmp, IPPROTO_ICMP - модуль ядра Linux, реализующий протокол IPv4 ICMP.

ОПИСАНИЕ

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

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

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

SYSCTLS

       ICMP поддерживает интерфейс sysctl для настройки  некоторых  глобальных
       параметров  IP.   К этим параметрам можно обращаться, читая и записывая
       файлы /proc/sys/net/ipv4/*, или же  при  помощи  интерфейса  sysctl(2).
       Большая   часть   этих   параметров   управляет   ограничением   потока
       разнообразных ICMP-пакетов.  Linux 2.2 использует token  bucket  фильтр
       для  ограничения ICMP пакетов.  Значение таких параметров -- задержка в
       jiffies, пока token-bucket-фильтр очищается после всплеска.  "Jiffy" --
       это системо-зависимая единица измерения, обычно 10мс на x86 и около 1ms
       на Alpha и IA64.

       icmp_destunreach_rate
              Максимальная   частота    посылки    ICMP-пакетов    Destination
              Unreachable  по  каждому  конкретному  маршруту  или получателю.
              Ограничение  не  влияет  на  посылку  пакетов  ICMP_FRAG_NEEDED,
              необходимых для определения MTU маршрута (path MTU discovery).

       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_PARAMETERPROB.   Эти
              пакеты  посылаются,  когда приходит пакет с ошибочным заголовком
              IP.

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

ПРИМЕЧАНИЯ

       Так как многие реализации не поддерживают "сырые" сокеты  с  параметром
       IPPROTO_ICMP,   то  использование  этой  особенности  нежелательно  при
       написании переносимых программ.

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

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

       Реализация ICMP в Linux внутри себя использует для посылки ICMP-пакетов
       "сырые" сокеты.  Такие сокеты могут показываться программой netstat(8),
       причем их inode будет равен нулю.

ВЕРСИИ

       Поддержка запроса ICMP_ADDRESS была прекращена в ядре 2.2.

       Поддержка ICMP_SOURCE_QUENCH была прекращена в ядре Linux 2.2.

СМОТРИ ТАКЖЕ

       ip(7)

       RFC792, где описан протокол ICMP.

ПЕРЕВОД

       Перевел с английского Алексей Миллер <asm@asm.kiev.ua> 2000