ICMP (Internet Control Messages Protocol).Introducción.
Son un tipo de mensajes que envían los Routers, encapsulados en
datagramas IP, al originador de algún mensaje conflictivo (porque haya
problemas para encaminar un datagrama, congestión en la red, etc.).
Básicamente tiene dos funciones: Informar sobre errores. Diagnosticar y obtener
información El esquema
general que se sigue a la hora de empaquetar es el siguiente: Esquema general para
encapsular mensajes ICMP. Errores:
El formato común
para todos los mensajes de error es el siguiente: Formato general para los
mensajes de error. Destination
Unreachable (tipo=3): Se envía
cuando se descarta un mensaje. El campo de código (code) refina la causa del
descarte: '0' (Network
Unreachable): la red dentro de la
cual está el destino, se encuentra inalcanzable. '1' (Host
Unreachable): el host destino está
inalcanzable. '2' (Protocol
Unreachable): el host destino está
bien, pero el campo de protocolo del datagrama no coincide con ninguno de los
protocolos del host.. En la parte opcional,
se incluye la cabecera IP y los primeros 64 bits (que probablemente tengan la
cabecera del nivel de transporte...) del datagrama que se descartó. Source Quench
(tipo=4): Utiliza el mismo formato
aunque el código es siempre 0. Avisa de descarte por
congestión. Time exceeded for
datagram (tipo=11): Avisa de un
descarte por exceso de tiempo en el sistema. Usa el mismo formato,
con dos códigos posibles: '0':
descarte por TTL=0. '1':
timeout reensamblando (no han llegado todos los trozos al destino en el tiempo
esperado). Diagnóstico:
Los mensajes de
diagnóstico que estudiaremos son los de echo request y reply, que
responden ambos al mismo formato (los tipos son 8 y 0 respectivamente): Formato de los mensajes
de Echo Request y Reply. Utilidades:
Ping:
Una vez que el destino devuelve el mismo mensaje que se le envió, el origen
comprueba el campo de datos recibido con el transmitido y si coinciden es que el
destino es perfectamente alcanzable (la opción '-s' dice el tiempo que tarda en
ir y volver el datagrama, si bien no escapa de desglosarlo y decir qué parte
corresponde a la ida o a la vuelta). Trace Route:
Nos dice la ruta seguida por los datagramas en una conexión (se observa por
otra parte que no es una información demasiado fiable, pues un datagrama por
definición no tiene por qué seguir un camino determinado). Para hacer esto, envía echos
con TTL a 1. Esto ocasiona que el primer router envíe un ICMP de descarte
por TTL=0, pero además incluirá su dirección IP. Luego se envía otro con
TTL=1,2.... hasta que se reciba un reply señal de que el mensaje llegó
al destino. Así, voy recibiendo
progresivamente los mensajes de error de todos los Routers atravesados a la vez
que sus direcciones IP. NOTA: Aunque
aparentemente estos mensajes de ICMP ofrecen la fiabilidad que antes decíamos
que le faltaba a IP, no es así. Si un mensaje ICMP se pierde, no se vuelve a
enviar otro mensaje de error. Luego pese a que ofrece más robustez, no podemos
asegurar la fiabilidad. |