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