O Internet Control Message Protocol (ICMP) é um protocolo de terceira camada (camada de rede) no modelo de sete camadas OSI. O protocolo diagnostica problemas de conectividade de rede ou transmissão de dados entre dispositivos. Ele ajuda enviando, recebendo e processando mensagens ICMP para relatar problemas de conectividade ao dispositivo de rede de origem.

Portanto, o objetivo principal do protocolo ICMP é relatar erros na camada de rede. No entanto, atores mal-intencionados podem manipular sua funcionalidade para lançar ataques como ataques de negação de serviço distribuído (DDoS) e Ping of Death. Aqui, você aprenderá sobre o protocolo ICMP, seu caso de uso e os parâmetros que são importantes para entender as mensagens ICMP.

Como funciona o ICMP?

Os roteadores usam o protocolo ICMP para realizar o gerenciamento de rede e o diagnóstico de problemas. Ele gera e envia mensagens de erro ao dispositivo emissor quando a rede desabilita a entrega de pacotes ao dispositivo de destino. Essas mensagens de erro incluem tempo excedido, problema de parâmetro, destino inacessível, congestionamento de rede, etc.

Por exemplo, quando um remetente envia dados de um dispositivo para o dispositivo de destino na forma de um datagrama IP, ele passa por vários roteadores ou dispositivos intermediários. Ocasionalmente, pode haver um erro no encaminhamento desse datagrama IPV4. Assim, as mensagens ICMP são divididas em duas grandes categorias: mensagens de erro e mensagens de consulta.

Mensagens de relatório de erros

Estas são as mensagens que o roteador ou host intermediário pode enfrentar no processamento de datagramas:

  1. Tempo excedido: O pacote ICMP tem um parâmetro de tempo de vida que quando atinge 0, o roteador ou host descarta o datagrama e envia uma mensagem de erro de tempo excedido. A mensagem também é enviada quando o destino não recebe todos os fragmentos de dados.
  2. Destino inalcançável: O dispositivo de iniciação da conexão recebe uma mensagem de erro de destino inacessível quando o roteador ou host intermediário não consegue entregá-la. Consequentemente, os dispositivos descartam o datagrama.
  3. Extinção de fonte: Quando os dispositivos não entregam o datagrama devido ao congestionamento da rede, eles enviam uma "mensagem de supressão de origem" ICMP ao remetente da mensagem. A mensagem de relatório de erros adiciona controle de fluxo na camada de rede informando ao dispositivo de origem sobre o congestionamento no caminho e retardando o processo de envio de dados.
  4. Redirecionamento: Um roteador em um caminho não ideal redireciona o pacote para um roteador com um caminho ideal entre a origem e o destino. Assim, ele atualiza a fonte sobre a mudança em sua rota.
  5. Problema de parâmetro: O dispositivo de origem recebe esta mensagem quando há algum valor ausente no cabeçalho do datagrama. Por exemplo, a diferença na soma de verificação calculada no destino da origem gera essa mensagem de erro ICMP.

Mensagens de consulta

As mensagens de consulta ocorrem em pares e fornecem informações específicas dos dispositivos intermediários para o dispositivo de origem.

  1. Mensagem de solicitação de eco e resposta de eco: Essas mensagens ajudam a resolver problemas de diagnóstico de rede.
  2. Solicitação de carimbo de data/hora e resposta: Essas solicitações de carimbo de data/hora e mensagens de resposta ajudam a determinar o tempo de ida e volta entre os dispositivos.

Entendendo os parâmetros ICMP

Os dados das mensagens ICMP são encapsulados sob o cabeçalho IP, o que significa que o cabeçalho do datagrama ICMP vem após as informações IPv4/v6. A primeira parte do cabeçalho do pacote ICMP contém os parâmetros que ajudam os dispositivos de rede a determinar o erro ou a mensagem de consulta.

Entre os primeiros 32 bits, os primeiros 8 bits determinam o tipo de mensagem, os próximos 8 bits determinam o código da mensagem e os bits restantes contêm informações relacionadas à integridade dos dados. Portanto, os três campos informativos são: tipos de ICMP, código ICMP e soma de verificação.

Tipos ICMP

O tipo determina a finalidade do pacote ICMP. Como explica brevemente por que o dispositivo de origem está recebendo essa mensagem. Existem de 0 a 255 tipos de mensagens ICMP, de modo que cada tipo fornece informações diferentes. Alguns tipos importantes de ICMP são:

0: Solicitação de eco

3: Destino inacessível

4: Extinção de Fonte

5: Redirecionar

8: Resposta de eco

11: Tempo Excedido

12: Problema de parâmetro

30: Traceroute

Código ICMP

O código ICMP fornece informações adicionais sobre as mensagens. Por exemplo, ICMP tipo 3 com código 0-15 especifica por que o destino está inacessível; ou seja, se o código for 0, é porque a rede está indisponível. Da mesma forma, para o código 1 do tipo 3, a mensagem especifica que o host está inacessível.

Além disso, o código 0 do tipo 8 e o código 0 do tipo 0 representam as mensagens de solicitação de eco e resposta de eco. Assim, cada tipo de mensagem com o mesmo valor de código fornece informações de rede diferentes.

Soma de verificação

A soma de verificação é um mecanismo de detecção de erros que determina a integridade dos dados. O valor da soma de verificação representa os bits na mensagem de transmissão. O emissor calcula e inclui a soma de verificação de dados, e o receptor recalcula o valor e compara-a com a original para determinar quaisquer alterações na mensagem original durante transmissão.

A segunda parte do cabeçalho aponta para o valor de byte que é a causa do problema na mensagem original. Por último, a parte final do pacote ICMP é o datagrama real.

Caso de uso ICMP

Aqui estão alguns exemplos de trabalho do protocolo ICMP em vários gerenciamento de rede e utilitários administrativos.

Ping

Ping é um utilitário de linha de comando que se baseia em mensagens de solicitação de eco e resposta de eco ICMP para testar a disponibilidade e a latência da rede entre os dispositivos. O utilitário simplesmente determina a disponibilidade do servidor de destino estimando o total de pacotes enviados ou recebidos e a porcentagem de perda de pacotes. Também ajuda a determinar o tamanho total da unidade máxima de transmissão (MTU).

Usar ping para determinar a disponibilidade do google.com:

Traceroute

Traceroute é outro utilitário de linha de comando que usa mensagens echo-request e echo-reply com uma variável TTL para mapear o caminho entre os dispositivos de origem e destino. Também é útil para determinar os atrasos de resposta e garante a precisão consultando cada salto várias vezes.

Como o ICMP funciona sem uma porta?

Da explicação acima, o ICMP é um protocolo sem conexão que envia dados independentemente como um datagrama e seu cabeçalho aparece após os detalhes do IPv4. No entanto, você também pode notar a ausência de um número de porta que levanta a questão de como os dispositivos recebem os dados ICMP ou tomam conhecimento de alguma conexão?

A resposta é bastante simples. O protocolo ICMP foi projetado para funcionar na camada de rede do Modelo OSI e se comunicar entre roteadores e hosts para compartilhar informações. Os números de porta fazem parte da camada de transporte e o ICMP não é um protocolo TCP nem UDP. Por fim, o tipo de ICMP e a combinação de código ajudam os dispositivos a determinar a mensagem e obter todas as informações sobre a rede.

Controle de erro e fluxo com ICMP

Os detalhes acima sobre o protocolo ICMP mostram como ele garante controle de fluxo e controle de erros de dados na camada três de um modelo OSI. As mensagens de protocolo e os parâmetros na primeira parte do cabeçalho do pacote ICMP cobrem todos os aspectos de gerenciamento de rede e problemas de diagnóstico.

É importante saber que configurações de firewall impróprias podem permitir que invasores executem a varredura de ping na rede da organização e a tornem propensa a ataques DDOS, ping da morte e inundação de ICMP. Você pode usar Wireshark para capturar pacotes da internet e realizar uma análise detalhada dos pacotes ICMP para melhor compreensão.

5 maneiras de corrigir o erro "Um ou mais protocolos de rede estão ausentes" no Windows 10

Leia a seguir

CompartilharTweetCompartilharE-mail

Tópicos relacionados

  • Tecnologia explicada
  • Redes de Computadores

Sobre o autor

Rumaisa Niazi (24 artigos publicados)

Rumaisa é redatora freelancer na MUO. Ela já desempenhou muitos cargos, de matemática a entusiasta de segurança da informação, e agora está trabalhando como analista de SOC. Seus interesses incluem ler e escrever sobre novas tecnologias, distribuições Linux e qualquer coisa relacionada à Segurança da Informação.

Mais de Rumaisa Niazi

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar