ICMP

Internet Control Message Protocol (ICMP)) uma rede de protocolo que é responsável por comunicar erros através dos meios de geração e envio de mensagens para o endereço IP de origem quando existem problemas de rede encontrados pelo sistema.[1] As mensagens que o ICMP gera indicam que um determinado gateway, roteador, serviço ou mesmo host que deveria se conectar à internet não pode ser alcançado. Basicamente, o destinatário não pode receber pacotes durante a transmissão. Qualquer dispositivo de rede IP pode enviar, gerar, receber e processar mensagens de erro ICMP.

Por outras palavras, pode imaginar o ICMP como uma equipa que produz peças mecânicas para veículos. A melhor forma de montar um veículo seria fabricar primeiro cada peça individual antes de enviar cada uma destas peças para a linha de montagem, que as montaria num produto mais complexo. No entanto, como todos sabemos, haverá alturas em que a equipa de produção não poderá enviar algumas das peças num prazo determinado. Se alguma vez houver peças em falta, a linha de montagem terá que notificar a equipe de produção, portanto, o ICMP funciona da mesma forma. Essencialmente, o ICMP desempenha o papel de mensageiro que transmite dados e informações do destinatário para o remetente.

Funcionalidade

Este protocolo é bastante complexo. Ele tem várias outras funções além de apenas relatar erros em transmissões de pacotes e hosts que não podem ser alcançados. Também retransmite eco, bem como resposta de eco, mensagens. Isto é utilizado através de um comando PING bem conhecido que permite à maioria dos utilizadores transmitir um eco a um anfitrião receptor. Isto envia uma resposta de eco sempre que é recebido um eco.

Como tal, as mensagens ICMP fornecem uma maneira para que a rede e o sistema notifiquem o endereço IP de origem, que é o fim do relaying, se o host remoto, que é o fim receptor, não estiver recebendo nenhum pacote que tenha sido transmitido.[2]

Um roteador é usado para transmitir a popular mensagem "Destination Unreachable" de volta para o host de origem.[3] Isto então o enviaria para o dispositivo ou programa que primeiro transmitiu os pacotes de dados. Estas mensagens de erro deixariam então o programa saber que havia um problema com a conectividade da rede. Uma vez que o programa fonte tenha recebido a informação de que alguns desses pacotes de dados não chegaram ao destinatário, ele então retransmitiria essa informação para o destinatário.

Como uma função principal, o ICMP não é necessariamente usado regularmente por indivíduos em aplicações de usuário final, mas é usado por numerosos administradores de rede para solucionar quaisquer erros presentes em conexões de internet através de um diagnóstico de utilidade como:[4]

  1. Ping
  2. Traceroute

O protocolo principal que o ICMP usa é usado por dispositivos intermediários, roteadores e até mesmo hosts para se comunicar caso ocorra um erro e fazer atualizações nos roteadores, dispositivos intermediários e hosts necessários. Neste caso, o IPv4 mais utilizado universalmente (Protocolo Internet versão 4) e o muito mais recente IPv6 usam versões similares do protocolo ICMP, que são chamados de ICMPv4 e ICMP6, respectivamente.[5]

Em termos de como o ICMP se relaciona a diferentes cabeçalhos de pacotes, o cabeçalho ICMP aparece após o cabeçalho de pacote IPv4 ou IPv6, enquanto é reconhecido por um número de protocolo. Este protocolo complexo contém três componentes principais diferentes:[6]

  • O principal componente que reconhece as mensagens ICMP.
  • O código menor que contém dados e informações sobre esse determinado tipo de campo.
  • A soma de controle que realmente ajuda a detectar o problema específico que foi introduzido durante a transmissão da mensagem.

Mensagens ICMP

A mensagem mais popular e conhecida de um datagrama ICMP é a mensagem "Destination Unreachable".[1:1] Existem várias razões pelas quais esta mensagem é gerada, o que inclui problemas como não ser capaz de alcançar uma rede, uma máquina, uma porta ou mesmo um protocolo defeituoso.

A maioria dos usuários deve estar ciente e também deve levar em conta que, embora a mensagem "Destino inalcançável" seja a mensagem mais comum recebida, ela não é a única mensagem que o ICMP pode transmitir. Há outras mensagens de erro que incluem:[2:1]

  • Redirecionar Mensagem - Isto é o que um gateway usa para que o host de origem saiba que ele vai enviar tráfego para um roteador diferente.
  • Time Exceeded - Isto é o que um roteador irá dizer à máquina fonte que um determinado pacote excedeu um determinado período de tempo chamado Time to Live (TTL). Quando um determinado host começa a receber os pacotes de informação "Time Exceeded", isto é um sinal de que há um problema dentro do sistema onde um loop de feedback existe no fluxo de informação.
  • Source Quench - São mensagens que são enviadas de um roteador para o host. Isto deixa-o saber que a capacidade de amortecimento é agora cheia e parará brevemente o processo de transmissão para que ele seja capaz de alcançar o resto dos dados.

Outras mensagens incluem Parameter Problem, Address Mask Request and Reply, Timestamp.

Restrições

Apesar de todas essas funções que o ICMP deve executar, ele tem algumas restrições funcionais. O ICMP não ajuda o host ou IP de origem a se tornar mais confiável e não recebe ou envia quaisquer dados que possam ser usados para a transmissão.[5:1] O ICMP simplesmente existe como uma forma de identificar problemas em pacotes perdidos e qualquer roteamento quebrado.

Um ICMP também não enviará mensagens sobre mensagens ICMP.[2:2] Se isso acontecesse, isso causaria um loop de feedback que seria prejudicial para o sistema, pois criaria uma mensagem ICMP de volta para o outro lado. Isto iria então replicar-se rapidamente ao ponto de inundar a rede, tornando-a ineficaz.


  1. https://searchnetworking.techtarget.com/definition/ICMP ↩︎ ↩︎

  2. https://www.pcwdld.com/what-is-icmp-and-port ↩︎ ↩︎ ↩︎

  3. https://www.comparitech.com/net-admin/what-is-icmp/ ↩︎

  4. https://www.techopedia.com/definition/5362/internet-control-message-protocol-icmp ↩︎

  5. http://www.enterprisenetworkingplanet.com/netsp/article.php/3584166/Networking-101-Understanding-and-Using-ICMP.htm ↩︎ ↩︎

  6. https://www.webopedia.com/TERM/I/ICMP.html ↩︎