Está en la página 1de 49

ICMP ( Internet Control Messages Protocol ).

Protocolo de mensajes de control de inter red.


Juan Carlos Llanos V. Alvin Seplveda A.
UTFSM Valparaso, 1999

Introduccin
IP entrega un servicio de comunicacin de mejor esfuerzo. Esto genera :

Duplicacin de datagramas. Prdida de datagramas. Retardo o desorden en la entrega de datagramas.

Introduccin
Si un un router no puede enrutar un datagrama (por ej: debido a congestin en la red, tiempo de vida agotado,etc.) IP no informa a la fuente. Surge la necesidad de informar a la fuente del datagrama que tome alguna decisin .

Introduccin

Para el control de errores a nivel IP existe ICMP


( Internet Control Messages Protocol ).

Qu es ICMP ?
Es un mecanismo de reporte de errores e informacin de la red. Acta a travs de un datagrama de reporte de error. Este datagrama de reporte es generado por un router que ha detectado un error en un datagrama recibido. El datagrama de reporte es enviado desde el router hacia el host fuente del datagrama original.

Segn tipo de error, host determina accin a seguir. Por ej: Volver a enviar Host fuente enva un datagrama. datagrama a host destino. (datagrama original ) .

Host fuente
router router

Router detecta un error en el datagrama recibido y enva datagrama de reporte de error hacia el host fuente. Segn el error, el router decide que hacer con el datagrama recibido. Por ej: destruirlo.

Host destino

router
ERROR EN DATAGRAMA RECIBIDO. !!

router

Qu mensajes reporta ICMP. ?


ICMP define cinco mensajes de error y cuatro de informacin.

Alivio de fuente (Source Quench). Destino inalcanzable (Destination Unreachable). Tiempo excedido (Time Exceeded). Redirigir (Redirect). Fragmentacin requerida (Fragmentation Requiered).

Qu mensajes reporta ICMP. ?


ICMP define cinco mensajes de error y cuatro de informacin.

Solicitud de eco (Echo request ). Rplica (Reply). Solicitud de mscara de direccin (Adress Mask Request). Regreso de constestacin de mscara de direccin (Adress Mask Reply).

ICMP usa IP para transportar los mensajes de error. Existe una interdependencia entre IP e ICMP.

Transporte de mensajes ICMP.

Cabecera ICMP

Area de datos ICMP

Cabecera IP

Area de datos IP

Cabecera del Cuadro

Area de datos del Cuadro

Significado del mensaje. Por ejemplo, Ms detalles respecto del problema. Por ejemplo: Formato del mensaje ICMP. 0 = Respuesta de eco. 0= Red inalcanzable. Cifra de comprobacin 3 = Destino inalcanzable. 1 = Host inalcanzable. Con esto, el host fuente identifica (Slo para el mensaje ICMP). 4 = Alivio de fuente. 4 = Fragmentacin requerida, qu protocolos y que aplicaciones 5 = Redirigir, etc. etc. fueron las que generaron el datagrama. Cabecera IP del datagrama recibido por 0 16 superiores, los 64 primeros 31 8 el router(En capas bits seteados con informacin crucial). (dir. Ip fuente, destino, tipo deson servicio, etc.). Bits de relleno, para El contenido de este campo vara segn el tipo completar tamao del de mensaje. datagrama.

Tipo

Cdigo

Checksum

Cabecera interred + primeros 64 bits del datagrama

...

Alivio de fuente (Source Quench). Cuando un router satura su buffer, comienza a descartar los paquetes que llegan. Usualmente, el router enva un mensaje ICMP Quench Source a las mquinas cuyos datagramas han sido descartados.

Si una mquina recibe un mensaje ICMP Source Quench, reduce su tasa de transmisin.

Host reduce su tasa de transmisin. Host fuente enva un datagrama a host destino. (datagrama original ) .

Host fuente
router router

Router no tiene ms espacio en el buffer y enva datagrama de alivio de fuente hacia el host que cre el datagrama. El router descarta los datagramas recibidos hasta que tenga espacio en el buffer.

Host destino

router
Buffer lleno. !!

router

Formato de Alivio de fuente (Source Quench).

Destino inalcanzable (Destination Unreachable).


Cuando un router determina que no se puede entregar un datagrama, enva un mensaje ICMP Destination Unreachable a la mquina que lo envi. Se entregan detalles adicionales. (Por ej: si una red se desconecta en forma temporal, si el destino est desconectado, si el datagrama debe ser necesariamente fragmentado y su seteo no lo permite).

Host determina si reenva o no el datagrama o espera un tiempo. Host fuente enva un datagrama a host destino. (datagrama original ) . Host fuente router router

Router detecta que no tiene acceso al destino del datagrama recibido y enva datagrama de direccin inalcanzable hacia el host fuente.

Host destino

router
No hay acceso al destino del datagrama. !!

router

Formato de

0 = Red inalcanzable. 1 = Host inalcanzable. Destino inalcanzable 2 = Protocolo inalcanzable. 3 = Puerto inalcanzable. 4 = Fragmentacin requerida. 5 = Source route failed. 6 = Red de destino desconocida. 7 = Host destino desconocido. 8 = Source host isolated. 9 = Comunicacin prohibida con red destino. 10 = Comunicacin prohibida con host destino. 11 = Red inalcanzable por tipo de servicio. 12 = Host inalcanzable por tipo de servicio.

Solicitud de eco (Echo request ). Rplica (Reply). Puede enviarse un mensaje de solicitud de eco al software ICMP desde cualquier computador. En respuesta a este mensaje, ICMP debe enviar un mensaje de regreso de contestacin. La respuesta lleva los mismos datos que la solicitud.

Solicitud de eco (Echo request ). Rplica (Reply). Utilizando este mensaje ICMP , se ha desarrollado una aplicacin llamada Ping.
Ping permite saber si una mquina o red se encuentra alcanzable. Existen diferentes versiones de Ping. Algunas versiones permiten definir los datos a enviar en el datagrama y cada cuanto tiempo realizar la peticin de eco.

fuentehost hace un si Segn tipo deHost respuesta, sabe Ping a host host destino es alcanzable o destino no. (ping 200.1.17.132 ) enviando un datagrama. Host fuente
router router

Host destino enva mensaje de respuesta, con los mismos datos de vuelta (endestino el area de datos del datagrama). Host 200.1.17.132

router

router

Formato de Solicitud de eco (Echo request ). Formato de Regreso de constestacin (Reply).


Identificador y N de Secuencia : 8 = Solicitud de eco. Identifican al mensaje 0 = Regreso de constetacin. (sirve cuando se enva una rfaga de peticiones de eco ).

Solicitud de los routers de cambio de ruta Mensaje ICMP redirect Regla:


Se supone que los routers conocen las rutas correctas; las mquinas comienzan con mnima informacin de ruteo y aprenden nuevas rutas de los routers.

La mquina parte conociendo slo la direccin de un router de la red local. El router inicial devuelve un mensaje de redirigir

cuando el host enva un datagrama para el cual existe una mejor ruta.

Solicitud de los routers de cambio de ruta Mensaje ICMP redirect


Los routers slo envan solicitudes de redirigir a las mquinas
Este paquete va para otro lado Cambio de ruta

destino

fuente

Solicitud de los routers de cambio de ruta Mensaje ICMP redirect Problema:


Los mensajes de redirigir estn limitados a la interaccin entre un router y un host conectados ambos en la misma red.
R2 R3

R1

R5

fuente

destino
R4

Solicitud de los routers de cambio de ruta Mensaje ICMP redirect Formato de cuadro
Direccin del router que mensaje usa el host para enviar redirigir (5) paquetes al destino 0 1 2 3 Redirigir datagramas para la red Redirigir datagramas para el host Redirigir datagramas para el tipo de Redirigir servicio datagramas y red para el tipo de servicio y el host

16

31

Cdigo Checksum Direccin interred del router Cabecera interred + primeros 64 bits del datagrama

Tipo

...

Deteccin de rutas muy largas o ciclos Mensaje ICMP Time Exceeded

tiempo de vida excedido

destino fuente
Tiempo de vida = 0

Deteccin de rutas muy largas o circulares Mensaje ICMP Time Exceeded Formato de cuadro
Tiempo excedido (11) 0 1 Tiempo de vida excedido Tiempo de reensamble de fragmentos excedido

16

31

Cdigo Checksum Sin uso (valor 0) Cabecera interred + primeros 64 bits del datagrama

Tipo

...

Reporte de otros problemas Mensaje ICMP Parameter Problem


!?

Cabecera IP incorrecta

destino

fuente

Reporte de otros problemas Mensaje ICMP Parameter Problem Formato de cuadro


Indica el octeto del datagrama Problema no 0 que produjo el errorUsar el campo puntero definido (11) 1 Falta un opcin requerida

16

31

Tipo Cdigo Checksum Puntero Sin uso (valor 0) Cabecera interred + primeros 64 bits del datagrama

...

Sincronizacin de reloj y estimacin de tiempo de trnsito Mensaje ICMP timestamp request / reply
mi tiempo de salida Procesando del paquete es T3 mi tiempo de ingreso paquete del paquete es T2

tiempo T4 mimi tiempo eses T1

destino

fuente

Sincronizacin de reloj y estimacin de tiempo de trnsito Mensaje ICMP timestamp request / reply Formato marca de cuadro tiempo justo luego de de
recibir el paquete tiempo justo antes de justo antes de Lo usa la fuente para tiempo (destino) asociar respuestas con solicitud devolver el paquete enviar el paquete 13 preguntas (destino) 14 (fuente) respuesta

16 8 31 Tipo Cdigo (0) Checksum Identificador Nmero de secuencia Timestamp de origen Timestamp de recepcin Timestamp de transmisin

Sincronizacin de reloj y estimacin de tiempo de trnsito Mensaje ICMP timestamp request / reply
Aspectos gererales
Los valores de los campos de tiempo estn expresados de acuerdo al referente GMT y en [ms]. Para obtener una estimacin apropiada del retardo en la red, se deben efectuar varias mediciones. El retardo entre dos mquinas conectadas a una gran interred puede variar drsticamente, incluso en perodos cortos de tiempo. Debido a que IP hace su mejor esfuerzo, nada garantiza que una consistencia entre las diversas mediciones de los tiempos de retardo. Se usa anisis estadstico para precisar las estimaciones.

Solicitud y Respuesta de informacin Mensaje ICMP information request / reply


Los mensajes de solicitud (15) y respuesta (16) de informacin estn obsoletos. Estos mensajes estaban pensados para que el host pudiera conocer su direccion IP al momento de arrancar Actualmente, esto se hace con los protocolos RARP y BOOTP.

Obtencin de una mscara de subred Mensaje ICMP address mask request / reply
La mscara de mi red es ICMP address mask reply 255.255.255.128

200.1.17.130

Obtencin de una mscara de subred Mensaje ICMP address mask request / reply Formato de cuadro
Mscara 17 18 solicitud respuesta

16 8 31 Tipo Cdigo (0) Checksum Identificador Nmero de secuencia Direccin de mscara (slo en respuesta)

Aplicacin:

/usr/sbin/icmpinfo

Procesos corridos en consola linux de lucas


rce-20:~ # ping loa.alumnos.utfsm.cl PING loa.alumnos.utfsm.cl (146.83.198.9): 56 data bytes 64 bytes from 146.83.198.9: icmp_seq=0 ttl=252 time=3.3 ms 64 bytes from 146.83.198.9: icmp_seq=1 ttl=253 time=2.0 ms 64 bytes from 146.83.198.9: icmp_seq=2 ttl=253 time=2.0 ms --- loa.alumnos.utfsm.cl ping statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 2.0/2.4/3.3 ms rce-20:~ #

Aplicacin:

/usr/sbin/icmpinfo

Salida de icmpinfo en pantalla


rce-20:~ # icmpinfo -vv icmpinfo: Icmp monitoring in progress... Sep 23 17:26:11 ICMP_Echo_Reply < 146.83.198.9 [loa.alumnos.utfsm.cl] sz=64(+20) Sep 23 17:26:12 ICMP_Echo_Reply < 146.83.198.9 [loa.alumnos.utfsm.cl] sz=64(+20) Sep 23 17:26:13 ICMP_Echo_Reply < 146.83.198.9 [loa.alumnos.utfsm.cl] sz=64(+20)

Aplicacin:

/usr/sbin/icmpinfo

Procesos corridos en consola linux de lucas

rce-20:~ # traceroute loa.alumnos.utfsm.cl traceroute to loa.alumnos.utfsm.cl (146.83.198.9), 30 hops max, 40 byte packets 1 alm-gw.elo.utfsm.cl (200.1.17.129) 2.233 ms 1.698 ms 0.635 ms 2 elo-gw.utfsm.cl (200.1.17.1) 1.278 ms 1.603 ms 1.991 ms 3 loa.alumnos.utfsm.cl (146.83.198.9) 3.365 ms * 3.834 ms rce-20:~ #

Aplicacin:

/usr/sbin/icmpinfo

Salida de icmpinfo en pantalla


icmpinfo: Icmp monitoring in progress... Sep 23 18:14:33 ICMP_Time_Exceeded < 200.1.17.129 [alm-gw.elo.utfsm.cl] > 146.83.198.9[loa.alumnos.utfsm.cl] sp=55169 dp=33435 seq=0x0014d86f sz=68(+20) Sep 23 18:14:33 ICMP_Time_Exceeded < 200.1.17.129 [alm-gw.elo.utfsm.cl] > 146.83.198.9[loa.alumnos.utfsm.cl] sp=55169 dp=33436 seq=0x0014ff70 sz=68(+20) Sep 23 18:14:34 ICMP_Time_Exceeded < 200.1.17.129 [alm-gw.elo.utfsm.cl] > 146.83.198.9[loa.alumnos.utfsm.cl] sp=55169 dp=33437 seq=0x00143368 sz=68(+20) Sep 23 18:14:34 ICMP_Time_Exceeded < 200.1.17.1 [elo-gw.utfsm.cl] > 146.83.198.9 [loa.alumnos.utfsm.cl] sp=55169 dp=33438 seq=0x00145261 sz=36(+20)

Aplicacin:

/usr/sbin/icmpinfo

Salida de icmpinfo en pantalla


Sep 23 18:14:34 ICMP_Time_Exceeded < 200.1.17.1 [elo-gw.utfsm.cl] > 146.83.198.9 [loa.alumnos.utfsm.cl] sp=55169 dp=33439 seq=0x0014e2ff sz=36(+20) Sep 23 18:14:34 ICMP_Time_Exceeded < 200.1.17.1 [elo-gw.utfsm.cl] > 146.83.198.9 [loa.alumnos.utfsm.cl] sp=55169 dp=33440 seq=0x001462f7 sz=36(+20) Sep 23 18:14:34 ICMP_Dest_Unreachable[Port] < 146.83.198.9 [loa.alumnos.utfsm.cl] > 146.83.198.9 [loa.alumnos.utfsm.cl] sp=55169 dp=33441 seq=0x001442eb sz=48(+20) Sep 23 18:14:39 ICMP_Dest_Unreachable[Port] < 146.83.198.9 [loa.alumnos.utfsm.cl] > 146.83.198.9 [loa.alumnos.utfsm.cl] sp=55169 dp=33443 seq=0x0014bc64 sz=48(+20)

Aplicacin:

/usr/sbin/icmpinfo

Proceso corridos en consola linux de lucas


rce-20:~ # ftp ftp> o (to) ftp.aol.com ftp: connect to address 205.188.176.163: No route to host ftp> quit rce-20:~ #

Salida de icmpinfo en pantalla


Sep 23 17:16:42 ICMP_Dest_Unreachable[--Sub-Type-OUT-OFRANGE--] < 146.83.198.1[utfsm-gw.utfsm.cl] > 205.188.176.166 [ftp15d.newaol.com] sp=2052 dp=21 seq=0x87b60824 sz=36(+20)

Aplicacin:

/usr/sbin/icmpinfo

Proceso corridos en consola linux de lucas


rce-20:~ # netscape

Salida de icmpinfo en pantalla


rce-20:~ # icmpinfo -vvv icmpinfo: Icmp monitoring in progress... Sep 23 18:24:13 ICMP_Dest_Unreachable[--Sub-Type-OUT-OF-RANGE--] < 146.83.198.1 [utfsm-gw.utfsm.cl] > 194.112.123.200 [Turing.suse.de] sp=8964 dp=80 seq=0x8708b9a2 sz=36(+20) 0000 : 4500 0038 6044 0000 FD01 2B8A 9253 C601 E..8`D....+..S.. 0010 : C801 11A0 030D B7D4 0000 0000 4500 003C ............E..< 0020 : 4AEA 4000 J.@.

Cdigo del paquete icmpinfo-1.10 linux_ip_icmp.h


Define una estructura con los campos de la trama de icmp
struct icmp { u_char icmp_type; /* type of message, see below */ u_char icmp_code; /* type sub code */ u_short icmp_cksum; /* ones complement cksum of struct */ union { u_char ih_pptr; /* ICMP_PARAMPROB */ struct in_addr ih_gwaddr; /* ICMP_REDIRECT */ struct ih_idseq { n_short icd_id; n_short icd_seq; } ih_idseq; int ih_void; } icmp_hun;

Cdigo del paquete icmpinfo-1.10 linux_ip_icmp.h


Adems define una estructura para el header del datagrama IP.

Incluye los #define para asignar un nmero decimal a los distintos tipos de mensajes ICMP

defs.h
Lleva los #includes, #defines y variables globales usadas entre por la funciones del programa

Cdigo del paquete icmpinfo-1.10

recvping.c
Recibe e imprime cada paquete ICMP que llega al socket al cual el programa esta escuchando.

print.c
Muestra los paquetes ICMP entrantes. Analiza la cabecera IP, para conocer el largo del datagrama Verifica que lo que sigue la cabecera IP contenga al menos un cabecera ICMP Se encarga de convertir los caracteres no imprimibles de la representacin ASCII del paquete para desplegarlos en pantalla

Cdigo del paquete icmpinfo-1.10 icmpinfo.c


Este programa establece el formato de la interfaz con el usuario. Muestra y selecciona las opciones para ejecutar el proceso y genera la pgina de ayuda.

err.c
Reporta error si es que el usuario tuvo una falla en la sintaxis

Conclusiones.
ICMP es un mecanismo de reporte de errores a nivel de capa IP. Los mensajes ICMP se transportan como simples datagramas.
Adems de reportar errores, tamben entrega informacin de la red. Corresponde a los routers enviar el datagrama ICMP al host fuente del datagrama original donde fu detectado el error.

Conclusiones.
Utlizando e interpretando los mensajes ICMP, se han desarrollado aplicaciones que entregan informacin del estado de la red. Ej: ping, icmpinfo, traceroute (utiliza los mensajes de tiempo exedido para encontrar la secuencia de enrutadores a distancia 1, 2,3, etc. , de la trayectoria de un destino), etc. Por ltimo, se puede decir que los host pueden utilizar los mensajes ICMP de fragmentacin requerida para determinar la MTU (tamao mximo del paquete) de trayectoria de un destino.

Bibliografa.
Internetworking with TCP/IP
Comer, Douglas. Volume I: Principles, Protocols and Architecture. 3era Edicin.

Redes de Computadoras, Internet e Interredes.


Comer, Douglas. Primera edicin. Ed. Prentice Hall.

Redes de Computadores.
Tannenbaum, Andrew.