Protocolo de control de mensajes de Internet

Protocolo de control de mensajes de Internet
FamiliaFamilia de protocolos de Internet
FunciónControl y notificación de errores del Protocolo de Internet
Ubicación en la pila de protocolos
RedICMP
IP
EnlaceEthernet, Token Ring,
FDDI, ...
Estándares
RFC 792 (1981)

El protocolo de control de mensajes de Internet (en inglés: Internet Control Message Protocol y conocido por sus siglas ICMP) es parte del conjunto de protocolos IP. Es utilizado para enviar mensajes de error e información operativa indicando, por ejemplo, que un host no puede ser localizado o que un servicio que se ha solicitado no está disponible. Estos mensajes del protocolo ICMP se envían a la dirección IP de origen del paquete.

Siendo un protocolo de la "Capa de Red" ICMP difiere de los protocolos de la "Capa de Transporte" (tales como TCP y UDP), en que no es en general usado para intercambiar información entre sistemas, ni tampoco por las aplicaciones de usuario (con excepción de algunas herramientas como ping y traceroute, que emplean mensajes ICMP con fines de diagnóstico).

Aspectos técnicos

Bit 0 7 Bit 8 15 Bit 16 23 Bit 24 31
Tipo Código Suma de verificación

Datos (opcional)

Este protocolo es parte del conjunto de protocolos RFC 1122), y se envían a la dirección IP de origen del paquete que dio lugar a la generación del mensaje ICMP.

La versión de ICMP para IPv4 también es conocida como ICMPv4. IPv6 tiene su protocolo equivalente ICMPv6.

El protocolo se emplea cuando un host no puede ser alcanzado, cuando el tiempo de vida de un paquete ha expirado, cuando un servicio solicitado no está disponible, etc. Es decir, se usa para manejar mensajes de error y control necesarios en los sistemas de red informando a la fuente original para que evite o corrija el problema detectado.

A modo de ejemplo, cada router que reenvía un datagrama IP tiene que disminuir el campo de tiempo de vida (TTL) de la cabecera IP en una unidad; si el TTL llega a cero, un mensaje ICMP tipo 11 ("Tiempo excedido") es enviado al originador del datagrama.

Los mensajes ICMP son construidos en el nivel de la "Capa de Red". Así, IP encapsula el mensaje ICMP con una nueva cabecera (para obtener los mensajes de respuesta desde el host original), y transmite el datagrama resultante de la manera habitual. Cada mensaje ICMP es encapsulado en un solo datagrama IP, por lo que la entrega del mismo no está garantizada.

Si bien ICMP emplea el soporte básico de IP como si fuese un protocolo de más alto nivel es, en realidad, una parte integral de IP. A pesar de estar encapsulados en paquetes comunes, los mensajes ICMP habitualmente se procesan de forma especial recibiendo un tratamiento diferente al del procesamiento IP normal. En muchos casos es necesario analizar el contenido del mensaje ICMP para determinar el tipo de error apropiado que debe enviarse a la aplicación responsable de transmitir el paquete IP que solicitara el envío del mensaje ICMP.

Muchas de las utilidades de red comunes están basadas en los mensajes ICMP. El comando traceroute puede implementarse transmitiendo datagramas con valores especiales de TTL en la cabecera, y analizando luego los mensajes de "Destino inalcanzable" y "Tiempo excedido" (tipos 3 y 11) generados como respuesta. La herramienta ping está implementada utilizando los mensajes "Echo request" y "Echo reply" de ICMP.

Estructura de un segmento ICMP

El ICMP inicia después del IPv4 cabecera y se identifica con el protocolo número “1”. Todos los paquetes ICMP tendrán una cabecera de 8 bytes y la sección de datos de tamaño variable. Los primeros 4 bytes de la cabecera serán consistentes. El primer byte es reservado para el tipo de ICMP. El segundo octeto es para el código de ICMP. El tercer y cuarto byte es una suma de comprobación de todo el mensaje ICMP. El contenido de los restantes 4 bytes de la cabecera pueden variar dependiendo de la función del tipo y el código ICMP.

Los mensajes de error de este protocolo contienen una sección de datos que incluye todos los IP de cabecera más los 8 primeros bytes de los datos del paquete IP que ha causado el mensaje de error. El paquete ICMP es encapsulado en un nuevo paquete IP.

Bits 0-7 8-15 16-23 24-31

0 Tipo Código Checksum
32 Resto del encabezado  
  • Tipo - Tipo de ICMP como se especifica a continuación.
  • Código - Subtipo al tipo dado.
  • Checksum - Datos comprobación de errores. Calculado a partir de la cabecera ICMP + datos, con un valor de 0 para este campo. El algoritmo de suma de comprobación se especifica en RFC 1071.
  • Resto del Header - Cuatro campo byte. Puede variar en función del tipo y código ICMP.
Other Languages
български: ICMP
čeština: ICMP
Ελληνικά: ICMP
Esperanto: ICMP
euskara: ICMP
suomi: ICMP
galego: ICMP
hrvatski: ICMP
magyar: ICMP
lietuvių: ICMP
latviešu: ICMP
македонски: Internet Control Message Protocol
norsk: ICMP
русский: ICMP
slovenščina: ICMP
српски / srpski: ICMP
українська: ICMP