Professional Documents
Culture Documents
²
Fragmentación IP««««««««««««««««««««««««. 2
El Datagrama IP«««««««««««««««««««««« 5
Explicación De La Fragmentación««««««««««««« 8
Enrutamiento IP«««««««««««««««««««««.. 9
Conceptos«««««««««««««««««««««««««««. 11
²²
² ²
²² ² ²
Los datos en una red basada en IP son enviados en bloques conocidos como
paquetes o datagramas (en el protocolo IP estos términos se suelen usar
indistintamente). En particular, en IP no se necesita n inguna configuración
antes de que un equipo intente enviar paquetes a otro con el que no se había
comunicado antes.
² ²
Se ha visto que las tramas físicas tienen un campo de datos y que es aquí
donde se transportan los datagramas IP. Sin embargo, este campo de datos no
puede tener una longitud indefinida debido a que está limitado por el diseño de
la red. El MTU de una red es la mayor cantidad de datos que puede transportar
su trama física. El MTU de las redes Ethernet es 1500 bytes y el de las redes
Token-Ring, 8192 bytes. Esto significa que una red Ethernet nunca podrá
transportar un datagrama de más de 1500 bytes sin fragmentarlo.
!"" #$ %$ %
&'$ ( $% ') )')*)
+ ($ # ,-$ !" . /""
( $)0 ') % $)
$( % + ,-$ +-$%
&$ ( $% # ,-$
!" 1 2"
t f t t l i
i tifi i ti t i f i l l i t
f t i . V l lt . l f t ti l
i , l t i l .Off t.
t : .t t l=6 t ; = ; =
t : .t t l=6 t ; =6 ; =
t : .t t l= t ; = ; =
! "# !$ #$ #)
%&'& ( %( !%( * %+&
ª( $)0 ,-') ,% ./ ) .
/$$) ,-0( ,1 $)0 ,-') ,
0 ,% , -) . %$ ( . /$
% , , /,-, 3 , , ( ,
2$% 3²
4- ,)% . $(5./%$) ,% ./ 4
/$0' 0, ( . /, -$) .1
/$0 .-+ .)% /5 $(
% , , /,-, ./'') ,(²
l
t
,
i
t
l i i t
f i
i
f it l l.
!
7
6 89ª ª
ªª
:
² ² ²
El
í IP
iil l
l l
A
. E
t lti
í
f
E l
t
. E l E
il l i i fí
i l i l
ti.
E l
IP
í t
,
t
t i il
E t
,
l
i i
l
i i
IP.
² ² ² ²
"
t
IP
t f
it
. t
ti íi t
f t i
l
i
i.
V
l
i
i l
:
ҏVe² Ve E
t
ti t it lit ii l
i l
tl, it lt ti l l
IP
i .
ee² ength² ngtu² e² ² ece E
t
, t i
t it lit ii l t l i
l
it,
i t l íi
t
i l
i
t
t lit 6 it,
i 6 tt
l
lit i
t .
/
;ª ª
ªª
ҏType² ² ece i
ii.
it lit
ii
t t l t . E
t
t t l
iit :
El
i i , it, l
il t
i i l 7
t l
it l itt ii l i
t i l
t.
A l
l í l
l
i
l l
t
,
t lt
i
t t l
iti
i i l
t
ti:
j
l l
t l t
l
t
. A
it
t i i
lt l it
t l
ti
ft
l i
ti .
"
iit
t
it ii l li l t
t
liit
l
t : l
i , , ii t j l l , l
, ,
lt t
t
t l t , ,
liit
lt fi ili ,
t
t
li ilit. E
t
it
tit l i it i
t i
lt ti
.
ҏT t² ength² ngtu² t t "
6 it
t
ii l
lit tt l l t
6 tt
t,
it i
i
76 tt
.
entct n² entcc n
6 it ti
t , itifi l t t l
i f
iti
l i, fiiti , l l t
i
i
t t ii
l
l l
t
t f f t .
g² c ² e! ² ne² E
t
t
it l
l
l
i
f if i
l f t i l
t . A
í l
it l
ii
i l t
f t
, l , , l . El t it ii
i l t l
l
lti t t , l ,
i
, l .
gent² et² tuc n²e²gent E
t
ti t it
lit ii l tt
t
l i l
t
l t ii l
t l
t
l l
t
l f t
t . El l l
i lti
l
tt
.
ҏTe²t ²e² TT ²tep ²e² "
it l
ii
t ti
t t i l t i l
l ,
tili
it l
t
t t t i l
l
i l
t l
t
t t
i i í l
.
El
iit
i
t
:
t l , l
i ti
i i ,
l t t
l
t
, t
l
ti l . E
t t i
li
t l
l
i i l l
l l ll l i
l l l t
í
tl l
l if i
t l
2
anteriores.
² Campo de ocho bit que indica que protocolo de
alto nivel ha creado el contenido del campo datos. La asignación de los
valores a los protocolos se hace por la IANA y algunos valores existentes
son: 1 para ICMP, para TCP, 1 para UDP.
ҏH²"#$%²²&'²² ²(² Campo de 1
bit que representa un valor calculado por el nodo origen a partir del
contenido de la cabecera y que será recalculado nuevamente por el nodo
receptor para verificar que la cabecera se ha recibido correctamente.
%² ² $$² ²² Campo de 32 bit que indica
la dirección Ip del nodo emisor del datagrama.
ҏ$² ²$$²²²$² Campo de 32 bit que
indica la dirección Ip del nodo a quien va dirigido el datagrama
² )$² *)$² ² ² Campo de longitud variable y opcional
dentro de la cabecera del datagrama. Tiene una estructura variable, ya que
dentro de él pueden ir varias opciones, cuya estructura también es variable.
Debe terminar con el campo ³fin de opción´ que es un octeto con todos sus
bit a cero.
Como hemos dicho la estructura de cada una de las opciones es variable pero
todas tienen un primer octeto llamado código de opción cuya estructura es la
siguiente:
El primer bit del campo es el llamado bit d e copia y cuando está a 1 indica que
la opción debe ser copiada en cada uno de los trozos en que se puede dividir el
datagrama. Si está a 0 deberá ser copiada sólo en el primer trozo.
Los siguientes dos bit constituye la llamada clase de opción que puede ser 00
para indicar datagrama o control de red, o 10 para indicar medida y control de
errores estando aún sin definir los valores 01 y 11.
Los siguientes cinco bit forman el campo número de opción e identifica la
opción requerida.
Entre las posibles opciones que se pueden incluir están:
- Sin opción. Clase 0, número 1. De longitud un octeto y suele usarse entre
otras opciones para alineamientos. Debe ser copiada en caso de
fragmentación.
- Seguridad y restricciones de acceso. Clase 0, número 2. De once octetos de
longitud, está dividida en varios campos, que incluyen nivel de seguridad,
restricciones de acceso, etc..
- pción de registro de la ruta. Clase 0, número . De longitud variable, se
utiliza para crear una tabla de los encaminadores por los que pasa el paquete.
La estructura de la opción es:
Código Longitud Puntero Dirección 1 «« Última dirección donde el campo de
longitud indica la longitud total de la opción, y el campo puntero indica la
situación del primer campo de dirección libre.
En cada campo ³dirección´ se anota cada uno de las direcciones de los
encaminadores por los que pase el datagrama, lista que será entregada al
nodo destino por si procede analizarla. Si el espacio reservado a las
direcciones no es suficiente no se anotarán las direcciones de los últimos
encaminadores por donde pasó el datagrama.
- pción de encaminamiento prefijado. Clase 0, número 9. De longitud variable
permite prefijar un camino para el datagrama en la red. Si el encaminamiento
t it, l t
i t t l t
fij i
j l i
i
il, it
l
i it
i
it
i
i
t
l
ii
lt
ti
l li
t i i
t
.
O
i i
t ti
. l
, . i
iil l i
t t i i
t i i , l f
i
l
ili
ti l i . Si
il t l ii t i t
l l l,
l it
iifi ti l
.
i
i
. l
, . Ii t i t.
P lti
ll l
t l it
t
lit i it ll lti
l .
+ ² ² ²
T ²
m
i
t t i t, l t i t
6 6 t
. Si ,
t l
l
l
ti
fiit
i
i
t
t
. A
, l
It t tili if t
tlí
l t t l t i
t í
l ti
.
El t i t
i : i t
i
i
i . El t
f t
i
l l .
El t i
t
f t
i
it l
l
l f t
t t l
t l f t. A
, l t if i
l
i
t
l
f t
l t. Si
, ii l
f t
ll l
t,
t i
it.
it
:
medida para este campo es 8 bytes (el primer fragmento tiene un valor
cero)
)² ' (1 bits): número asignado a cada fragmento
para permitir el rearmado;
)² %² (1 bits): esto se vuelve a calcular para cada
fragmento;
)² (3 bits): está compuesto de tres bits:
n El primero no se utiliza.
n El segundo (denominado : ) indica si se puede
fragmentar el datagrama o no. Si el datagrama tiene este bit en
uno y el router no puede enrutarlo sin fragmentarlo, el datagrama
se rechaza con un mensaje de error.
n El tercero (denominado : : ) indica si el
datagrama es un fragmento de datos (1). Si el indica dor se
encuentra en cero, esto indica que el fragmento es el último
(entonces el router ya debe contar con todos los fragmentos
anteriores) o que el datagrama no se ha fragmentado.
*² ²
Hemos dicho antes que cada tecnología de red soporta un tamaño máximo
para las tramas que aproximadamente es de 1500 octetos para ethernet, 4500
para FDDI y 8000 para Frame Relay. Cuando un datagrama ip recorre el
camino entre el nodo emisor y el receptor es habitual que pase por diferentes
redes con MTU diferentes y normalmente menor que el tamaño del datagrama.
Para que pueda pasar a través de ella es preciso fragmentar el datagrama en
tantos trozos como sea necesario, siempre en trozos cuya longitud en octetos
sea múltiplo de ocho (longitud en bit múltiplo de 4), rellenando con bit a cero el
último fragmento si es preciso. Todos los trozos llevan una cabecera que es
"
*
*²
+ ²
²
²-²
²
Para el caso de IP, el máximo valor de la MTU es 5.53 bytes. Sin embargo,
ése es un valor máximo teórico, pues, en la práctica, la entidad IP determinará
el máximo tamaño de los datagramas IP en función de la tecnología de red por
la que vaya a ser enviado el datagrama. Por defecto, el tamaño de datagrama
IP es de 5 bytes. Sólo pueden enviarse datagramas más grandes si se tiene
conocimiento fehaciente de que la red destinataria del datagrama puede
aceptar ese tamaño. En la práctica, dado que la mayo ría de máquinas están
conectadas a redes Ethernet o derivados, el tamaño de datagrama que se
envía es con frecuencia de 1500 bytes.
Los datagramas pueden pasar por varios tipos de redes con diferentes
tamaños aceptables antes de llegar a su destino. Por tanto, para que un
datagrama llegue sin fragmentación al destino, ha de ser menor o igual que el
mínimo MTU de las redes por las que pase.
$($²)($² ²
Lamentablemente, cada vez más redes bloquean todo el tráfico ICMP (p.ej.
para evitar ataques de denegación de Servicio - DoS (Denial of Service), lo que
impide que funcione el descubrimiento del camino MTU. A menudo podemos
detectar estos bloqueos cuando la conexión funciona para un bajo tráfico de
datos, pero se bloquea tan pronto como un host envía un blo que grande de
datos de una vez. También, en una red IP el "camino" desde el origen al
destino a menudo se modifica dinámicamente, como respuesta a sucesos
variados (balanceo de carga, congestión, etc.); esto puede hacer que el camino
MTU cambie (a veces repetidamente) durante una transmisión, lo que puede
introducir que los paquetes siguientes sean desechados antes de que el host
encuentre un nuevo camino MTU fiable.
La mayoría de las redes de área local ethernet usan una MTU de 1500 bytes.
V l P P tl
m
il El .
" l
t l
l
t í
ti
l
tlí
. Ei
t
it i
f t i .
"
i , i
,
t
t l t i
i i l
t
ti
t .
E
t
, l t l t
ii l
f t l
t
l t l . "
, ll
>
,
i l
i
l
li i .
" f t i
li t l
t t
l
t t
l
i
tii l
t
í. f t ,
t
l
t ll l
t
ti, l
t t
t
it . "
t
i l
t
t
,
l f t íi t
. El
itifi i l IP
l
emisor para marcar cada paquete emitido. De esta forma, en caso de que se
produzca fragmentación, el receptor podrá reconocer las partes que
corresponden al mismo paquete, ya que todas irán acompañadas de la misma
identificación. El bit DF cuando está en 1 indica a los routers que este paquete
no debe fragmentarse, situación que normalmente se hace por uno de los dos
motivos siguientes:
.*² /+ *²²
*-² ²
A medida que los datos son encaminados por la red deben pasar a través de
múltiples routers. Idealmente, cada segmento de datos debería pasar por todos
los routers sin ser fragmentado. Si el tamaño del segmento de datos es
demasiado grande para cualquiera de los routers intermedios, los segmentos
son fragmentados. Esto aminora la velocidad de conexión, y en algunos casos
esta bajada de velocidad puede ser muy apreciable. La posibilidad de que
ocurra esa fragmentación puede ser minimizada manteniendo el MSS tan
pequeño como sea razonablemente posible. En la mayoría de los casos, el
MSS es establecido automáticamente por el sistema operativo.
Los segmentos TCP son los mensajes que llevan los datos entre los
dispositivos de TCP. El campo de datos es donde los datos reales que se
transmiten se lleva, y dado que la longitud del campo de datos en TCP es
variable, se plantea una cuestión interesante: la cantidad de datos que
ponemos en cada segmento. Con los protocolos que aceptan datos en bloques
de las capas superiores no es tanto de una pregunta, pero TCP acepta los
datos como un flujo constante de las aplicac iones que lo utilizan. Esto significa
que debe decidir cuántos bytes de poner en cada mensaje que envía.
Además de los dictados del tamaño de la ventana actual, cada dispositivo TCP
también está asociada con un límite máximo del tamaño de TCP a un tamaño
de segmento que nunca será superado sin importar cuán grande es la ventana
actual. Esto se conoce el
: Al decidir la
cantidad de datos para poner en un segmento, cada dispositivo de la conexión
TCP se elige la cantidad basándose en el tamaño de la ventana actual, en
relación con los diferentes algoritmos descritos en la sección de fiabilidad, pero
nunca será tan grande que la ca ntidad de datos superior a los manuscritos del
dispositivo al que está enviando.
!
0 *²²
*²²
²
²1)²²²²2%$² ²
Si un paquete de 2.3 bytes entra en una red Ethernet con un tamaño de MTU
por defecto, debe ser fragmentada en dos paquetes.
El primer paquete:
El segundo paquete:
"²²²2%$²²2%² ²
Esto se hace trampas con el valor del offset del fragmento. El truco está en
ajustar el valor del offset del fragmento en el segundo paquete de tan baja que,
en lugar de añadir el segundo paquete a paquete de la primera, en realidad,
sobrescribe los datos 3 parte de la cabecera TCP del primer paquete.
Digamos que usted quiere `telnet» en una red en la cual el puerto TCP 23 está
bloqueado por un cortafuegos de filtrado de paquetes. Sin embargo, SMTP
puerto 25 está permitido en la red.
/
El firewall de filtrado de paque tes que el offset del fragmento es superior a cero
en el segundo paquete. A partir de esos datos, se deduce que el segundo
paquete es un fragmento de otro paquete y no va a comprobar el segundo
paquete contra la norma establecida.
2