Internet Control Message Protocol

Internet Control Message Protocol (ICMP) para redes
Familia Familia de protocolos de Internet
Función Control y notificación de errores del Protocolo de Internet
Ubicación en la pila de protocolos
Red ICMP
IP
Enlace Ethernet, Token Ring,
FDDI, ...
Estándares
RFC 792 ( 1981)
[ editar datos en Wikidata]

El Protocolo de Mensajes de Control de Internet o ICMP (por sus siglas en inglés de Internet Control Message Protocol) es el sub protocolo de control y notificación de errores del Protocolo de Internet (IP). Como tal, se usa para enviar mensajes de error, indicando por ejemplo que un servicio determinado no está disponible o que un router o host no puede ser localizado. También puede ser utilizado para transmitir mensajes ICMP Query.

ICMP difiere del propósito de TCP y UDP ya que generalmente no se utiliza directamente por las aplicaciones de usuario en la red. La única excepción es la herramienta ping y traceroute, que envían mensajes de petición Echo ICMP (y recibe mensajes de respuesta Echo) para determinar si un host está disponible, el tiempo que le toma a los paquetes en ir y regresar a ese host y cantidad de hosts por los que pasa.

Este protocolo es parte de la suite de protocolo de Internet, de esta manera se define en RFC 792. Los mensajes de este protocolo se utilizan con fines de diagnóstico o control y se generan en respuesta a los errores en operaciones IP (como se especifica en el RFC 1122). Estos errores del protocolo ICMP se dirigen a la dirección IP de origen del paquete originario.

Podríamos decir, que todos los dispositivos (como intermedio enrutador) reenvían un datagrama IP que disminuye el tiempo de vida en el encabezado IP por uno. Si el tiempo de vida (TTL) resultante es 0, el paquete se descartara y un ICMP de tiempo de vida superado en tránsito enviara un mensaje de dirección al origen del datagrama.

Aspectos técnicos

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

Datos (opcional)

ICMP es parte del conjunto de protocolos IP tal cual y como se definió en la RFC 792. Los mensajes ICMP son comúnmente generados en respuesta a errores en los datagramas de IP o para diagnóstico y ruteo. La versión de ICMP para IPv4 también es conocida como ICMPv4. IPv6 tiene su protocolo equivalente ICMPv6. Los mensajes ICMP son construidos en el nivel de capa de red. IP encapsula el mensaje ICMP apropiado con una nueva cabecera IP (para obtener los mensajes de respuesta desde el host original que envía), y transmite el datagrama resultante de manera habitual.

Los mensajes del protocolo ICMP se encuentra dentro de los paquetes IP estándar, los mensajes ICMP se procesan generalmente como un caso especial, para distinguirse de procesamientos de IP normal, en lugar de ser procesado como un sub-protocolo normal de IP. En la mayoría de los casos, es necesario analizar el contenido de los mensajes de ICMP( Protocolo de Mensajes de Control de Internet)y entregar el mensaje de error correspondiente a la aplicación que generó el paquete IP original, el que envió el paquete que se le solicitara el envió del mensaje ICMP.

Por 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 0, un mensaje ICMP "Tiempo de Vida se ha excedido en transmitirse" es enviado a la fuente del datagrama. Cada mensaje ICMP es encapsulado directamente en un solo datagrama IP, y por tanto no garantiza la entrega del ICMP. Aunque los mensajes ICMP son contenidos dentro de datagramas estándar IP, los mensajes ICMP se procesan como un caso especial del procesamiento normal de IP, algo así como el procesamiento de un sub-protocolo de IP. En muchos casos es necesario inspeccionar el contenido del mensaje ICMP y entregar el mensaje apropiado de error a la aplicación que generó el paquete IP original, aquel que solicitó el envío del mensaje ICMP.

La utilidad del protocolo ICMP es controlar si un paquete no puede alcanzar su destino, si su vida ha expirado, etc. Es decir, se usa para manejar mensajes de error y de control necesarios para los sistemas de la red, informando con ellos a la fuente original para que evite o corrija el problema detectado.

Muchas de las utilidades de red comunes están basadas en los mensajes ICMP. El comando traceroute está implementado transmitiendo datagramas IP con campos especiales TTL IP en la cabecera, y buscando los mensajes de "Tiempo de Vida en tránsito" y "Destino inalcanzable" generados como respuesta. La herramienta ping está implementada utilizando los mensajes "Echo request" y "Echo reply" de ICMP.

Diferentes empresas de servicios de red utilizan y se basan en mensajes ICMP. Los comandos se implementan mediante la transmisión de datagramas con campos de cabecera y especialmente establecidas, y en busca de protocolos y de los mensajes de “destino inalcanzable” generados en respuesta. La utilidad de ping es relacionada y se implementa mediante la “petición de eco” en el protocolo y mensajes de “respuestas de eco”.

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 bokmål: ICMP
русский: ICMP
slovenščina: ICMP
српски / srpski: ICMP
українська: ICMP