O que é o protocolo de mensagem de controle da Internet?
O ICMP (Internet Control Message Protocol) é um utilitário usado para relatórios de erros e fins de diagnóstico em redes de computadores. O ICMP faz parte do conjunto de protocolo da Internet (IP) e consiste em mensagens predefinidas com fins variados. A maioria dos aspectos do protocolo de mensagens de controle da Internet passa despercebida pelos usuários finais, mas algumas ferramentas de rede, como o Traceroute e o ping, dependem de mensagens ICMP para sua funcionalidade. Esses protocolos especificam os formatos para mensagens trocadas entre os dispositivos de rede e estabelecem regras de como essas mensagens são enviadas e recebidas. Os protocolos também são em camadas, com cada camada confiando naquele embaixo dela. O ICMP faz parte da segunda maior camada, a camada da Internet. Essa camada inclui o conhecido protocolo da Internet responsável pela transmissão de grupos individuais de dados, chamados pacotes, em uma ou mais redes.
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, uma mensagem ICMP é frequentemente gerada, indicando o problema específico que impedia 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 ditado pela unidade de transmissão máxima (MTU) 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 pacotessão muito grandes para um segmento de caminho específico.
Um protocolo relacionado conhecido como ICMP Router Discovery Protocol (IRDP) pode facilitar a configuração automática de rede para hosts que o suportam. O IRDP usa dois tipos de mensagens de protocolo de mensagem de controle da Internet para anunciar e descobrir roteadores próximos, ou seja, hosts que conectam duas ou mais redes. Um roteador que apoia o IRDP transmitirá periodicamente uma mensagem de anúncio do roteador ICMP anunciando sua presença aos 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 dependem do protocolo de mensagem de controle da Internet. Uma ferramenta, Traceroute, utiliza a mensagem ICMP gerada quando um pacote expirou ou excedeu seu "tempo para viver" (TTL). Ao definir um valor TTL intencionalmente baixo para um pacote, o Traceroute receberá uma mensagem de tempo do ICMP excedeu do último roteador que o pacote alcançou antes de expirar. Repetindo esse processo e aumentando o TTLO valor irá, 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 ICMP, que é respondida com uma mensagem de resposta do eco do ICMP. Infelizmente, o ping também pode ser abusado em um "ataque smurf" quando um hacker envia solicitações de eco com informações falsificadas do remetente, que são respondidas por muitas outras máquinas. Isso pode congestionar uma rede a ponto de nenhum pacotes legítimos pode passar, uma situação conhecida como negação de serviço.