Index général des pages de man   Index Section man 7   Table des Matières de icmp   Imprime la page de man icmp en mode Texte   Recherche dans les pages de man   Page de man en français      Divers, conventions (section 7)

icmp

 
  

Nom

icmp, IPPROTO_ICMP - Module ICMP IPv4 du noyau Linux.

Description

Ce module du noyau implémente le protocole ICMP (Internet Control Message Protocol) défini dans la RFC 792. Il sert pour diagnostiquer et indiquer des conditions d'erreurs. L'utilisateur n'interragit pas directement avec ce module, à la place il communique avec les autres protocoles dans le noyau, et ceux-ci transmettent les erreurs ICMP aux couches applicatives. Ce module répond également aux requêtes ICMP.

Un protocole utilisateur peut recevir des paquets ICMP pour toutes les sockets locales en utilisant une socket raw avec le protocole IPPROTO_ICMP. Voir la page raw(7) pour plus de détails. Les types de paquets ICMP transmis à la socket peuvent être filtrés en utilisant l'option ICMP_FILTER de la soket. Les paquets ICMP sont toujours traités par le noyau aussi, même lorsqu'ils sont transmis à une socket utilisateur.

Linux limite le débit des paquets d'erreurs ICMP pour chaque destination. ICMP_REDIRECT et ICMP_DEST_UNREACH sont aussi limité par la route de destination des paquets entrants.

Sysctls

ICMP dispose d'une interface sysctl pour configurer certains paramètres IP globaux. Cette interface est accessible en lisant ou écrivant les fichiers /proc/sys/net/ipv4/* ou à l'aide de l'appel-système sysctl(2) . La plupart de ces sysctls sont des limitations de débit pour des types ICMP spécifiques. Linux 2.2 utilise un filtre à jeton pour limiter les ICMPs. On peut configurer le délai en seconde avant que le filtre soit vidé après une émission.
icmp_destunreach_rate
Fréquence maximale pour envoyer des paquets ICMP "Destination inaccessible". Ceci limite le débit avec lequel ces paquets sont émis vers des routes individuelles ou collectives. Cette limite n'affecte par l'envoi des paquets ICMP_FRAG_NEEDED nécessaire pour rechercher le MTU d'un chemin.
icmp_echo_ignore_all
Si cette valeur est non-nulle, Linux ignorera toutes les requêtes ICMP_ECHO.
icmp_echo_ignore_broadcasts
Si cette valeur est non-nulle, Linux ignorera toutes les requêtes ICMP_ECHO envoyées à une adresse broadcast.
icmp_echoreply_rate
Vitesse maximale pour envoyer les paquets ICMP_ECHOREPLY en réponse aux requêtes ICMP_ECHOREQUEST.
icmp_paramprob_rate
Débit maximal pour émettre les paquets ICMP_PARAMETERPROB. Ceux-ci sont envoyés lorsqu'un paquet arrive avec un entête IP invalide.
icmp_timeexceed_rate
Débit maximal pour émettre les paquets ICMP_TIME_EXCEEDED. Ceux-ci sont envoyés pour empêcher les boucles quand un paquet a réalisé trop de sauts.

Notes

Comme beaucoup d'autres implémentation ne supportent pas les socket raw IPPROTO_ICMP, on ne doit pas se reposer sur cette fonctionnalité dans les programmes portables.

Les paquets ICMP_REDIRECT ne sont pas envoyés quand Linux ne fonctionne pas en routeur. Ils ne sont également acceptés que d'une passerelle précédemment définie dans la table de routage, et les routes de redirection expirent après un certain délai.

L'horodatage 64 bits renvoyés par ICMP_TIMESTAMP est en millisecondes depuis le 1er Janvier 1970.

En interne, l'ICMP Linux utilise une socket raw pour envoyer les ICMPs. Cette socket peut apparaitre dans la sortie de netstat(8) avec un i-noeud nul.    

Versions

Le support pour les requêtes ICMP_ADDRESS a été supprimé dans le noyau 2.2.

Le support pour ICMP_SOURCE_QUENCH a été supprimé dans Linux 2.2.

Voir Aussi

ip(7)

RFC 792 pour une description du protocole ICMP.

Traduction

Christophe Blaess, 2000.


Table des matières


Haut de page

© 1996-2000 Adaptation française "Christophe Blaess"