IPv4

14. ICMP v.4

.

ICMP Accesibilidad al Host

ICMP : Internet Control Message Protocol - (Protocolo de mensajes de control de Internet).

IGMP es Internet Group Management Protocol (Protocolo de Gestión de Grupos de Internet) , no confundir con ICMP. IGMP lo veremos mas adelante. A modo de anticipo:

El IGMP es un protocolo que permite que varios dispositivos compartan una dirección IP para que todos puedan recibir los mismos datos. El IGMP es un protocolo en la capa de red que se utiliza para configurar la multidifusión en las redes que utilizan el protocolo de Internet versión 4 (IPv4). En concreto, IGMP permite que los dispositivos puedan unirse a un grupo de multidifusión.

Los mensajes de error ICMP se envían a través de la red en forma de datagramas, recordemos que un datagrama es la UDP (Unit Data Protocol - Unidad de Datos de Protocolo ) capa 3 (Red)  como cualquier otro dato.

Los campos de ICMP son:
Debido a la longitud del campo de 8 bits, en teoría son posibles 256 tipos de mensajes ICMP diferentes, de los que se asignan alrededor de 40 algunos obsoletos otros están bloqueados para el uso meramente experimental.
Gran parte de los números (42-252) solo solo se reservan.
La asignación de los números es responsabilidad de la IANA (Internet Assigned Numbers Authority -  Autoridad de Números Asignados en Internet), que también regula la clasificación de los espacios para las direcciones IP y para los puertos:
Veamos sobre el Datagrama ICMP los usos mas frecuentes y valores de los dos campos:
  • Datos
  • Código
y el significados de sus valores, ellos son:
Observaciones:
1) Vemos que existe ICMP, para IPv6.
2) Podemos identificar comandos que utilizan ICMP, como ser PING y Traceroute.

Comando PING.

El protocolo ICMP es utilizado en una herramienta de diagnóstico (aplicación) que se llama "PING".
Permite diagnosticar el estado, velocidad y calidad de una red determinad y utiliza:
  • Envío de paquetes ICMP de solicitud (ICMP Echo Request).
  • Respuesta (ICMP Echo Reply).
Muchas veces se utiliza para medir la latencia o tiempo que tardan en comunicarse dos puntos remotos, y por ello, se utiliza el término PING para referirse al retardo o latencia (en inglés, lag) de la conexión en los juegos en red, esto daría una idea de congestión.
Veamos unos ejemplos de ping a www.google.com:
The response for 'www.google.com' using IPv4 is:
PING www.google.com (142.250.191.68) 56(84) bytes of data.
64 bytes from nuq04s43-in-f4.1e100.net (142.250.191.68): icmp_seq=1 ttl=120 time=1.29 ms
64 bytes from nuq04s43-in-f4.1e100.net (142.250.191.68): icmp_seq=2 ttl=120 time=1.42 ms
64 bytes from nuq04s43-in-f4.1e100.net (142.250.191.68): icmp_seq=3 ttl=120 time=1.40 ms
64 bytes from nuq04s43-in-f4.1e100.net (142.250.191.68): icmp_seq=4 ttl=120 time=1.41 ms
64 bytes from nuq04s43-in-f4.1e100.net (142.250.191.68): icmp_seq=5 ttl=120 time=1.39 ms

--- www.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 1.296/1.387/1.427/0.046 ms
En este caso la utilidad ping hizo solo "4 pings" y podemos ver que al finalizar muestra un detalle que es el que permite obtener información o inferir estado de la red contra www.google.com. Podemos ver que el ping se hace a un Nombre ( www.google.com) así que es de esperar que se realice una resolución de nombres previo al ping.

Algo mas gráfico se puede ver en este dibujo, que se hace ping en una red local privada.

Observación:
  1. Para este ejemplo (antes de poder hacer el ping)  se realizaron dos acciones:
    1. DNS, se resuelve cual es la IP de www.google.com.
    2. Se determina la MAC del Gateway para poner en los paquetes de capa 3 que van Fuera de la Red, esto se hace con algunos o todos los métodos: ARP, DCHP, Subnetting.
  2. Los mensajes de error pueden contener errores. Si hay un error en un datagrama que transporta un mensaje ICMP, no se envía ningún mensaje de error para evitar el efecto "bola de nieve"  o cascada en el caso de un incidente en la red.