ICMP(7) | Linux Programmer's Manual | ICMP(7) |
icmp, IPPROTO_ICMP - Módulo do kernel linux para ICMP para IPv4
Este módulo de protocolo do kernel implemente o ICMP (Internet Control Message Protocol - Protocolo de Mensagens de Controle de Internet) definido no RFC792. É usado para assinalar erros e para diagnóstico. O usuário não interage diretamente com este módulo, mas ele se comunica com os outros protocolos no kernel que passam os erros ICMP para as camadas de aplicativo. Este módulo responde ainda a requisições de ICMP.
Um protocolo do usuário pode receber pacotes ICMP em todos os sockets locais abrindo um socket raw com o protocolo IPPROTO_ICMP. Ver raw(7) para mais informações. Os tipos de pacotes ICMP passados para o socket são filtráveis usando a opção ICMP_FILTER do socket. Pacotes ICMP são sempre processados pelo kernel também, mesmo quando recebidos por um socket de usuário.
O linux limita a freqüência de pacotes de erro ICMP para cada destino. ICMP_REDIRECT e ICMP_DEST_UNREACH são também limitados pela rota de destino dos pacotes que chegam.
ICMP suporta uma interface sysctl que configura alguns parâmetros globais de IP. Os sysctls são acessáveis lendo ou escrevendo /proc/sys/net/ipv4/* ou com a interface sysctl(2) A maioria destes sysctls limita a freqüência de pacotes ICMP específicos. Linux 2.2 usa um filtro de acúmulo de tokens para limitar os ICMPs. Este valor é o intervalo - em segundos - para a limpeza do filtro após um surto.
Como muitas implementações não suportam sockets raw IPPROTO_ICMP , não se deve contar com este recurso em programas portáveis. Os pacotes ICMP_REDIRECT não são enviados quando o linux não está funcionando como roteador. Eles também só são aceitos quando partem do gateway antigo definido pela tabela de roteamento, e que as rotas de redirecionamento expiram após algum tempo.
O tempo no campo ICMP_TIMESTAMP é dado em milissegundos desde 1 de janeiro de 1970.
O ICMP linux usa um socket raw internamente para enviar os ICMPs. Este socket pode aparecer no netstat(8) com inode zero.
O suporte para a requisição ICMP_ADDRESS foi removida no 2.2.
O suporte a ICMP_SOURCE_QUENCH foi removido do Linux 2.2.
RFC792 descreve o protocolo ICMP.
Paulo César Mendes <drps@ism.com.br> (tradução) André L. Fassone Canova <lonelywolf@blv.com.br> (revisão)
27 Apr 1999 | Linux Man Page |