ICMP

Internet Control Message Protocol (ICMP)) una red de protocolo que es responsable de reportar errores a través de la generación y envío de mensajes a la dirección IP de origen cuando hay problemas de red que son encontrados por el sistema.[1] Los mensajes que genera la ICMP indican que no se puede acceder a un determinado gateway, router, servicio o incluso host que deba conectarse a Internet. Básicamente, el destinatario no puede recibir paquetes durante la transmisión. Cualquier dispositivo de red IP puede enviar, generar, recibir y procesar mensajes de error ICMP.

En otras palabras, usted puede imaginar a ICMP como un equipo que produce piezas mecánicas para vehículos. La mejor manera de ensamblar un vehículo sería fabricar primero cada pieza individual antes de enviar cada una de ellas a la cadena de montaje, que las ensamblaría en un producto más complejo. Sin embargo, como todos sabemos, habrá momentos en los que el equipo de producción no podrá enviar algunas de las piezas en un plazo de tiempo programado. Si alguna vez van a faltar piezas, entonces la línea de montaje tendrá que notificar al equipo de producción, por lo tanto, la ICMP funciona de la misma manera. Esencialmente, la ICMP juega el papel de mensajero que transmite datos e información del destinatario al remitente.

Funcionalidad

Este protocolo es en realidad bastante complejo. Tiene muchas otras funciones además de reportar errores en las transmisiones de paquetes y hosts que no pueden ser alcanzados. También transmite mensajes de eco, así como de respuesta de eco. Esto se utiliza a través de un conocido comando PING que permite a la mayoría de los usuarios retransmitir un eco a un host receptor. Esto envía una respuesta de eco cada vez que se recibe un eco.

Como tal, los mensajes ICMP proporcionan una forma para que la red y el sistema notifiquen la dirección IP de origen, que es el extremo de retransmisión, si el host remoto, que es el extremo de recepción, no está recibiendo ningún paquete que se haya transmitido.[2]

Se utiliza un enrutador para transmitir el popular mensaje "Destino inalcanzable" al host de origen.[3] Esto entonces lo enviaría al dispositivo o programa que primero transmitió los paquetes de datos. Estos mensajes de error le harían saber al programa que había un problema con la conectividad de la red. Una vez que el programa fuente haya recibido la información de que algunos de esos paquetes de datos no llegaron al destinatario, entonces retransmitiría esta información al destinatario.

Como función principal, la ICMP no es necesariamente usada regularmente por individuos en aplicaciones de usuario final, sino que es utilizada por numerosos administradores de red con el fin de solucionar cualquier error presente en las conexiones de Internet a través de un diagnóstico de utilidad como:[4]

  1. Ping
  2. Traceroute

El protocolo principal que utiliza la ICMP es utilizado por los dispositivos intermediarios, routers e incluso hosts para comunicarse en caso de que surja un error y realizar actualizaciones en los routers, dispositivos intermediarios y hosts necesarios. En este caso, el IPv4 más utilizado universalmente (Protocolo de Internet versión 4) y el IPv6 mucho más nuevo utilizan versiones similares del protocolo ICMP, que se denominan ICMPv4 e ICMP6, respectivamente.[5]

En términos de cómo la ICMP se relaciona con las diferentes cabeceras de paquetes, la cabecera ICMP aparece después de la cabecera de paquete IPv4 o IPv6 mientras es reconocida por un número de protocolo. Este complejo protocolo contiene tres componentes principales diferentes:[6]

  • El componente principal que reconoce los mensajes ICMP.
  • El código menor que contiene datos e información sobre este tipo de campo.
  • La suma de comprobación que realmente ayuda a detectar el problema particular que se ha introducido durante la transmisión del mensaje.

Mensajes ICMP

El mensaje más popular y conocido de un datagrama ICMP es el mensaje "Destination Unreachable".[1:1] Hay varias razones por las que se genera este mensaje, que incluye problemas como no poder llegar a una red, un host, un puerto o incluso un protocolo defectuoso.

La mayoría de los usuarios tienen que ser conscientes y también tienen que tener en cuenta que aunque el mensaje "Destino inalcanzable" es el mensaje más común recibido, no es el único mensaje que la ICMP puede transmitir. Hay otros mensajes de error que incluyen:[2:1]

  • Redirigir Mensaje - Esto es lo que utiliza una pasarela para que el host de origen sepa que va a enviar tráfico a un enrutador diferente.
  • Tiempo excedido - Esto es lo que un enrutador le dirá al host de origen que un cierto paquete ha excedido un cierto periodo de tiempo llamado Time to Live (TTL). Cuando un host determinado comienza a recibir los paquetes de información "Tiempo excedido", esto es una señal de que existe un problema en el sistema en el que existe un bucle de retroalimentación en el flujo de información.
  • Source Quench - Estos son mensajes que se envían desde un enrutador hacia el host. Esto le permite saber que la capacidad de almacenamiento intermedio está ahora llena y detendrá brevemente el proceso de transmisión para que pueda ponerse al día con el resto de los datos.

Otros mensajes incluyen Problema de parámetros, Solicitud y respuesta de máscara de dirección, marca de tiempo.

Restricciones

A pesar de todas estas funciones que la ICMP tiene que ejecutar, tiene algunas restricciones funcionales. La ICMP no ayuda a que el host de origen o IP se vuelva más fiable y no recibe ni envía datos que puedan ser utilizados para la transmisión.[5:1] La ICMP simplemente existe como una forma de identificar problemas en paquetes perdidos y cualquier enrutamiento roto.

Una ICMP tampoco enviará mensajes que sean sobre mensajes ICMP.[2:2] Si esto ocurriera, se produciría un bucle de retroalimentación que resultaría perjudicial para el sistema, ya que crearía un mensaje ICMP de vuelta a la otra parte. Esto se reproduciría rápidamente hasta el punto de inundar la red, haciéndola ineficaz.


  1. https://searchnetworking.techtarget.com/definition/ICMP ↩︎ ↩︎

  2. https://www.pcwdld.com/what-is-icmp-and-port ↩︎ ↩︎ ↩︎

  3. https://www.comparitech.com/net-admin/what-is-icmp/ ↩︎

  4. https://www.techopedia.com/definition/5362/internet-control-message-protocol-icmp ↩︎

  5. http://www.enterprisenetworkingplanet.com/netsp/article.php/3584166/Networking-101-Understanding-and-Using-ICMP.htm ↩︎ ↩︎

  6. https://www.webopedia.com/TERM/I/ICMP.html ↩︎