Skip to main content

O que é o Internet Control Message Protocol?

O ICMP (Internet Control Message Protocol) é um utilitário usado para fins de relatório de erro e diagnóstico em redes de computadores. O ICMP faz parte do conjunto de protocolos da Internet (IP) e consiste em mensagens predefinidas com propósitos variados. A maioria dos aspectos do Internet Control Message Protocol passa despercebida pelos usuários finais, mas algumas ferramentas de rede, como traceroute e ping, dependem de mensagens ICMP para sua funcionalidade.

No coração da Internet e de redes menores de computadores, há uma coleção de protocolos conhecidos como IP Suite. Esses protocolos especificam os formatos das mensagens trocadas entre os dispositivos de rede e estabelecem regras sobre como essas mensagens são enviadas e recebidas. Os protocolos também são em camadas, com cada camada confiando na que está abaixo dela. O ICMP faz parte da segunda camada mais alta, a camada da Internet. Essa camada inclui o conhecido Protocolo da Internet responsável pela transmissão de grupos individuais de dados, chamados pacotes, por uma ou mais redes.

O ICMP é usado para enviar mensagens de erro ou informações de diagnóstico entre dispositivos ou hosts usando o Protocolo da Internet. As mensagens ICMP são predefinidas e podem ser referidas pelo nome ou número do tipo. A maioria dessas mensagens é para diferentes tipos de relatórios de erros. Por exemplo, quando um host específico não pode ser alcançado, muitas vezes é gerada uma mensagem ICMP indicando o problema específico que impede a entrega de dados. Outros tipos de mensagens são enviados se os pacotes forem corrompidos ou se um roteador ou host em uma rede estiver congestionado.

O tamanho máximo de um pacote não é predefinido, mas é determinado pela MTU (unidade máxima de transmissão) de um link de rede específico. Links diferentes podem ter MTUs diferentes, mas um pacote deve ser menor que o menor MTU ao longo de um determinado caminho para concluir sua jornada. Uma técnica conhecida como Path MTU Discovery (PMTUD) usa mensagens ICMP para notificar um remetente quando os pacotes são muito grandes para um segmento de caminho específico.

Um protocolo relacionado, conhecido como IRDP (ICMP Router Discovery Protocol), pode facilitar a configuração automática de rede para hosts que o suportam. O IRDP usa dois tipos de mensagens do Internet Control Message Protocol para anunciar e descobrir roteadores próximos, ou seja, hosts que conectam duas ou mais redes. Um roteador compatível com IRDP transmitirá periodicamente uma mensagem de anúncio de roteador ICMP anunciando sua presença nos hosts. Os hosts também podem enviar uma mensagem de solicitação solicitando que todos os roteadores próximos se identifiquem.

Alguns utilitários de rede populares também contam com o Internet Control Message Protocol. Uma ferramenta, o traceroute, utiliza a mensagem ICMP gerada quando um pacote expira ou excede seu "tempo de vida" (TTL). Ao definir um valor TTL intencionalmente baixo para um pacote, o traceroute receberá uma mensagem ICMP Time Excedido do último roteador que o pacote alcançou antes de expirar. Repetir esse processo e aumentar o valor TTL, em teoria, gerará uma lista de todos os pacotes de hosts que estão viajando.

Outra ferramenta chamada ping depende da mensagem de solicitação de eco do ICMP, que é respondida com uma mensagem de resposta de eco do ICMP. Infelizmente, o ping também pode ser abusado no chamado "ataque de smurf" quando um hacker envia solicitações de eco com informações falsas do remetente, as quais são respondidas por muitas outras máquinas. Isso pode congestionar uma rede ao ponto em que nenhum pacote legítimo pode passar, uma situação conhecida como negação de serviço.