PDF de programación - Tema 12 - ICMP

Imágen de pdf Tema 12 - ICMP

Tema 12 - ICMPgráfica de visualizaciones

Publicado el 5 de Julio del 2017
635 visualizaciones desde el 5 de Julio del 2017
503,6 KB
19 paginas
Creado hace 16a (09/12/2008)
Bloque IV: El nivel de red

Tema 12: ICMP

Índice

• Bloque IV: El nivel de red

– Tema 12: ICMP
• Introducción
• ICMP: Puerto inalcanzable
• ICMP: Fragmentación requerida
• Ping
• Traceroute

• Referencias

– Capítulo 4 de “Redes de Computadores: Un enfoque 

descendente basdado en Internet”. James F. Kurose, Keith 
W. Ross. Addison Wesley, 2ª edición. 2003.

– Capítulos 6, 7 y 8 de “TCP/IP Illustrated, Volume 1: The 
Protocols”, W. Richard Stevens, Addison Wesley, 1994.

RC ­ Bloque IV ­ Tema 12

2

Introducción




Internet Control Message Protocol
ICMP comunica mensajes de error y otras condiciones que 
requieren atención.

• Los mensajes ICMP se transmiten dentro de datagramas IP 

(RFC 792)

• Dos tipos de mensajes: error y consulta.
• Formato de mensaje ICMP:

– Tipo: identifica el tipo de mensaje ICMP (hay 15 distintos)
– Código: utilizado en algunos códigos para especificaciones 

más detalladas.

– Checksum: cubre al mensaje ICMP completo (mismo 

algoritmo que para el checksum de IP)

TCP

UDP

Datagrama IP

ICMP

TRANSPORTE

Cabecera IP

Mensaje ICMP

IP

RED

RC ­ Bloque IV ­ Tema 12

Ethernet

ENLACE

8 8 16

Código

Tipo
Contenido dependiente de Tipo y Código

Checksum

3

Tipos de mensajes ICMP
Descripción

Consulta

Error

Tipo

Código

0

3

8

9

10

11

0

0
1
2
3
4
0

0

0

0
1

Respuesta de eco (ping reply)

Destino inalcanzable:
 Red inalcanzable
 Máquina inalcanzable
 Protocolo inalcanzable
 Puerto inalcanzable 
 Fragmentación requerida, pero bit DF activo
Petición de eco (ping request)

Aviso de router

Solicitud de router

Tiempo consumido (time exceeded)
 TTL = 0 durante tránsito
 TTL = 0 durante reensamblado

X

X

X

X

RC ­ Bloque IV ­ Tema 12

X
X
X
X
X

X
X

4

Tipos de mensajes ICMP
Descripción

Consulta

Error

Tipo

Código

5

12

13

14

17

18

0
1

0
1

0

0

0

0

Redirección (Redirect)
 Redirección para red
 Redirección para host

Problema con parámetros:
 Cabecera IP errónea
 Falta opción requerida

Petición de tiempo

Respuesta de tiempo

Petición de máscara de direcciones

Respuesta de máscara de direcciones

X
X

X
X

X

X

X

X

RC ­ Bloque IV ­ Tema 12

5

ICMP: Puerto inalcanzable

• Mensaje de error utilizado por UDP, cuando el destino no 

dispone de un proceso en el puerto de destino:
– Se incluye la cabecera del mensaje que provocó el error.

• IP de destino y origen
• Protocolo incluido en el campo de datos

– Y los primeros 8 bytes del datagrama IP = Cabecera UDP 

(incluye puerto destino y origen)

0 8 16
31

Tipo (3)

Código (3)

Checksum

Sin usar (ceros)

Cabecera IP (con opciones) +

Primeros 8 bytes del datagrama IP

RC ­ Bloque IV ­ Tema 12

6

ICMP: Puerto inalcanzable

IP destino: 210.53.23.10
IP origen:  210.53.23.35

Puerto destino: 8888
Puerto origen: 12345

Datagrama UDP 
destinado a un 
puerto vacío

20 bytes 8 bytes Variable
Cabecera IP Cab.
UDP

Datos UDP

14 bytes 20 bytes 8 bytes 20 bytes 8
bytes
Cabecera IP Cab.
UDP

Cabecera IP Cab.
ICMP

Cabecera
Ethernet

IP destino: 210.53.23.35
IP origen:  210.53.23.10

RC ­ Bloque IV ­ Tema 12

Mensaje ICMP

7

ICMP: Fragmentación requerida

• Mensaje de error utilizado por un router cuando tiene 
que fragmentar un datagrama IP pero tiene el flag DF 
activado.
– Incluye el MTU de la red que provocó el error y la 

cabecera del mensaje que provocó el error.

0 8 16
31

Tipo (3)

Código (4)

Sin usar (ceros)

MTU de la red del siguiente

Checksum

salto

Cabecera IP (con opciones) +

Primeros 8 bytes del datagrama IP

RC ­ Bloque IV ­ Tema 12

8

ICMP: Fragmentación requerida

• Este mensaje de error es utilizado en un mecanismo denominado Path 

MTU discovery que permite averiguar el MTU mínimo durante una 
comunicación y reducir la fragmentación IP (sólo se hace en origen).
– Path MTU: MTU mínimo en cualquier red en el camino entre dos 

hosts.

• Funcionamiento del Path MTU discovery:

– Se habilita el bit DF (Don’t Fragment) en los datagramas enviados.
– Si algún router en el camino necesita fragmentar  Generará el 

mensaje ICMP Fragmentación requerida

– Si se recibe un mensaje ICMP Fragmentación requerida con el 

nuevo MTU:

• Si eran datos TCP  TCP debe reducir el tamaño del 

segmento (en base al nuevo MTU) y retransmitir.

• Sino (p.e. UDP)  IP fragmenta los datagrama en base al 

nuevo MTU.

– Como las rutas cambian dinámicamente  Se puede probar un 

MTU mayor pasado un cierto intervalo (RFC 1191 recomienda 10 
minutos).

RC ­ Bloque IV ­ Tema 12

9

Ping









Packet InterNet Grouper: herramienta de diagnóstico que comprueba si un nodo de la red 
es alcanzable.
Cliente: Envía ICMP echo request
Servidor: Responde con ICMP echo reply
Formato mensajes ICMP echo request y reply:

Identificador: en UNIX es el identificador del proceso.


– Número de secuencia: inicialmente 0, y se incrementa con cada echo request.

Existen variedad de implementaciones (presentación de resultados, opciones del 
programa...):

indurain % ping olano
PING olano: 56 data bytes
64 bytes from olano (210.53.23.10): icmp_seq=0. time=7. ms
64 bytes from olano (210.53.23.10): icmp_seq=1. time=4. ms
­­­ olano PING Statistics­­­­
3 packet transmitted, 3 packets received, 0% packet loss
round­trip (ms) min/avg/max = 4/5/7

0 8 16
31

Tipo (0 ó 8)

Código

Checksum

Identificador

Número de secuencia

Datos (tamaño variable)

RC ­ Bloque IV ­ Tema 12

10

Ping: Registro de ruta

• Opción IP de registro de ruta: se van registrando en la cabecera IP los 

routers por los que pasa el mensaje.
– Los routers deben implementar esta opción
– Problema: espacio limitado en cabecera IP (40 bytes  máximo 9 

direcciones IP)

– UNIX o Linux: ping –R / Windows: ping –r
20 bytes <= 40 bytes 8 bytes Variable

Cabecera

IP

Opciones

Cabecera

ICMP
39 bytes

Datos

Cód. Long
1 1 1 4 4 4

Dir. IP 1

Dir. IP 2

Dir. IP 9

Ptr

...

• Código: Tipo de opción IP. (RR=7)

• Puntero: Índice que especifica la siguiente posición libre para escribir 

Longitud: Máximo 39 bytes.

una dirección (4 – lista vacía, 8, 12, ..., 36, 40 – lista llena)
La dirección que guardan los routers es la de salida.



RC ­ Bloque IV ­ Tema 12

11

Ping: Timestamp

• Opción IP de timestamp: registra el instante de tiempo (milisegundos desde 

medianoche) por el que pasa en cada router.
20 bytes <= 40 bytes 8 bytes Variable

Opciones

Cabecera

ICMP

Cabecera

IP

Datos

Cód. Long
1 1 1 ½ ½ 4 4 4

OF FL

Tiempo 9

Ptr

...

40 bytes
Tiempo 1 Tiempo 2

Long: longitud total de la opción

• Código: 0x44 para timestamp

• Ptr: puntero a la siguiente entrada disponible (5, 9, 13, ...)
• OF (Overflow): si un router no puede añadir su timestamp por falta de espacio 

 Incrementa el campo OF.
FL (Flags): modos de operación
– 0: registra únicamente timestamps 
– 1: registra direcciones IP y timestamps (máximo 4)
– 3: el emisor inicializa la lista con 4 direcciones IP, y si el router es una de 



ellas registra su timestamp

RC ­ Bloque IV ­ Tema 12

12

Traceroute

• Problemas del ping con registro de ruta:
– Falta de espacio en la cabecera IP

• Registro de ruta: máximo 9 routers
• Timestamp: máximo 4 routers (o 9 timestamps sin direcciones 

IP)

– No todos los routers soportan la opción de registro de ruta
– No hay control sobre los relojes de los routers

• Solución: traceroute

– Herramienta de diagnóstico que permite ver la ruta que sigue un 

datagrama, además de permitir encaminamiento en origen.

• Se basa en: datagramas UDP, el campo TTL de la cabecera IP y los 

mensajes de error ICMP Puerto inalcanzable y Tiempo excedido
– Sólo requiere que el protocolo UDP esté operativo en el 

destinatario.

– Cuando un router al decrementar el campo TTL obtiene 0  

Genera un mensaje de error ICMP Tiempo excedido

– Cuando UDP recibe un datagrama para un puerto vacío  Genera 

un mensaje de error ICMP Puerto inalcanzable

RC ­ Bloque IV ­ Tema 12

13

Traceroute



ICMP Tiempo excedido
– Código 0: TTL = 0 durante el tránsito
– Código 1: tiempo máximo de reensamblado excedido

• Se produce en la fragmentación IP al perderse uno de 

los fragmentos

0 8 16
31

Checksum

Tipo (11)

Código (0 ó 1)

Sin usar (ceros)

Cabecera IP (con opciones) +

Primeros 8 bytes del datagrama IP

RC ­ Bloque IV ­ Tema 12

14

Traceroute: Funcionamiento

RA

154.63.1.1

172.25.1.1

RB

172.25.1.2

173.197.15.10

olano
173.197.15.4

indurain
154.63.4.1

Cab.
UDP

Datos

Cab. IP
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL = 1

Cab.
ICMP

Cab. IP
IP origen: 154.63.1.1
IP destino: 154.63.4.1
TTL = 32

RC ­ Bloque IV ­ Tema 12

ICMP Tiempo excedido

15

Traceroute: Funcionamiento

RA

154.63.1.1

172.25.1.1

RB

172.25.1.2

173.197.15.10

olano
173.197.15.4

indurain
154.63.4.1

Cab.
UDP

Datos

Cab. IP
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL =2

Cab.
UDP

Datos

Cab. IP
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL =1

Cab.
ICMP

Cab. IP
IP origen: 172.25.1.2
IP destino: 154.63.4.1
TTL = 32

ICMP Tiempo excedido

16

RC ­ Bloque IV ­ Tema 12

Traceroute: Funcionamiento

RA

154.63.1.1

172.25.1.1

RB

172.25.1.2

173.197.15.10

olano
173.197.15.4

indurain
154.63.4.1

Cab.
UDP

Datos

Cab. IP
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL =3

RC ­ Bloque IV ­ Tema 12

Cab.
UD
  • Links de descarga
http://lwp-l.com/pdf4862

Comentarios de: Tema 12 - ICMP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad