Publicado el 5 de Julio del 2017
639 visualizaciones desde el 5 de Julio del 2017
285,9 KB
20 paginas
Creado hace 17a (13/12/2007)
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
Tipo
Código
Checksum
Contenido dependiente de Tipo y Código
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
Cabecera IP
8 bytes
Cab.
UDP
Variable
Datos UDP
14 bytes
Cabecera
Ethernet
20 bytes
Cabecera IP
8 bytes
Cab.
ICMP
20 bytes
Cabecera IP
8 bytes
Cab.
UDP
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)
Checksum
Sin usar (ceros)
MTU de la red del siguiente 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:
–
– Número de secuencia: inicialmente 0, y se incrementa con cada echo request.
Existen variedad de implementaciones (presentación de resultados, opciones del
programa...):
Identificador: en UNIX es el identificador del proceso.
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
Cabecera IP
Opciones
8 bytes
Cabecera
ICMP
39 bytes
Variable
Datos
Cód.
Long
Ptr
Dir. IP 1
Dir. IP 2
...
Dir. IP 9
1 1 1 4 4
4
• 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: Registro de ruta
RA
154.63.1.1
173.197.15.10
olano
173.197.15.4
1º: 154.63.1.1
vacío
4º: 173.197.15.4
indurain
154.63.4.1
2º: 154.63.4.1
3º: 173.197.15.10
olano% ping –R indurain
PING indurain (154.63.4.1). 56 data bytes
64 bytes from 154.63.4.1: icmp_seq=0 ttl=254 time=280 ms
RR: RA (154.63.1.1)
indurain (154.63.4.1)
RA (173.197.15.10)
olano (173.197.15.4)
64 bytes from (154.63.4.1): icmp_seq=1 ttl=254 time=7. ms (same route)
64 bytes from (154.63.4.1): icmp_seq=2 ttl=254 time=7. ms (same route)
RC - Bloque IV - Tema 12
12
Ping: Timestamp
• Opción IP de timestamp: registra el instante de tiempo (milisegundos desde
medianoche) por el que pasa en cada router.
8 bytes
Cabecera
<= 40 bytes
20 bytes
ICMP
Cabecera IP
Opciones
Variable
Datos
40 bytes
Cód.
Long
Ptr
OF FL
Tiempo 1
Tiempo 2
...
Tiempo 9
1 1 1 ½ ½ 4 4
4
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
13
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
14
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
Tipo (11)
Código (0 ó 1)
Checksum
Sin usar (ceros)
Cabecera IP (con opciones) +
Primeros 8 bytes del datagrama IP
RC - Bloque IV - Tema 12
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. IP
Cab.
UDP
Datos
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL = 1
Cab. IP
Cab.
ICMP
IP origen: 154.63.1.1
IP destino: 154.63.4.1
TTL = 32
RC - Bloque IV - Tema 12
ICMP Tiempo excedido
16
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. IP
Cab.
UDP
Datos
Cab. IP
Cab.
UDP
Datos
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL =2
IP origen: 154.63.4.1
IP destino: 173.197.15.4
TTL =1
Cab. IP
Cab.
ICMP
IP origen: 172.25.1.2
IP destino: 154.63.4.1
TTL = 32
ICMP Tiempo excedido
17
RC - Bloque IV - Tema 12
Tracerout
Comentarios de: Tema 12 - ICMP (0)
No hay comentarios