Protocolo de mensajes de control de Internet

ICMP (Protocolo de mensajes de control de Internet)
Familia: Familia de protocolos de Internet
Área de operación: Adición obligatoria

al Protocolo de Internet ,
mensajes de error, diagnósticos

ICMP en la pila de protocolos TCP / IP
Internet ICMP
IPv4
Acceso a la red Ethernet
Bus simbólico

Anillo simbólico
FDDI ...
Estándares: RFC 792 (1981)

El Protocolo de mensajes de control de Internet ( ICMP ) se utiliza en redes informáticas para intercambiar información y mensajes de error a través del Protocolo de Internet versión 4 ( IPv4 ). Existe un protocolo similar llamado ICMPv6 para IPv6 .

ICMP es parte de IPv4, pero se trata como un protocolo separado. Se espera que todos los enrutadores y computadoras "comprendan" ICMP. La mayoría de los paquetes ICMP contienen información de diagnóstico: se envían desde el enrutador al origen si el enrutador descarta paquetes, por ejemplo, porque no se puede alcanzar el destino o porque el TTL ha expirado. Se aplican los siguientes principios:

  • ICMP utiliza IP como base de comunicación al interpretarse a sí mismo como un protocolo de una capa superior, i. H. Los mensajes ICMP se encapsulan en paquetes IP.
  • ICMP detecta algunas condiciones de error pero no convierte a IP en un protocolo confiable.
  • ICMP analiza los errores en cada paquete IP, con la excepción de aquellos que llevan un mensaje ICMP.
  • Los mensajes ICMP no se envían en respuesta a paquetes a direcciones de destino que son direcciones de difusión o multidifusión.
  • Los mensajes ICMP solo responden a una dirección IP de origen única.

Los tipos de paquetes ICMP

El tipo de paquete ICMP es un número de 8 bits al comienzo del encabezado ICMP . Los números tienen los siguientes significados:

  • 0 = echo (respuesta)
  • 1-2 = no asignado
  • 3 = no se puede alcanzar el destino del datagrama
  • 4 = solicitud para acelerar la entrega del paquete
  • 5 = Recomendación de redireccionamiento a otra puerta de enlace en la misma red con una conexión más rápida al destino
  • 6 = dirección de host alternativa
  • 7 = no asignado
  • 8 = solicitud de eco
  • 9 = oferta de un enrutador
  • 10 = reclutamiento de enrutadores
  • 11 = tiempo de espera
  • 12 = Problema con los parámetros del datagrama
  • 13 = sello de tiempo (facilita la sincronización de tiempo)
  • 14 = marca de tiempo (respuesta)
  • 15 = "Solicitud de información" (para determinar el número de red, reemplazado por DHCP )
  • 16 = "Respuesta de información"
  • 17 = solicitar máscara de red
  • 18 = responder máscara de red
  • 19 = reservado (por seguridad)
  • 20-29 = reservado (para experimentos de robustez)
  • 30 = traceroute
  • 31 = Error al convertir el datagrama
  • 32 = Redirección de host móvil
  • 33 = Originalmente IPv6 Where-Are-You (reemplazado por ICMPv6 )
  • 34 = Originalmente IPv6 Estoy aquí (reemplazado por ICMPv6 )
  • 35 = Solicitud de registro móvil
  • 36 = Respuesta de registro móvil
  • 37 = Solicitud de nombre de dominio
  • 38 = Respuesta de nombre de dominio
  • 39 = SALTAR
  • 40 = foturis
  • 41 = utilizado por protocolos de movilidad experimentales como Seamoby
  • 42 = eco extendido *
  • 43 = eco extendido (respuesta) *
  • 44-252 = no asignado
  • 253 = experimento 1 según RFC 3692
  • 254 = Experimento 2 según RFC 3692

[†] abolido

Tiempo para vivir

Para evitar que los paquetes se envíen sin cesar a través de una red (por ejemplo, en un círculo entre varios enrutadores), un enrutador reduce el valor TTL en 1. Cuando el valor TTL alcanza el valor 0, el paquete se elimina y el remitente informa sobre este proceso a través de un mensaje ICMP. Traceroute hace uso de este mecanismo .

Para determinar la ruta (los saltos ) de un paquete a un host de destino específico , el programa de análisis de traceroute envía paquetes de datos con un tiempo de vida (TTL) creciente (comenzando con 1) y espera a que el "tiempo de vida excedido en tránsito "o mensajes de" Destino inalcanzable "como reacción. Dependiendo de la implementación o de una opción seleccionada de Traceroute, estos pueden ser ICMP (por ejemplo, en Windows) o paquetes UDP (por ejemplo, en Linux).

construcción

ICMP envía y recibe una amplia variedad de mensajes. El mensaje ICMP se indica mediante el protocolo número 1 en el encabezado IP. ICMPv6, por otro lado, tiene el número de protocolo 58. El formato de mensaje ICMP consta de solo unos pocos campos:

0 Cuarto Octavo 12 dieciséis Vigésimo 24 28 31
Escribe código Suma de comprobación
Datos (opcional)

El campo de tipo especifica el mensaje. El campo de código interpreta el tipo de mensaje con mayor precisión. Los datos normalmente contienen parte del mensaje IP original. Algunas de las combinaciones de códigos de tipo más comunes son:

Escribe Escribe un nombre código sentido
0 Respuesta de eco 0 Respuesta de eco
3 Destino no alcanzable 0 No se puede acceder a la red
1 No se puede comunicar con el anfitrión (estación de destino)
2 No se puede alcanzar el protocolo
3 No se puede llegar al puerto
Cuarto Fragmentación necesaria D on't F ragmento pero establecido
5 Ruta no posible (la dirección está especificada incorrectamente en el campo de opción de encabezado IP)
13 Comunicación prohibida administrativamente (el paquete está bloqueado por el firewall del destinatario)
Cuarto Aliviar la fuente 0 Datagrama descartado porque la cola está llena
Octavo Solicitud de eco 0 Solicitud de eco (más conocida como " ping ")
11 Límite de tiempo excedido 0 TTL (Time To Live) vencido
1 Se agotó el tiempo de desfragmentación

En el caso de muchos mensajes ICMP, un campo "Datos" adicional contiene información más detallada sobre la asignación del mensaje ICMP en la primera palabra de 32 bits. A menudo, a partir de la segunda palabra de datos, también se transmiten el encabezado IP del datagrama de inicio y los primeros 32 bits del paquete. Sin embargo, el campo "datos" también se puede utilizar incorrectamente para transmitir datos de usuario ( tunelización ICMP ). Sin embargo, el manejo de errores o la corrección de errores necesarios y similares deben implementarse en el nivel de la aplicación.

Aspectos relevantes para la seguridad

El Protocolo de mensajes de control de Internet se puede utilizar para un ataque de denegación de servicio (DoS) o de denegación de servicio distribuido (DDoS) en un dispositivo. Un atacante también puede hacer un uso indebido de un dispositivo como parte de un ataque DDoS para atacar un tercer dispositivo. Los métodos de ataque típicos son el ataque de los pitufos , las inundaciones o el ping de la muerte . Otra posibilidad de utilizar el protocolo ICMP es utilizarlo para la transmisión de datos no autorizada a través de la conexión del túnel ICMP .

enlaces web

  • RFC 792 . - Protocolo de mensajes de control de Internet . [Fe de erratas: RFC 792 ]. Septiembre de 1989. (Actualizado por RFC 950  - Inglés).
  • RFC 1122 . - Requisitos para servidores de Internet - Capas de comunicación . [Fe de erratas: RFC 1122 ]. Octubre de 1989. (Actualizado por RFC 1349  - también para más extensiones ICMP - Inglés).
  • Parámetros ICMP de IANA : lista completa de tipos y códigos de ICMP

Evidencia individual

  1. Parámetros del Protocolo de mensajes de control de Internet (ICMP). IANA, 15 de junio de 2018, consultado el 9 de diciembre de 2018 .
  2. ^ J. Postel:  RFC 792  - Protocolo de mensajes de control de Internet . Septiembre de 1989. p. 18. ( Especificación del protocolo del programa de Internet de DARPA. Hasta la p. 19 - Inglés).
  3. F. Gont:  RFC 6918 . - Desactivación formal de algunos tipos de mensajes ICMPv4 . Abril de 2013. (Reemplaza RFC 1788 - Inglés).
  4. ^ R. Bonica, R. Thomas, J. Linkova, C. Lenart, M. Boucadair:  RFC 8335 . - PROBE: una utilidad para palpar interfaces . Febrero de 2018. (Norma propuesta).