El protocolo ICMP

El Protocolo de Mensajes de Control y Error de Internet, ICMP, es de características similares a UDP, pero con un formato mucho más simple, y su utilidad no está en el transporte de datos de usuario, sino en controlar si un paquete no puede alcanzar su destino, si su vida ha expirado, si el encabezamiento lleva un valor no permitido, si es un paquete de eco o respuesta, 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. ICMP proporciona así una comunicación entre el software IP de una máquina y el mismo software en otra.

El protocolo ICMP solamente informa de incidencias en la entrega de paquetes o de errores en la red en general, pero no toma decisión alguna al respecto. Esto es tarea de las capas superiores.

Los mensajes ICMP se transmiten como datagramas IP normales, con el campo de cabecera "protocolo" con un valor 1, y comienzan con un campo de 8 bits que define el tipo de mensaje de que se trata. A continuación viene un campo código, de o bits, que a veces ofrece una descripción del error concreto que se ha producido y después un campo suma de control, de 16 bits, que incluye una suma de verificación de errores de transmisión. Tras estos campos viene el cuerpo del mensaje, determinado por el contenido del campo "tipo". Contienen además los 8 primeros bytes del datagrama que ocasionó el error.
Los principales tipos de mensaje ICMP son los siguientes:

Mensajes informativos

Entre estos mensajes hay algunos de suma importancia, como los mensajes de petición de ECO (tipo 8) y los de respuesta de Eco (tipo 0). Las peticiones y respuestas de eco se usan en redes para comprobar si existe una comunicación entre dos host a nivel de capa de red, por lo que nos pueden servir para identificar fallos en este nivel, ya que verifican si las capas física (cableado), de enlace de datos (tarjeta de red) y red (configuración IP) se encuentran en buen estado y configuración.

Mensajes de error

En el caso de obtener un mensaje ICMP de destino inalcanzable, con campo "tipo" de valor 3, el error concreto que se ha producido vendrá dado por el valor del campo "código", pudiendo presentar los siguientes valores que se muestran en la parte derecha.

Este tipo de mensajes se generan cuando el tiempo de vida del datagrama a llegado a cero mientras se encontraba en tránsito hacia el host destino (código=0), o porque, habiendo llegado al destino, el tiempo de reensamblado de los diferentes fragmentos expira antes de que lleguen todos los necesarios (código=1).

Los mensajes ICMP de tipo= 12 (problemas de parámetros) se originan por ejemplo cuando existe información inconsistente en alguno de los campos del datagrama, que hace que sea imposible procesar el mismo correctamente, cuando se envían datagramas de tamaño incorrecto o cuando falta algún campo obligatorio.

Por su parte, los mensajes de tipo=5 (mensajes de redirección) se suelen enviar cuando, existiendo dos o más routers diferentes en la misma red, el paquete se envía al router equivocado. En este caso, el router receptor devuelve el datagrama al host origen junto con un mensaje ICMP de redirección, lo que hará que éste actualice su tabla de enrutamiento y envíe el paquete al siguiente router.

Mensajes informativos

0 Echo Reply (respuesta de eco)
3 Destination Unreacheable (destino inaccesible)
4 Source Quench (disminución del tráfico desde el origen)
5 Redirect (redireccionar - cambio de ruta)
8 Echo (solicitud de eco)
11 Time Exceeded (tiempo excedido para un datagrama)
12 Parameter Problem (problema de parámetros
13 Timestamp (solicitud de marca de tiempo)
14 Timestamp Reply (respuesta de marca de tiempo)
15 Information Request (solicitud de información) - obsoleto-
16 Information Reply (respuesta de información) - obsoleto-
17 Addressmask (solicitud de máscara de dirección)
18 Addressmask Reply (respuesta de máscara de dirección

códigos de error

0 no se puede llegar a la red
1 no se puede llegar al host o aplicación de destino
2 el destino no dispone del protocolo solicitado
3 no se puede llegar al puerto destino o la aplicación destino no está libre
4 se necesita aplicar fragmentación, pero el flag correspondiente indica lo contrario
5 la ruta de origen no es correcta
6 no se conoce la red destino
7 no se conoce el host destino
8 el host origen está aislado
9 la comunicación con la red destino está prohibida por razones administrativas
10 la comunicación con el host destino está prohibida por razones administrativas
11 no se puede llegar a la red destino debido al Tipo de servicio
12 no se puede llegar al host destino debido al Tipo de servicio

 

../Protocolos relacionados con IP/El protocolo ICMP