Publicado el 14 de Enero del 2017
809 visualizaciones desde el 14 de Enero del 2017
322,1 KB
31 paginas
Creado hace 19a (04/10/2005)
Clase 9
Fragmentación y Reensamblado
ICMP
Tema 3.- Interconexión de redes IP
Dr. Daniel Morató
Redes de Ordenadores
Ingeniero Técnico de Telecomunicación Especialidad en
Sonido e Imagen, 3º curso
Temario
1.- Introducción
2.- Nivel de enlace en LANs
3.- Interconexión de redes IP
4.- Enrutamiento con IP
5.- Nivel de transporte en Internet
6.- Nivel de aplicación en Internet
7.- Ampliación de temas
Fragmentación y reensamblado - ICMP
1/30
Temario
1.- Introducción
2.- Nivel de enlace en LANs
3.- Interconexión de redes IP
4.- Enrutamiento con IP
5.- Nivel de transporte en Internet
6.- Nivel de aplicación en Internet
7.- Ampliación de temas
Internetworking e IP
Direccionamiento clásico
CIDR
Comunicación IP en LAN (ARP)
Fragmentación y reensamblado. ICMP
Fragmentación y reensamblado - ICMP
2/30
Objetivo
Completar los conceptos básicos sobre el
nivel de red en Internet
Fragmentación y reensamblado - ICMP
3/30
Contenido
Fragmentación y reensamblado
Necesidad
Implementación
Problemas
ICMP
Características generales
Condiciones generales de envío
Mensajes
Traceroute
Fragmentación y reensamblado - ICMP
4/30
Contenido
Fragmentación y reensamblado
Necesidad
Implementación
Problemas
ICMP
Características generales
Condiciones generales de envío
Mensajes
Traceroute
Fragmentación y reensamblado - ICMP
5/30
Fragmentación y Reensamblado
Necesidad
El nivel de enlace
impone unos
límites al tamaño
MTU = Maximum Transfer Unit
Un datagrama IP es dividido dentro
de la red (…)
Un datagrama se convierte en varios
paquetes
Hosts y routers fragmentan
Los routers NO reensamblan (…)
Solo
receptor
el
host
reensambla (…)
MTU=1500
R4
final
Red A
MTU=1500
Fragmentación:
in: un datagrama grande
out: n paquetes más pequeños
R1
MTU=576
R2
R3
Red B
Red C
Reensamblado
Red D
6/30
Red (RFC 1191)
16Mbps Token Ring
IEEE 802.4
FDDI
Ethernet
IEEE 802.3
X.25
MTU
17914
8166
4352
1500
1492
576
Fragmentación y reensamblado - ICMP
Fragmentación y Reensamblado
Codificación de la información
16
31
8
0
4
TOS
Versión Header
Length
16-bit identifier
TTL
D
F
Longitud
M
13-bit fragmentation
offset
F
Protocolo Header checksum
Dirección IP origen
Dirección IP destino
[opciones]
[Datos]
Campos empleados:
Identificación
Bit MF
Fragment offset
Fragmentos del datagrama:
Igual identificación, IP origen,
IP destino y protocolo
“Longitud” es la del paquete, no del datagrama
Ante un primer fragmento ⇒ reservar zona de memoria donde
reensamblar
Debe reservar suficiente para reensamblar al menos datagramas
de 576 Bytes
Fragmentación y reensamblado - ICMP
7/30
Fragmentación
Implementación
Ident
MF
=0
Offset
= 0
Tam 0
Datos
Tam 1
Ident
MF
=1
Offset
= 0
Datos 1
Ident
MF
=0
Offset
Datos 2
Tam 2
Offset = Tam1/8
Ident
MF
= 1
Offset
= 0
Datos 3
Ident
MF
= 1
Offset
Datos 4
Fragmentación y reensamblado - ICMP
8/30
Offset = Tam2/8
Buffer
Reensamblado
Implementación
Ident
MF
=0
Offset
Datos 2
Offset = Tam1/8
Ident
MF
= 1
Offset
= 0
Datos 3
Ident
MF
= 1
Offset
Datos 4
Offset = Tam2/8
Fragmentación y reensamblado - ICMP
9/30
Situaciones de “error”
Bit DF:
En la cabecera IP
DF==1 ⇒ routers no pueden fragmentar el paquete
(Tam>MTU)&&(DF==1) ⇒ lo descarta y devuelve al host
origen un paquete indicando el error (ICMP)
Reensamblado:
Inicia un timer con el primer fragmento que recibe
Si caduca el timer sin tener todos los fragmentos descarta
todo lo recibido y devuelve al origen un paquete indicando el
error (ICMP)
Fragmentación y reensamblado - ICMP
10/30
Problemas de la fragmentación
Menor cociente Datos/Cabeceras
Añade más carga a los routers (IPv6 la elimina)
Si se pierde un fragmento:
El receptor no puede recomponer el datagrama
Tira todos los fragmentos recibidos
Hasta que no se reciba todo el datagrama no se pueden
pasar los datos al nivel de transporte (mayor retardo)
Fragmentación y reensamblado - ICMP
11/30
Contenido
Fragmentación y reensamblado
Necesidad
Implementación
Problemas
ICMP
Características generales
Condiciones generales de envío
Mensajes
Traceroute
Fragmentación y reensamblado - ICMP
12/30
Características generales
Internet
Control
Protocol (RFC 792)
Message
Para comunicar mensajes de
información del
error y otra
nivel de red
Mensajes transportados dentro
de datagramas IP
El destino es la dirección del
paquete IP que generó el error
Parte del nivel IP
Estructura general del mensaje
(…):
Cabecera IP
Datos IP
Fragmentación y reensamblado - ICMP
13/30
Características generales
Internet
Control
Protocol (RFC 792)
Message
Para comunicar mensajes de
información del
error y otra
nivel de red
Mensajes transportados dentro
de datagramas IP
El destino es la dirección del
paquete IP que generó el error
Parte del nivel IP
Estructura general del mensaje
(…):
0
15 16
Cabecera IP
32
tipo
código
checksum
Dependiente del tipo y código
Fragmentación y reensamblado - ICMP
14/30
¿Dónde encaja ICMP en la pila TCP/IP?
Aplicación
Transporte
UDP
TCP
IP
ICMP
ARP
Red
Enlace
Físico
Fragmentación y reensamblado - ICMP
15/30
Clases de mensajes ICMP
Mensajes de Error:
Destino inalcanzable
Redirect
Tiempo excedido
Source Quench
Problema de parámetros
Mensajes de pregunta (query):
Echo
Router Advertisement
Timestamp
Información
Address Mask
Fragmentación y reensamblado - ICMP
16/30
Condiciones generales de envío
Para evitar tormentas de errores
Nunca se generan ICMPs de error en respuesta
a:
Un ICMP de error
Un datagrama destinado a una IP de broadcast o
multicast
Un broadcast (o multicast) a nivel de enlace
Un fragmento que no sea el primero
Un datagrama cuya IP origen no sea single-host:
loopback, broadcast, multicast
Fragmentación y reensamblado - ICMP
17/30
Mensajes ICMP
Echo request/reply (query) (PING)
tipo = 8 (request) o 0 (reply), código = 0
Servidor debe hacer echo del paquete (incluidos los datos)
Obligatorio de implementar (generalmente en el kernel)
0
type=8
code
Identificador
15 16
32
Número de secuencia
checksum
Datos (opcional)
Fragmentación y reensamblado - ICMP
18/30
Mensajes ICMP
Destino inalcanzable (error)
tipo = 3
Si según la tabla de rutas no se puede llegar al
destino, host/router debe enviarlo (…)
0
type=3
code
15 16
0
32
checksum
Cabecera IP + 8bytes datos del
paquete que dio error
Fragmentación y reensamblado - ICMP
19/30
Mensajes ICMP
(Destino inalcanzable)
Código:
0 = Red destino inalcanzable
1 = Host destino
inalcanzable
2 = Protocolo destino
inalcanzable
3 = Puerto destino
inalcanzable
4 = Fragmentación
necesaria y DF activo
5 = Source route failed
0
type=3
code
15 16
0
32
checksum
Cabecera IP + 8bytes datos del
paquete que dio error
Fragmentación y reensamblado - ICMP
20/30
Mensajes ICMP
Tiempo excedido (error)
tipo = 11
código = 0 (TTL=0 en tránsito), 1 (timeout durante
reensamblado, necesita primer paquete)
0
type=11
code
15 16
0
32
checksum
Cabecera IP + 8bytes datos del
paquete que dio error
Fragmentación y reensamblado - ICMP
21/30
Contenido
Fragmentación y reensamblado
Necesidad
Implementación
Problemas
ICMP
Características generales
Condiciones generales de envío
Mensajes
Traceroute
Fragmentación y reensamblado - ICMP
22/30
Traceroute
Permite averiguar el camino entre dos hosts
Suponiendo que el camino se mantiene entre diferentes paquetes
Requiere que el destino final soporte UDP
Requiere que se generen ciertos mensajes ICMP
Implemented by Van Jacobson from a suggestion by Steve
Deering. Debugged by a cast of thousands with particularly cogent
suggestions or fixes from C. Philip Wood, Tim Seaver, and Ken
Adelman.
if1
if0
R1
if0
if1
R5
if0
if0
R2
if1
if2
if0
if1
if2
R4
R3
if1
Fragmentación y reensamblado - ICMP
23/30
Traceroute
El host inicial envía un datagrama UDP (…)
Dirigido al host final
Con TTL = 1
El primer router decrementa el TTL a 0 (…)
TTL
1
IP
IPR1if0
Tira el paquete
Devuelve al origen un ICMP de Error Tiempo excedido en tránsito
Este es un paquete IP con dirección origen la del interfaz de R1 en la red del
host (… …)
if1
if0
R1
if0
if1
R5
if0
if0
R2
if1
if2
if0
if1
if2
R4
R3
if1
Fragmentación y reensamblado - ICMP
24/30
Traceroute
El host inicial envía un datagrama UDP (…)
Dirigido al host final
Con TTL = 2
El primer router decrementa el TTL a 1 y lo reenvía (…)
El segundo router decrementa el TTL a 0 (…)
Tira el paquete
Devuelve al origen un ICMP de Error Tiempo excedido en tránsito
Este es un paquete IP con dirección origen la del interfaz de R2 en dirección
hacia el host origen (…)
TTL
TTL
1
1
2
IP
IP
IPR1if0
IPR1if0
IPR2if0
if1
if0
R1
if0
if1
R5
if0
if0
R2
if1
if2
if0
if1
if2
R4
R3
if1
Fragmentación y reensamblado - ICMP
25/30
Traceroute
Idem con TTL=3 y TTL=4 (…)
Con TTL suficientemente grande el paquete llega
hasta el destino final (… …)
En el destino no hay aplicación esperando paquetes UDP
en ese puerto:
Lo tira
Devuelve al origen un
inalcanzable (… …)
ICMP de Error Puerto destino
TTL
TTL
TTL
1
1
1
2
2
2
3
3
4
4
5
IP
IP
IP
IPR1if0
IPR1if0
IPR1if0
IPR2if0
IPR2if0
IPR2if0
IPR4if0
IPR4if0
IPR5if0
IPR5if0
IPhost
if1
if0
R1
if0
if1
R5
if0
if0
R2
if1
if2
if0
if1
if2
R4
R3
if1
Fragmentación y reensamblado - ICMP
26/30
Traceroute (Ejemplo)
daniel% traceroute www.berkeley.edu
traceroute to arachne.berkeley.edu (169.229.131.109), 30 hops max, 40 byte packets
1 arce-un.red.unavarra.es (130.206.160.1) 1.691 ms 0.438 ms 0.417 ms
2 ss-in (130.206.15
Comentarios de: Clase 9 Fragmentación y Reensamblado ICMP (0)
No hay comentarios