• Saber quién fragmenta y quién reensambla
• Saber cómo emplear los campos de la
cabecera IPv4 para fragmentar un datagrama
Fragmentación y Reensamblado
Necesidad
a
c
i
t
,
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
I
I
I
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
Fragmentación:
in: un datagrama grande
out: n paquetes más pequeños
MTU=1500
R4!
Red A!
MTU=1500
R1!
MTU=576
R2!
R3!
Red B!
Red C!
Reensamblado
Red D!
• 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 el host receptor final
reensambla (…)
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
Codificación de la información
a
c
i
t
,
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
I
I
I
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
• Campos empleados:
Identificación
–
– Bit MF
– Fragment offset
0
8
4
Length TOS
Versión Header
16-bit identifier
16
31
Longitud
M
13-bit fragmentation
F
offset
D
F
TTL Protocolo Header checksum
Dirección IP origen
Dirección IP destino
[opciones]
[Datos]
• 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
r e e n s a m b l a r a l m e n o s
datagramas de 576 Bytes
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
,
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
I
I
I
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
a
e
r
Á
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
Offset = Tam2/8
a
c
i
t
,
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
I
I
I
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
Reensamblado
Implementación
Buffer
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
Situaciones de “error”
• Bit DF:
a
c
i
t
,
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
I
I
I
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
– 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)
,
S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A
I
I
I
S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
I
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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)
Comentarios de: Fragmentación IP (0)
No hay comentarios