Internet Control Message Protocol

ICMP (Internet Control Message Protocol)
Família: Família de protocolo de Internet
Área de operação: Adição obrigatória

para o protocolo da Internet ,
mensagens de erro, diagnósticos

ICMP na pilha de protocolo TCP / IP
Internet ICMP
IPv4
Acesso à rede Ethernet
Barramento de token
Token
ring
FDDI ...
Padrões: RFC 792 (1981)

O Internet Control Message Protocol ( ICMP ) é usado em redes de computadores para trocar informações e mensagens de erro por meio do Internet Protocol versão 4 ( IPv4 ). Existe um protocolo semelhante para IPv6 chamado ICMPv6 .

O ICMP faz parte do IPv4, mas é tratado como um protocolo separado. Todo roteador e todo computador devem "entender" o ICMP. A maioria dos pacotes ICMP contém informações de diagnóstico: Eles são enviados de volta do roteador para a origem se o roteador descarta os pacotes, por exemplo, porque o destino não pode ser alcançado ou o TTL expirou. Os seguintes princípios se aplicam:

  • O ICMP usa o IP como base da comunicação, interpretando-se como um protocolo de uma camada superior, i. H. As mensagens ICMP são encapsuladas em pacotes IP.
  • O ICMP detecta algumas condições de erro, mas não torna o IP um protocolo confiável.
  • O ICMP analisa os erros em cada pacote IP, com exceção daqueles que carregam uma mensagem ICMP.
  • As mensagens ICMP não são enviadas em resposta a pacotes para endereços de destino que são endereços multicast ou de broadcast.
  • As mensagens ICMP respondem apenas a um endereço IP de origem exclusivo.

Os tipos de pacote ICMP

O tipo de pacote ICMP é um número de 8 bits no início do cabeçalho ICMP . Os números têm os seguintes significados:

  • 0 = eco (resposta)
  • 1–2 = não atribuído
  • 3 = destino do datagrama não pode ser alcançado
  • 4 = pedido para limitar a entrega do pacote
  • 5 = Recomendação de redirecionamento para outro gateway na mesma rede com uma conexão mais rápida ao destino
  • 6 = endereço de host alternativo
  • 7 = não atribuído
  • 8 = solicitar um eco
  • 9 = oferta de um roteador
  • 10 = recrutamento de roteador
  • 11 = tempo limite
  • 12 = Problema com parâmetros do datagrama
  • 13 = carimbo de hora (facilita a sincronização de tempo)
  • 14 = carimbo de data / hora (resposta)
  • 15 = "Solicitação de informações" (para determinar o número da rede, substituído por DHCP )
  • 16 = "Resposta de informação"
  • 17 = solicitar máscara de rede
  • 18 = máscara de rede de resposta
  • 19 = reservado (para segurança)
  • 20-29 = reservado (para experimentos de robustez)
  • 30 = traceroute
  • 31 = Erro ao converter datagrama
  • 32 = Redirecionamento de host móvel
  • 33 = Originalmente IPv6 Where-Are-You (substituído por ICMPv6 )
  • 34 = Originalmente IPv6 I-Am-Here (substituído por ICMPv6 )
  • 35 = Solicitação de registro de celular
  • 36 = Resposta de registro móvel
  • 37 = Solicitação de Nome de Domínio
  • 38 = Resposta de Nome de Domínio
  • 39 = SKIP
  • 40 = foturis
  • 41 = usado por protocolos experimentais de mobilidade, como Seamoby
  • 42 = eco estendido *
  • 43 = eco estendido (resposta) *
  • 44-252 = não atribuído
  • 253 = experimento 1 de acordo com RFC 3692
  • 254 = Experimento 2 de acordo com RFC 3692

[†] abolido

Tempo de Viver

Para evitar que os pacotes sejam enviados indefinidamente através de uma rede (por exemplo, em um círculo entre vários roteadores), um roteador reduz o valor TTL em 1. Quando o valor TTL atinge o valor 0, o pacote é excluído e o remetente informa sobre esse processo por meio de uma mensagem ICMP. O Traceroute faz uso desse mecanismo .

A fim de determinar a rota (os saltos ) de um pacote para um host de destino específico , o programa de análise traceroute envia pacotes de dados com um incremento Time-To-Live (TTL) (começando com 1) e espera por "Tempo de vida excedido em trânsito" ou Mensagens de "Destino inacessível" como reação. Dependendo da implementação ou de uma opção selecionada de Traceroute, estes podem ser pacotes ICMP (por exemplo, no Windows) ou UDP (por exemplo, no Linux).

construção

O ICMP envia e recebe uma grande variedade de mensagens. A mensagem ICMP é indicada pelo número de protocolo 1 no cabeçalho IP. O ICMPv6, por outro lado, possui o número de protocolo 58. O formato da mensagem ICMP consiste em apenas alguns campos:

0 12 16 20o 24 28 31
Tipo código Checksum
Dados (opcional)

O campo tipo especifica a mensagem. O campo de código interpreta o tipo de mensagem com mais precisão. Os dados normalmente contêm parte da mensagem IP original. Algumas das combinações de tipo-código mais comuns são:

Tipo Digite o nome código importância
0 Resposta de eco 0 Resposta de eco
3 Destino não alcançável 0 Rede não pode ser alcançada
1 Host (estação alvo) não pode ser alcançado
2 Protocolo não pode ser alcançado
3 A porta não pode ser alcançada
Fragmentação necessária D on't F ragment mas conjunto
5 A rota não é possível (a direção está especificada incorretamente no campo de opção do cabeçalho IP)
13º Comunicação proibida administrativamente (o pacote é bloqueado pelo firewall do destinatário)
Alivie a fonte 0 Datagrama descartado porque a fila está cheia
Pedido de eco 0 Solicitação de eco (mais conhecido como " ping ")
11 Limite de tempo excedido 0 TTL (Time To Live) expirou
1 A desfragmentação expirou

No caso de muitas mensagens ICMP, um campo “Dados” adicional contém informações mais detalhadas sobre a atribuição da mensagem ICMP na primeira palavra de 32 bits. Freqüentemente, a partir da segunda palavra de dados, o cabeçalho IP do datagrama de disparo e os primeiros 32 bits do pacote também são transmitidos. O campo “dados” pode, entretanto, também ser mal utilizado para transmitir dados do usuário ( túnel ICMP ). O tratamento de erros necessário ou correção de erros e similares devem então ser implementados no nível do aplicativo.

Aspectos relevantes para a segurança

O Internet Control Message Protocol pode ser usado para um ataque de negação de serviço (DoS) ou de negação de serviço distribuído (DDoS) em um dispositivo. Um dispositivo também pode ser usado incorretamente por um invasor como parte de um ataque DDoS para atacar um terceiro dispositivo. Os métodos de ataque típicos são o ataque smurf , inundação ou ping da morte . Outra maneira de usar o protocolo ICMP é usá-lo para transmissão de dados não autorizados por meio da conexão de túnel ICMP .

Links da web

  • RFC 792 . - Protocolo de mensagens de controle da Internet . [Errata: RFC 792 ]. Setembro de 1989. (Atualizado por RFC 950  - Inglês).
  • RFC 1122 . - Requisitos para Hosts da Internet - Camadas de comunicação . [Errata: RFC 1122 ]. Outubro 1989. (Atualizado por RFC 1349  - também para outras extensões ICMP - Inglês).
  • IANA ICMP Parameters - lista completa de tipos e códigos ICMP

Evidência individual

  1. Parâmetros do protocolo ICMP (Internet Control Message Protocol). IANA, 15 de junho de 2018, acessado em 9 de dezembro de 2018 .
  2. ^ J. Postel:  RFC 792  - Internet Control Message Protocol . Setembro 1989. p. 18. ( DARPA Internet Program Protocol Specification. To p. 19 - English).
  3. F. Gont:  RFC 6918 . - Suspensão formal de alguns tipos de mensagens ICMPv4 . Abril de 2013. (Substitui RFC 1788 - Inglês).
  4. ^ R. Bonica, R. Thomas, J. Linkova, C. Lenart, M. Boucadair:  RFC 8335 . - PROBE: Um utilitário para interfaces de sondagem . Fevereiro de 2018. (Padrão proposto).