ICMP%20(%20Internet%20Control%20Messages%20Protocol%20).%20%20Protocolo%20de%20mensajes%20de%20control%20de%20inter%20red. - PowerPoint PPT Presentation

About This Presentation
Title:

ICMP%20(%20Internet%20Control%20Messages%20Protocol%20).%20%20Protocolo%20de%20mensajes%20de%20control%20de%20inter%20red.

Description:

Tiempo excedido (Time Exceeded). Redirigir (Redirect) ... Mensaje ICMP Time Exceeded. Formato de cuadro. Reporte de otros problemas ... – PowerPoint PPT presentation

Number of Views:497
Avg rating:3.0/5.0
Slides: 50
Provided by: JuanCarlo81
Category:

less

Transcript and Presenter's Notes

Title: ICMP%20(%20Internet%20Control%20Messages%20Protocol%20).%20%20Protocolo%20de%20mensajes%20de%20control%20de%20inter%20red.


1
ICMP ( Internet Control Messages Protocol ).
Protocolo de mensajes de control de inter red.
  • Juan Carlos Llanos V.
  • Alvin Sepúlveda A.
  • UTFSM
  • Valparaíso, 1999

2
Introducción
  • IP entrega un servicio de comunicación de mejor
    esfuerzo. Esto genera
  • Duplicación de datagramas.
  • Pérdida de datagramas.
  • Retardo o desorden en la entrega de datagramas.

3
Introducción
  • Si un un router no puede enrutar un datagrama
    (por ej debido a congestión 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 decisión .

4
Introducción
Para el control de errores a nivel IP existe
ICMP ( Internet Control Messages Protocol ).

5
Qué es ICMP ?
  • Es un mecanismo de reporte de errores e
    información de la red.
  • Actúa a través 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.

6
Según tipo de error, host determina acción a
seguir. Por ej Volver a enviar datagrama.
Host fuente envía un datagrama a host
destino. (datagrama original ) .
Host fuente
router
router
Router detecta un error en el datagrama
recibido y envía datagrama de reporte de error
hacia el host fuente. Según el error, el
router decide que hacer con el datagrama
recibido. Por ej destruirlo.
Host destino
ERROR EN DATAGRAMA RECIBIDO. !!
router
router
7
Qué mensajes reporta ICMP. ?
  • ICMP define cinco mensajes de error y cuatro de
    información.

8
Qué mensajes reporta ICMP. ?
  • ICMP define cinco mensajes de error y cuatro de
    información.

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

10
Transporte de mensajes ICMP.
Area de datos ICMP
Cabecera ICMP
Area de datos IP
Cabecera IP
Area de datos del Cuadro
Cabecera del Cuadro
11
Cifra de comprobación (Sólo para el mensaje ICMP).
Significado del mensaje. Por ejemplo, 0
Respuesta de eco. 3 Destino inalcanzable. 4
Alivio de fuente. 5 Redirigir, etc.
Más detalles respecto del problema. Por
ejemplo 0 Red inalcanzable. 1 Host
inalcanzable. 4 Fragmentación requerida, etc.
Formato del mensaje ICMP.
Con esto, el host fuente identifica qué
protocolos y que aplicaciones fueron las que
generaron el datagrama. (En capas superiores,
los 64 primeros bits son seteados con
información crucial).
Cabecera IP del datagrama recibido por el
router (dir. Ip fuente, destino, tipo de
servicio, etc.).
0
16
8
31
Bits de relleno, para completar tamaño del
datagrama.
Tipo
Código
Checksum
El contenido de este campo varía según el tipo de
mensaje.
Cabecera interred primeros 64 bits del datagrama
. . .
12
Alivio de fuente (Source Quench).
  • Cuando un router satura su buffer, comienza a
    descartar los paquetes que llegan.
  • Usualmente, el router envía un mensaje ICMP
    Quench Source a las máquinas cuyos datagramas
    han sido descartados.
  • Si una máquina recibe un mensaje ICMP Source
    Quench, reduce su tasa de transmisión.

13
Host reduce su tasa de transmisión.
Host fuente envía un datagrama a host
destino. (datagrama original ) .
Host fuente
router
router
Router no tiene más espacio en el buffer y
envía 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
Buffer lleno. !!
router
router
14
Formato de Alivio de fuente (Source Quench).
15
Destino inalcanzable (Destination Unreachable).
  • Cuando un router determina que no se puede
    entregar un datagrama, envía un mensaje ICMP
    Destination Unreachable a la máquina 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).

16
Host determina si reenvía o no el datagrama o
espera un tiempo.
Host fuente envía un datagrama a host
destino. (datagrama original ) .
Host fuente
router
router
Router detecta que no tiene acceso al destino
del datagrama recibido y envía datagrama de
dirección inalcanzable hacia el host fuente.
No hay acceso al destino del datagrama. !!
Host destino
router
router
17
Formato de Destino inalcanzable
0 Red inalcanzable. 1 Host inalcanzable. 2
Protocolo inalcanzable. 3 Puerto
inalcanzable. 4 Fragmentación requerida. 5
Source route failed. 6 Red de destino
desconocida. 7 Host destino desconocido. 8
Source host isolated. 9 Comunicación prohibida
con red destino. 10 Comunicación prohibida
con host destino. 11 Red inalcanzable por tipo
de servicio. 12 Host inalcanzable por tipo de
servicio.
18
Solicitud de eco (Echo request ).Réplica
(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 contestación.
  • La respuesta lleva los mismos datos que la
    solicitud.

19
Solicitud de eco (Echo request ).Réplica
(Reply).
  • Utilizando este mensaje ICMP , se ha
    desarrollado una aplicación llamada Ping.
  • Ping permite saber si una máquina 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
    petición de eco.

20
Según tipo de respuesta, host sabe si host
destino es alcanzable o no.
Host fuente hace un Ping a host destino
(ping 200.1.17.132 ) enviando un datagrama.
Host fuente
router
router
Host destino envía mensaje de respuesta, con
los mismos datos de vuelta (en el area de datos
del datagrama).
Host destino 200.1.17.132
router
router
21
Formato de Solicitud de eco (Echo request ).
Formato de Regreso de constestación (Reply).
Identificador y Nº de Secuencia Identifican al
mensaje (sirve cuando se envía una ráfaga de
peticiones de eco ).
8 Solicitud de eco. 0 Regreso de constetación.
22
Solicitud de los routers de cambio de ruta
Mensaje ICMP redirect
Se supone que los routers conocen las rutas
correctas las máquinas comienzan con mínima
información de ruteo y aprenden nuevas rutas
de los routers.
Regla
  • La máquina parte conociendo sólo la dirección de
    un router de la red local.
  • El router inicial devuelve un mensaje de
    redirigir cuando el host envía un datagrama para
    el cual existe una mejor ruta.

23
Solicitud de los routers de cambio de ruta
Mensaje ICMP redirect
Los routers sólo envían solicitudes de redirigir
a las máquinas
Este paquete va para otro lado
Cambio de ruta
destino
fuente
24
Solicitud de los routers de cambio de ruta
Mensaje ICMP redirect
Los mensajes de redirigir están limitados a la
interacción entre un router y un host conectados
ambos en la misma red.
Problema
R3
R2
R1
R5
destino
fuente
R4
25
Solicitud de los routers de cambio de ruta
Mensaje ICMP redirect
Formato de cuadro
Dirección del router que usa el host para enviar
paquetes al destino
0 1 2 3
Redirigir datagramas para la red
Redirigir datagramas para el host
mensaje redirigir (5)
Redirigir datagramas para el tipo de servicio y
red
Redirigir datagramas para el tipo de servicio y
el host
0
16
8
31
Tipo
Código
Checksum
Dirección interred del router
Cabecera interred primeros 64 bits del datagrama
. . .
26
Detección de rutas muy largas o ciclos
Mensaje ICMP Time Exceeded
tiempo de vida excedido
destino
fuente
Tiempo de vida 0
27
Detección 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
0
8
31
Tipo
Código
Checksum
Sin uso (valor 0)
Cabecera interred primeros 64 bits del datagrama
. . .
28
Reporte de otros problemas
Mensaje ICMP Parameter Problem
!?
Cabecera IP incorrecta
destino
fuente
29
Reporte de otros problemas
Mensaje ICMP Parameter Problem
Formato de cuadro
Indica el octeto del datagrama que produjo el
error
Problema no definido (11)
0 1
Usar el campo puntero
Falta un opción requerida
16
0
8
31
Tipo
Código
Checksum
Sin uso (valor 0)
Puntero
Cabecera interred primeros 64 bits del datagrama
. . .
30
Sincronización de reloj y estimación de tiempo de
tránsito
Mensaje ICMP timestamp request / reply
mi tiempo de salida del paquete es T3
Procesando paquete
mi tiempo de ingreso del paquete es T2
mi tiempo es T4
mi tiempo es T1
fuente
destino
31
Sincronización de reloj y estimación de tiempo de
tránsito
Mensaje ICMP timestamp request / reply
Formato de cuadro
tiempo justo luego de recibir el paquete (destino)
marca de tiempo 13 14
tiempo justo antes de devolver el
paquete (destino)
tiempo justo antes de enviar el paquete (fuente)
solicitud
respuesta
16
0
8
31
Tipo
Código (0)
Checksum
Identificador
Número de secuencia
Timestamp de origen
Timestamp de recepción
Timestamp de transmisión
32
Sincronización de reloj y estimación de tiempo de
tránsito
Mensaje ICMP timestamp request / reply
Aspectos gererales
Los valores de los campos de tiempo están
expresados de acuerdo al referente GMT y en ms.
Para obtener una estimación apropiada del
retardo en la red, se deben efectuar varias
mediciones.
El retardo entre dos máquinas conectadas a una
gran interred puede variar drásticamente, incluso
en períodos 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 anáisis estadístico para precisar las
estimaciones.
33
Solicitud y Respuesta de información
Mensaje ICMP information request / reply
Los mensajes de solicitud (15) y respuesta (16)
de información están 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.
34
Obtención de una máscara de subred
Mensaje ICMP address mask request / reply
La máscara de mi red es 255.255.255.128
ICMP address mask reply
200.1.17.130
35
Obtención de una máscara de subred
Mensaje ICMP address mask request / reply
Formato de cuadro
Máscara 17 18
solicitud
respuesta
16
0
8
31
Tipo
Código (0)
Checksum
Identificador
Número de secuencia
Dirección de máscara (sólo en respuesta)
36
Aplicación /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_seq0 ttl252 time3.3 ms
64 bytes from 146.83.198.9 icmp_seq1
ttl253 time2.0 ms 64 bytes
from 146.83.198.9 icmp_seq2 ttl253 time2.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
37
Aplicación /usr/sbin/icmpinfo
Salida de icmpinfo en pantalla
rce-20 icmpinfo -vv
icmpinfo Icmp monitoring in
progress... Sep 23
172611 ICMP_Echo_Reply lt 146.83.198.9
loa.alumnos.utfsm.cl sz64(20)
Sep 23 172612 ICMP_Echo_Reply lt
146.83.198.9 loa.alumnos.utfsm.cl sz64(20)
Sep 23
172613 ICMP_Echo_Reply lt 146.83.198.9
loa.alumnos.utfsm.cl sz64(20)
38
Aplicación /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
39
Aplicación /usr/sbin/icmpinfo
Salida de icmpinfo en pantalla
icmpinfo Icmp monitoring in progress...
Sep 23
181433 ICMP_Time_Exceeded lt 200.1.17.129
alm-gw.elo.utfsm.cl gt
146.83.198.9loa.alumnos.utfsm.cl sp55169
dp33435 seq0x0014d86f sz68(20)

Sep 23 181433 ICMP_Time_Exceeded lt
200.1.17.129
alm-gw.elo.utfsm.cl gt 146.83.198.9loa.alumnos.u
tfsm.cl sp55169 dp33436 seq0x0014ff70
sz68(20) Sep 23
181434 ICMP_Time_Exceeded lt 200.1.17.129
alm-gw.elo.utfsm.cl gt
146.83.198.9loa.alumnos.utfsm.cl sp55169
dp33437 seq0x00143368 sz68(20)
Sep 23 181434
ICMP_Time_Exceeded lt 200.1.17.1
elo-gw.utfsm.cl gt 146.83.198.9
loa.alumnos.utfsm.cl sp55169 dp33438
seq0x00145261 sz36(20)
40
Aplicación /usr/sbin/icmpinfo
Salida de icmpinfo en pantalla
Sep 23 181434 ICMP_Time_Exceeded lt 200.1.17.1

elo-gw.utfsm.cl gt 146.83.198.9
loa.alumnos.utfsm.cl sp55169 dp33439
seq0x0014e2ff sz36(20)
Sep 23 181434
ICMP_Time_Exceeded lt 200.1.17.1
elo-gw.utfsm.cl gt 146.83.198.9
loa.alumnos.utfsm.cl sp55169 dp33440
seq0x001462f7 sz36(20)
Sep 23 181434
ICMP_Dest_UnreachablePort lt 146.83.198.9
loa.alumnos.utfsm.cl gt 146.83.198.9
loa.alumnos.utfsm.cl sp55169 dp33441
seq0x001442eb sz48(20)
Sep 23 181439 ICMP_Dest_UnreachablePort
lt 146.83.198.9 loa.alumnos.utfsm.cl gt
146.83.198.9 loa.alumnos.utfsm.cl sp55169
dp33443 seq0x0014bc64 sz48(20)
41
Aplicación /usr/sbin/icmpinfo
Proceso corridos en consola linux de lucas
rce-20 ftp
ftpgt o
(to) ftp.aol.com
ftp connect
to address 205.188.176.163 No route to host ftpgt
quit rce-20
Salida de icmpinfo en pantalla
Sep 23 171642 ICMP_Dest_Unreachable--Sub-Type-O
UT-OF-RANGE-- lt 146.83.198.1utfsm-gw.utfsm.cl
gt 205.188.176.166 ftp15d.newaol.com sp2052
dp21 seq0x87b60824 sz36(20)
42
Aplicación /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 182413
ICMP_Dest_Unreachable--Sub-Type-OUT-OF-RANGE--
lt 146.83.198.1 utfsm-gw.utfsm.cl gt
194.112.123.200 Turing.suse.de sp8964 dp80
seq0x8708b9a2 sz36(20)
0000 4500 0038 6044 0000 FD01
2B8A 9253 C601 E..8D......S..

0010 C801 11A0 030D B7D4 0000 0000 4500
003C ............E..lt
0020
4AEA 4000 J._at_.
43
Código 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
44
Código del paquete icmpinfo-1.10
linux_ip_icmp.h
Además define una estructura para el header del
datagrama IP.
Incluye los define para asignar un número
decimal a los distintos tipos de mensajes ICMP
defs.h
Lleva los includes, defines y variables
globales usadas entre por la funciones del
programa
45
Código 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 representación ASCII del
paquete para desplegarlos en pantalla
46
Código 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 página de
ayuda.
err.c
Reporta error si es que el usuario tuvo una falla
en la sintaxis
47
Conclusiones.
  • ICMP es un mecanismo de reporte de errores a
    nivel de capa IP.
  • Los mensajes ICMP se transportan como simples
    datagramas.
  • Además de reportar errores, tambíen entrega
    información de la red.
  • Corresponde a los routers enviar el datagrama
    ICMP al host fuente del datagrama original
    donde fué detectado el error.

48
Conclusiones.
  • Utlizando e interpretando los mensajes ICMP, se
    han desarrollado aplicaciones que entregan
    información 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 fragmentación
    requerida para determinar la MTU (tamaño máximo
    del paquete) de trayectoria de un destino.

49
Bibliografía.
  • Internetworking with TCP/IP
  • Comer, Douglas.
  • Volume I Principles, Protocols and Architecture.
  • 3era Edición.
  • Redes de Computadoras, Internet e Interredes.
  • Comer, Douglas.
  • Primera edición.
  • Ed. Prentice Hall.
  • Redes de Computadores.
  • Tannenbaum, Andrew.
Write a Comment
User Comments (0)
About PowerShow.com