El Protocolo de mensajes de control de Internet (ICMP) es un protocolo de red para redes con protocolo de Internet (IP). ICMP transfiere información de control para el estado de la propia red en lugar de datos de la aplicación. Una red IP requiere ICMP para funcionar correctamente.
Los mensajes ICMP son un tipo específico de mensaje IP distinto de TCP y UDP.
El ejemplo más conocido de la mensajería ICMP en la práctica es la utilidad ping, que utiliza ICMP para sondear hosts remotos en busca de respuesta y medir el tiempo total de viaje de ida y vuelta de los mensajes de sondeo. ICMP también soporta otras utilidades como traceroute que identifica dispositivos intermedios de enrutamiento («hops») en el camino entre una fuente y un destino dados.
ICMP contra ICMPv6
La definición original de ICMP soportaba las redes de Protocolo de Internet versión 4 (IPv4). IPv6 incorpora una forma revisada del protocolo convencionalmente llamado ICMPv6 para distinguirlo de la ICMP original (ocasionalmente llamada ICMPv4).
Tipos de mensajes ICMP y formatos de mensaje
Los mensajes ICMP transportan datos esenciales para el funcionamiento y la administración de una red informática. El protocolo informa sobre condiciones tales como dispositivos que no responden, errores de transmisión y problemas de congestión de la red.
Al igual que otros protocolos de la familia IP, ICMP define un encabezado de mensaje. La cabecera contiene cuatro campos en la siguiente secuencia:
- Tipo (8 bits)
- Código (8 bits)
- Suma de comprobación (16 bits)
- Datos ICMP (32 bits)
ICMP define una lista de tipos de mensajes específicos y asigna un número único a cada uno. Como se muestra en la siguiente tabla, ICMPv4 e ICMPv6 proporcionan algunos tipos de mensajes comunes (pero a menudo con números diferentes) y también algunos mensajes únicos para cada uno. (Los tipos de mensaje comunes también pueden variar ligeramente en su comportamiento entre versiones IP).
v4 #v6 #TypeDescription0129Echo ReplyMessage enviado en respuesta a una solicitud de eco (ver abajo)31Destino inalcanzableEnviado en respuesta a un mensaje IP que no se puede entregar por cualquiera de las diversas razones.4-El dispositivo Source QuenchA puede enviar este mensaje de vuelta a un remitente que está generando tráfico entrante a una velocidad más rápida de la que se puede procesar. Los dispositivos Redirect MessageRouting pueden generar este método si detectan un cambio en la ruta solicitada para un mensaje IP que debe ser cambiado.8128Echo RequestMessage enviado por las utilidades ping para comprobar la capacidad de respuesta de un dispositivo objetivo113Time OverceededRouters generó este mensaje cuando los datos entrantes han alcanzado su límite de conteo de «salto». Utilizado por traceroute.12-Parameter ProblemGenerated cuando un dispositivo detecta datos dañados o perdidos en un mensaje IP entrante.13, 14-Timestamp (Request, Reply)-Diseñado para sincronizar relojes de tiempo entre dos dispositivos a través de IPv4, (sustituido por otros métodos más confiables.)-2Packet Too BigRouters genera este mensaje cuando recibe un mensaje que no puede ser reenviado a su destino debido a que excede un límite de longitud.Common ICMP Message Types
El protocolo rellena los campos de datos Código e ICMP en función del tipo de mensaje elegido para compartir información adicional. Por ejemplo, un mensaje Destino inalcanzable puede tener muchos valores de Código diferentes dependiendo de la naturaleza de la falla.