O protocolo ICMP (Internet Control Message Protocol) é um protocolo de rede para a rede do protocolo Internet (IP). O ICMP transfere informações de controle para o status da própria rede em vez de dados do aplicativo. Uma rede IP requer ICMP para funcionar corretamente.
Mensagens ICMP são um tipo específico de mensagem IP distinta do TCP e UDP.
O exemplo mais conhecido de mensagens ICMP na prática é o utilitário ping, que usa o ICMP para investigar os hosts remotos quanto à capacidade de resposta e medir o tempo total de ida e volta das mensagens do probe.
O ICMP também suporta outros utilitários, como traceroute, que identificam dispositivos de roteamento intermediários ("saltos") no caminho entre uma determinada origem e um destino.
ICMP versus ICMPv6
A definição original de ICMP oferece suporte às redes IPv4 (Internet Protocol versão 4). O IPv6 incorpora uma forma revisada do protocolo convencionalmente chamado ICMPv6 para distingui-lo do ICMP original (ocasionalmente chamado ICMPv4).
Tipos de mensagem ICMP e formatos de mensagem
Mensagens ICMP transportam dados essenciais para a operação e administração de uma rede de computadores. O protocolo informa sobre condições como dispositivos sem resposta, erros de transmissão e problemas de congestionamento de rede.
Como outros protocolos na família IP, o ICMP define um cabeçalho de mensagem. O cabeçalho contém quatro campos na seguinte sequência:
- Tipo (8 bits)
- Código (8 bits)
- Soma de verificação (16 bits)
- Dados ICMP (32 bits)
O ICMP define uma lista de tipos de mensagens específicos e atribui um número exclusivo a cada um.
Como mostrado na tabela abaixo, ICMPv4 e ICMPv6 fornecem alguns tipos de mensagens comuns (mas freqüentemente com números diferentes) e também algumas mensagens exclusivas para cada um. (Os tipos de mensagens comuns também podem variar um pouco em seu comportamento entre as versões IP).
| v4 # | v6 # | Tipo | Descrição |
|---|---|---|---|
| 0 | 129 | Echo Reply | Mensagem enviada em resposta a uma solicitação de eco (veja abaixo) |
| 3 | 1 | Destino inalcançável | Enviado em resposta a uma mensagem IP não entregue por qualquer um dos vários motivos. |
| 4 | - | Fonte Quench | Um dispositivo pode enviar essa mensagem de volta para um remetente que está gerando tráfego de entrada a uma taxa mais rápida do que pode ser processada. (Substituído por outros métodos.) |
| 5 | 137 | Redirecionar Mensagem | Os dispositivos de roteamento podem gerar esse método se detectarem que uma alteração na rota solicitada para uma mensagem IP deve ser alterada. |
| 8 | 128 | Pedido de eco | Mensagem enviada pelos utilitários de ping para verificar a capacidade de resposta de um dispositivo de destino |
| 11 | 3 | Tempo excedido | Os roteadores geraram essa mensagem quando os dados recebidos atingiram seu limite de contagem de "saltos". Usado pelo traceroute. |
| 12 | - | Problema do Parâmetro | Gerado quando um dispositivo detecta dados corrompidos ou ausentes em uma mensagem IP recebida. |
| 13, 14 | - | Timestamp (Pedido, Resposta) | Projetado para sincronizar os relógios de tempo entre dois dispositivos via IPv4, (substituído por outros métodos mais confiáveis). |
| - | 2 | Pacote muito grande | Os roteadores geram essa mensagem ao receber uma mensagem que não pode ser encaminhada ao seu destino devido a exceder um limite de tamanho. |
O protocolo preenche os campos de dados Código e ICMP, dependendo da mensagem Tipo escolhido para compartilhar informações adicionais. Por exemplo, uma mensagem Destino inacessível pode ter vários valores de código diferentes, dependendo da natureza da falha.




