Tabla de Contenidos
- Introducción
- Objetivos
- 1. Creación del Proyecto
- 2. Configuración de la Red
- 3. Configuración del Canal Personalizado
- 4. Generación del Archivo .ini
- 5. Ejecución de la Simulación
- 6. Módulos Utilizados en Este Laboratorio
- 7. Preguntas y Actividades Adicionales
- 8. Implementación de Aplicación UDP
- 9. Referencias
- 10. Ejecución de Múltiples Simulaciones
Introducción
En este laboratorio, los estudiantes aprenderán a incorporar un Switch Ethernet a una red existente y a implementar el protocolo TCP entre un cliente y un servidor utilizando las aplicaciones TcpBasicClientApp
y TcpGenericServerApp
. Al finalizar, los participantes comprenderán cómo configurar redes en OMNeT++ y cómo simular el tráfico TCP.
Objetivos
- Incorporar un Switch Ethernet a la red existente.
- Utilizar un canal personalizado basado en
DataRateChannel
. - Implementar el protocolo TCP entre un cliente y un servidor mediante las aplicaciones
TcpBasicClientApp
yTcpGenericServerApp
.
1. Creación del Proyecto
- Crear un nuevo proyecto vacío en OMNeT++ llamado
lab2EthSwitch
. - Establecer la referencia al proyecto
inet4.5
.
2. Configuración de la Red
- Crear un archivo NED vacío y nombrarlo
lab4.ned
. - Agregar un elemento
Network
, unipv4NetworkConfigurator
y dosStandardHost
en la red. - Renombrar el
ipv4NetworkConfigurator
aconfigurator
y los dos hosts aclient
yserver
respectivamente. - Insertar un elemento
ethernetSwitch
entre los dos hosts.
3. Configuración del Canal Personalizado
- Agregar un canal personalizado seleccionando
Channel
y luego haciendo clic en cualquier parte del lienzo.
- Renombrar el canal como
GigabitEthernet
. - Utilizar la conexión recién creada para conectar los dos hosts al Switch Ethernet.
- Modificar el canal
GigabitEthernet
en el código del archivo NED para que esté basado enDataRateChannel
, con los siguientes parámetros:
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.ethernet.EthernetSwitch;
import inet.node.inet.StandardHost;
network TwoHostSwitch
{
@display("bgb=422,228");
submodules:
configurator: Ipv4NetworkConfigurator {
@display("p=223,31");
}
client: StandardHost {
@display("p=93,161");
}
server: StandardHost {
@display("p=307,161");
}
ethernetSwitch: EthernetSwitch {
@display("p=200,104");
}
connections:
client.ethg++ <--> GigabitEthernet <--> ethernetSwitch.ethg++;
ethernetSwitch.ethg++ <--> GigabitEthernet <--> server.ethg++;
}
channel GigabitEthernet extends ned.DatarateChannel
{
datarate = 1Gbps;
delay = 1us;
ber = 1e-10;
}
4. Generación del Archivo .ini
- Para este laboratorio, se utilizarán las aplicaciones
TcpBasicClientApp
en el cliente yTcpGenericServerApp
en el servidor. - Limitar el tiempo de simulación a 600 segundos (10 minutos).
- Crear un archivo de inicialización vacío (
omnetpp.ini
) y añadir el siguiente código:
[Config AppTCP]
network = TwoHostSwitch
sim-time-limit = 600s
*.client.numApps = 1
*.client.app[0].typename = "TcpBasicClientApp"
*.client.app[0].connectAddress = "server"
*.client.app[0].connectPort = 10021
*.client.app[0].requestLength = 100B
*.client.app[0].replyLength = 100B
*.client.app[0].numRequestsPerSession = 2
*.client.app[0].thinkTime = 1s
*.client.app[0].idleInterval = 20s
*.server.numApps = 1
*.server.app[0].typename = "TcpGenericServerApp"
*.server.app[0].localAddress = "server"
*.server.app[0].localPort = 10021
*.server.app[0].replyDelay = 1s
5. Ejecución de la Simulación
- Correr la simulación en OMNeT++. Podrás ver los mensajes de las sesiones TCP que se establecen entre el cliente y el servidor.
6. Módulos Utilizados en Este Laboratorio
DatarateChannel
Las conexiones de red cableadas, por ejemplo, los cables Ethernet, se representan con conexiones OMNeT++ estándar utilizando el tipo DatarateChannel
NED. Los parámetros datarate
y delay
del canal deben proporcionarse para todas las conexiones cableadas.
Documentación de DatarateChannel
EthernetSwitch
EthernetSwitch
modela un conmutador Ethernet. Los conmutadores Ethernet desempeñan un papel importante en las LAN Ethernet modernas.
Documentación de EthernetSwitch
TcpBasicClientApp
Cliente para un protocolo genérico de tipo petición-respuesta sobre TCP. Puede utilizarse como modelo aproximado de usuarios HTTP o FTP.
Documentación de TcpBasicClientApp
TcpGenericServerApp
Aplicación de servidor genérico para modelar protocolos o aplicaciones del estilo petición-respuesta basadas en TCP.
Documentación de TcpGenericServerApp
7. Preguntas y Actividades Adicionales
- ¿Cuál es la secuencia de mensajes para el inicio y finalización de las sesiones TCP?
- ¿Qué host inicia y termina las sesiones en esta simulación?
- ¿Cuántos segmentos TCP se envían entre el cliente y el servidor en cada sesión?
- Aumente el valor del
requestLength
a 1024 bytes. Con esta nueva configuración, ¿cuántos segmentos TCP se enviarán entre el cliente y el servidor en cada sesión? Explique su respuesta. - Agregue un cliente y modele la generación de tráfico FTP hacia el servidor.
- Agregue un cliente y modele la generación de tráfico HTTP 1.1 hacia el servidor.
- ¿Cuál es el throughput del tráfico recibido por el cliente para cada aplicación? Sugerencia: utilice la estadística
packetReceived
.
8. Implementación de Aplicación UDP
Instrucciones
- Utilizando de referencia los laboratorios anteriores y la documentación del INET Framework, genere una simulación de tráfico UDP entre el cliente y el servidor.
- Utilice la aplicación
UdpBasicApp
en el cliente yUdpEchoApp
en el servidor.
9. Referencias
- Guía de Usuario de INET - Networks
- Guía de Usuario de INET - Applications
- Guía de Usuario de INET - The Ethernet Model
- Guía de Usuario de INET - Transport Protocols
10. Ejecución de Múltiples Simulaciones
Si deseas correr varias simulaciones con diferentes parámetros, agrega las siguientes líneas al archivo omnetpp.ini
:
repeat = 10 # Ejecuta la simulación 10 veces
Esto generará resultados múltiples que puedes analizar para obtener promedios, intervalos de confianza y otras métricas estadísticas.