Está en la página 1de 6

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN


ASIGNATURA: REDES DE COMPUTADORAS

Práctica de laboratorio No 5

Procesos de fragmentación en la capa de transporte

Nombres, Apellidos y
No de carnet

Horario : horas Fecha: / / Puesto No: Grupo No:


Nota del trabajo Desarrollo Nota de la práctica Nota del Lab.
previo

Observaciones a la práctica Firma del docente

----------------

Objetivos

• Conocer el proceso de fragmentación y re-ensamblaje en la capa de transporte

Trabajo previo

• Leer los temas relacionados al mecanismo de arranque lento y control de congestión, al igual que el algoritmo
de Nagle y la solución de Clark de la clase teórica.
• Leer en la VM de Linux usando el comando man, la aplicación ping y sus opciones posibles a utilizar
• Estudiar sobre la herramienta open source nuttcp y su uso en esta práctica (requisito necesario)
Medios y equipos

• Software emulador gráfico de redes GNS3 corriendo en una VM.


• Sistema operativo ubuntu corriendo en dos VM (wsk-norte y wsk-sur).
• Software analizador de protocolo de red Wireshark
• Libreta de anotación de experimentos para realizar esta práctica.

Introducción
Del trabajo previo asignado sobre la herramienta nuttcp se debe tener a mano lo investigado, ya que será la
herramienta que se empleará para observar el efecto de la fragmentación de IP en el tráfico UDP y TCP. La
fragmentación se produce cuando la capa de transporte envía un paquete de datos a la capa IP el cual excede a
la Unidad de Transmisión Máxima (MTU) de la red de enlace de datos subyacente. Por ejemplo, en las redes
Ethernet II (conocidas como Ethernet DIX), la MTU es de 1500 bytes. Si un datagrama IP excede el tamaño de la
MTU, el datagrama se fragmenta en múltiples datagramas o, si el indicador No Fragmentar (DF) se establece en
el encabezado IP, se descarta el datagrama y se devuelve un mensaje ICMP al remitente indicando el problema
que se tiene al no poder fragmentar dicho envío.

-1- Elaborado por: Prof. Jairo Fúnez Lira, ver 1.1, 2023
Guía de laboratorio #5 – Procesos de fragmentación en la capa de transporte

Primera asignación práctica: configuración del escenario a implementar


El escenario a implementar, consiste en hacer que dos enrutadores emulados dentro de GNS3, puedan conectar
a dos estaciones de trabajo ejecutando Linux (estas dos estaciones con Linux están en la computadora del labo-
ratorio), con la finalidad de poder enriquecer la experiencia de los entornos emulados y su comportamiento al
conectarlos al mundo físico, para ello se emplearán dos enrutadores y una conexión de tipo Cloud que hará las
veces de enlace entre la simulación y el mundo real.

Como un buen hábito, se debe realizar en el cuaderno de experimentos, una tabla en donde se reflejen las
IP de cada una de las interfaces de cada enrutador y/o computadora usada en el escenario:

La tabla de IP de la topología a implementar


WSK-NORTE R1 R2 PC2
Interface f0/0 10.1.5.5/24 10.1.5.1/24 30.3.5.1/24 30.3.5.5/24
Interface s0/0 20.2.5.1/30 20.2.5.2/30

En este laboratorio se usará ping para probar el proceso de fragmentación:

Configuración ya aplicada y funcionando en el enrutador R1:


Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet 0/0
R1(config-if)#ip address 10.1.5.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#no cdp run
R1(config)#interface serial 0/0
R1(config-if)#ip address 20.2.8.1 255.255.255.252
R1(config-if)#clock rate 512000
R1(config-if)#no shutdown
R1(config-if)#no cdp run
R1(config)#no ip domain-lookup
R1(config)#ip route 0.0.0.0 0.0.0.0 20.2.8.2
R1(config)#exit
R1#show ip interface brief
R1#show ip route
R1#copy running-config startup-config
R1#write memory

Elaborado por: Prof. Jairo Fúnez Lira, ver 1.1, 2023


Guía de laboratorio #5 – Procesos de fragmentación en la capa de transporte

Configuración a aplicar estación Linux llamada wsk-norte:


usuario@WSK-NORTE:~$sudo su
root@WSK-NORTE:~$apt install net-tools
root@WSK-NORTE:~$apt install nuttcp
root@WSK-NORTE:~$ip addr
root@WSK-NORTE:~$ip a del ____.____.____.____/___ dev ens33
root@WSK-NORTE:~$hostname -I
root@WSK-NORTE:~$ip a add 10.1.5.5/24 dev ens33
root@WSK-NORTE:~$netstat -rn
root@WSK-NORTE:~$route add default gw 10.1.5.1
root@WSK-NORTE:~$route -n
root@WSK-NORTE:~$ping –c 5 10.1.5.1
root@WSK-NORTE:~$sysctl –a | grep sack
root@WSK-NORTE:~$sysctl –w net.ipv4.tcp_sack=0

En este punto, ya se puede probar la efectividad de la configuración realizadas a la estación WSK-NORTE,


para ello, se hace un envío de ping desde la WSK-NORTE a RT2, si todo sale bien, se continúa con la prác-
tica.
root@WSK-NORTE:~$ping –c 5 30.3.5.1

Configuración ya aplicada y funcionando en el enrutador R2:


Router#configure terminal
Router(config)#hostname R2
R1(config)#interface FastEthernet 0/0
R1(config-if)#ip address 30.3.5.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#no cdp run
R1(config)#interface serial 0/0
R1(config-if)#ip address 20.2.8.2 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#no cdp run
R1(config)#no ip domain-lookup
R1(config)#ip route 0.0.0.0 0.0.0.0 20.2.8.1
R1(config)#exit
R1#show ip interface brief
R1#show ip route
R1#copy running-config startup-config
R1#write memory

Ahora corresponde, la configuración de la estación Linux llamada WSK-SUR:


usuario@WSK-SUR:~$sudo su
root@WSK-SUR:~$ip addr
root@WSK-SUR:~$apt install net-tools
root@WSK-SUR:~$apt install nuttcp
root@WSK-SUR:~$ip a del ____.____.____.____/___ dev ens33
root@WSK-SUR:~$hostname -I
root@WSK-SUR:~$ip a add 30.3.5.5/24 dev ens33
root@WSK-SUR:~$route -n
root@WSK-SUR:~$route add default gw 30.3.5.1
root@WSK-SUR:~$sysctl -a | grep sack
root@WSK-SUR:~$sysctl –w net.ipv4.tcp_sack=0
root@WSK-SUR:~$netstat -rn
root@WSK-SUR:~$ping –c 5 10.1.5.5

Elaborado por: Prof. Jairo Fúnez Lira, ver 1.1, 2023


Guía de laboratorio #5 – Procesos de fragmentación en la capa de transporte

Segunda asignación práctica: principio de fragmentación en UDP

Cuando un datagrama IP está fragmentado, su carga útil se divide a través de varios datagramas, cada uno
cumpliendo el límite impuesto por el MTU que se va encontrando en el camino, desde su origen hasta su destino.
Cada fragmento es un datagrama IP independiente y se enruta en la red independientemente de los otros frag-
mentos. La fragmentación puede ocurrir en el host de envío o en enrutadores intermedios. Los fragmentos se re-
ensamblan solamente en el host de destino.

Aunque la fragmentación de IP proporciona flexibilidad, ésta, puede ocultar las diferencias de tecnologías de
enlace de datos a las capas superiores, so pena a incurrir en gastos extras considerables para los equipos que
intervienen en su proceso y, por lo tanto, debe evitarse. TCP intenta evitar fragmentación con un esquema de
descubrimiento MTU de ruta de acceso que determina un tamaño de segmento máximo (MSS), que no da lugar
a fragmentación.

En esta parte, se va a exploran los problemas con la fragmentación IP de las transmisiones TCP y UDP en la
configuración de red mostrada en el inicio de la práctica, con WSK-NORTE como host de envío, WSK-SUR como
host receptor y R1 y R2 como enrutadores intermedios.

Lo primero que se hará será probar hacer fragmentación de UDP para ello se hace uso del comando de red ping,
para ello, se harán envío de paquetes en donde se irá incrementando el tamaño de los segmentos UDP hasta
que ocurra la fragmentación, luego se observará el header IP, el primer envio se hace con el tamaño por defecto
del ping, el cual es 56 bytes a nivel MAC.

root@WSK-NORTE:~$ping -c 5 30.3.5.5
root@WSK-NORTE:~$ping -c 5 -s 1000 30.3.5.5
root@WSK-NORTE:~$ping -c 5 –s 10000 30.3.5.5
root@WSK-NORTE:~$ping -c 5 –s 60000 30.3.5.5

- Explique en su reporte, el motivo del porqué el comando ping indica un valor de 64 byte y también 84
bytes para el mismo primer envío realizado. Además, explique en su reporte porqué se le suma 8 bytes
a los valores que se han declarado para los tamaños de envíos hechos.

Continuando con el experimento, lo que se hará ahora es usar a nuttcp con un tamaño que se irá incremen-
tando de poco a poco el tamaño en bytes del paquete declarado en la opción –l xxx (en donde xxxx lo debe-
rás sustituir por:256, 512, 1024, 2048 …) (es una letra ele para definir la palabra LOAD).
- Inicie Wireshark en el emulador GNS3, justamente en el enlace entre el HUB1 y la WSK-NORTE, inmedia-
tamente comience la transmisión de paquetes desde la WSK-NORTE hacia la WSK-SUR usando la siguiente
configuración (el puerto predeterminado de escucha es 5000):
root@WSK-SUR:~$nuttcp –S

root@WSK-NORTE:~$nuttcp –ts –l 256 –n 10 –u –D 30.3.5.5


root@WSK-NORTE:~$nuttcp –ts –l 512 –n 10 –u –D 30.3.5.5
root@WSK-NORTE:~$nuttcp –ts –l 1492 –n 10 –u –D 30.3.5.5
root@WSK-NORTE:~$nuttcp –ts –l 1504 –n 10 –u –D 30.3.5.5
- Detenga la captura de wireshark justo cuando el receptor comienza a responder que su buffer no
acepta ese tipo de envío. Analice los datos capturados, haga sus valoraciones y póngalo en el reporte.
- Determine el tamaño exacto del segmento UDP en que se produjo la fragmentación.
- Determine el tamaño del encabezado UDP.
- Determinar el tamaño máximo del segmento UDP que el sistema puede enviar y recibir, independiente-
mente de la fragmentación (es decir, la fragmentación de segmentos de datos se produce hasta un
punto más allá del cual el tamaño del segmento es demasiado grande para ser manejado por UDP.

Elaborado por: Prof. Jairo Fúnez Lira, ver 1.1, 2023


Guía de laboratorio #5 – Procesos de fragmentación en la capa de transporte

A partir de los datos de Wireshark guardados, seleccione un datagrama IP que esté fragmentado. Observe el
datagrama completo antes de la fragmentación e incluya todos los fragmentos después de la fragmentación.
Para cada fragmento de este datagrama, determine los valores de los campos del encabezado IP que se utilizan
para la fragmentación (identificación, desfragmentación de fragmentos, no fragmento de bits, más fragmentos
de bits).

Tercera asignación práctica: principios de fragmentación en TCP


Ahora que ya se ha experimentado con UDP, se va a tratar de comprender como TCP intenta evitar la fragmen-
tación en TCP, para ello implementarán los dos mecanismos siguientes:

• Cuando se establece una conexión TCP, se negocia el tamaño máximo de segmento (MSS) que se va a utilizar.
Tanto el cliente TCP como el servidor envían el MSS como una opción en el encabezado TCP del primer seg-
mento TCP transmitido. Cada lado establece el MSS para que no ocurre ninguna fragmentación en la interfaz de
red saliente, cuando éste transmite segmentos. El valor menor se adopta como valor MSS para la conexión.

• El intercambio de los MSS se dirige sólo en los hosts, no se aplica en los routers intermedios. Para determinar
la MTU más pequeña en la ruta desde el emisor al receptor, TCP emplea un método conocido como Path MTU
Discovery, que funciona de la siguiente manera. El remitente siempre establece el bit DF en todos los datagramas
IP. Cuando un enrutador necesita fragmentar un paquete IP con el conjunto de bit DF, descarta el paquete y
genera un mensaje de error ICMP de tipo "destino inaccesible; fragmentación necesaria”. Al recibir un mensaje
de error ICMP, el emisor TCP reduce el tamaño del segmento. Esto, continúa hasta que se determina un tamaño
de segmento que no activa un mensaje de error.

Ya que en los enrutadores intermedios no se negocian los MSS, se procede a hacer un primer envío usando el
MSS que por defecto emplea Ethernet (1500 bytes)

- Inicie Wireshark en el emulador en el enlace entre el HUB1 y la WSK-NORTE, inmediatamente comience la


transmisión de un envío TCP con los parámetros que a continuación se describen:

root@WSK-NORTE:~$nuttcp –ts –l 1024 –n 10 –D 30.3.5.5

- Detenga la captura de wireshark justo después de finalizare la transmisión y analice cual fue el valor
de MTU aplicado a dicha transmisión.

Ahora vamos a modificar los valores de MTU dentro de los enrutadores R1 y R2, para ello hacemos:

R1#configure terminal
R1(config)#interface serial 0/0
R1(config-if)#mtu 500
R1(config)#end

R2#configure terminal
R2(config)#interface serial 0/0
R2(config-if)#mtu 500
R2(config)#end

- Inicie Wireshark en el emulador en el enlace entre el HUB1 y la WSK-NORTE, inmediatamente comience la


transmisión de un envío TCP con los parámetros que a continuación se describen:

usuario@WSK-NORTE:~$sudo nuttcp –ts –l 128 –n 10 –D 30.3.5.5

Repita el paso anterior, incrementando el tamaño del segmento a: 256, 512, 1024 ... hasta que hayas ob-
servado la segmentación.

Elaborado por: Prof. Jairo Fúnez Lira, ver 1.1, 2023


Guía de laboratorio #5 – Procesos de fragmentación en la capa de transporte

- Detenga la captura de Wireshark , guarde lo capturado y proceda a colocar el MTU de los enrutado-
res en 1500 bytes (tienes que apagarlos y volverlos a encender en el emulador).

- Has logrado observar la fragmentación? ¿Si fue así, donde ocurrió? Explique sus observaciones
- Si has observado el mensaje de error ICMP, describe como fue usado el Path MTU Discovery, mira el
primer segmento que se envió desde que WSK-NORTE recibió el mensaje de error.

Recursos de apoyo para el mejor entendimiento de la práctica

Puede investigar un poco más sobre los protocolos que se cumplen en la realización de esta práctica como son:

a. RFC 768 (protocolo UDP)


b. RFC 793 (protocolo TCP)
c. RFC 813 (la solución de Clark)
d. RFC 896 (algoritmo de Nagle)
e. RFC 2001 (el mecanismo del arranque lento)
f. RFC 2581 (protocolo de gestión de la congestión)

Elaborado por: Prof. Jairo Fúnez Lira, ver 1.1, 2023

También podría gustarte