curso omnet.pdf
Transcript of curso omnet.pdf
![Page 1: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/1.jpg)
OMNeT ++
Ing. Soraya Sinche, Msc. Mayo 2013
![Page 2: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/2.jpg)
AGENDA
INTRODUCCIÓN ELEMENTOS DEL SIMULADOR INSTALACIÓN LENGUAJE NED MÓDULOS SIMPLES EJEMPLOS
![Page 3: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/3.jpg)
INTRODUCCION
Existen tres técnicas para evaluar el desempeño de sistemas y redes:
Análisis Matemático
Medidas
Simulación computacional
La simulación es particularmente usada para sistemas que son altamente dinámicos y cuyas propiedades son difíciles de capturar en un análisis matemático.
![Page 4: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/4.jpg)
Introducción
Simulación de Eventos Discretos
Se utiliza para hacer la investigación sobre todas las capas de una red.
Provee un camino simple y flexible para evaluar el comportamiento de la red bajo diferentes condiciones.
![Page 5: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/5.jpg)
Principios de la Simulación de Eventos Discretos
La idea de un simulador de eventos discretos es saltar desde un evento al siguiente, por lo cual la ocurrencia de un evento puede desencadenar cambios en el estado del sistema asi como la generacion de nuevos estados, denominados event notices.
Los eventos son registrados como event notices en la FEL (Future Event List), la cual es una estructura apropiada de datos para administrar todos los eventos en este tipo de simulaciones.
t1 t2 ti ti+1 ti+2
![Page 6: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/6.jpg)
Principios de la Simulación de Eventos Discretos
Todo simulador de eventos discretos comparten los siguientes componentes:
Estado del Sistema: Conjunto de variables que definen el estado del sistema.
Reloj: Da la hora actual durante la simulación
Lista de eventos futuros (FEL)
Contadores estadisticos: Conjunto de variables que contiene información de las estadísticas del rendimiento del sistema.
Rutina de Inicializacion: Inicializa el modelo y configura el reloj a 0.
Rutina de Temporizacion: recupera el proximo evento del FEL y avanza el reloj al tiempo que ocurre el evento.
Rutina del Evento: es llamada cuando un evento particular ocurre durante la simulación.
![Page 7: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/7.jpg)
Diagrama de Flujo de una Simulación de Eventos Discretos
INICIO
FIN
Inicialización
Selección del Próximo Evento
Rutina Evento 1 Rutina Evento 2 Rutina Evento k
Termina?
Datos de Salida
No
Si
![Page 8: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/8.jpg)
Terminología y componentes de una Simulación
Entidad: es una abstracción de un tema particular de interés
Se describe por sus atributos, por ejemplo, una entidad paquete debería tener como atributos: longitud, dirección destino y origen.
Sistema: se define como un conjunto de entidades y su interrelación
Tiene un determinado objetivo que pretende lograr.
Por ejemplo una red puede ser definida por las entidades hosts, routers y enlaces, siendo su objetivo proveer de conectividad end-to-end.
![Page 9: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/9.jpg)
Terminología y componentes de una Simulación
Sistema Discreto: es un sistema cuyo estado, definido por el estado de todas las entidades del sistema, cambia solamente en puntos discretos en el tiempo.
Modelo: es una abstracción del sistema.
Por lo tanto esta formado por determinadas entidades de interés del sistema y la selección de las relaciones entre las entidades.
![Page 10: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/10.jpg)
OMNeT++
OMNeT++ (Objective Modular Network Testbed in C++)
Es un simulador de eventos discretos.
Su área de acción es el campo de las redes de comunicaciones.
Esta compuesto por:
kernel del simulador
GUI: Gráfico (tkenv) o texto (cmdenv)
Simulation Class library
![Page 11: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/11.jpg)
OMNeT++ Puede ser usado en varios ámbitos:
– Modelado de redes de comunicación Cableadas e Inalámbricas
– Modelado de Protocolos
– Modelado de Colas
– Modelado de multiprocesos, sistemas distribuidos.
– Evaluación del desempeño de sistemas
– En general, modelado y simulación de cualquier sistema basado en eventos discretos que permitan el intercambio de mensajes.
![Page 12: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/12.jpg)
La Simulación IDE Una importante parte de OMNeT++ es la Simulación basada en
Eclipse (IDE).
Para simplificar el desarrollo de plug-ins, la simulación IDE carga plug-ins de proyectos de usuarios tales como INET o
MiXiM.
![Page 13: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/13.jpg)
La Simulación IDE
Los siguientes grandes frameworks han sido desarrollados para OMNeT++:
– INET: contiene modelos para varios protocolos Internet tales como UDP, TCP, SCTP, IP, IPv6, Ethernet, PPP, MPLS, OSPF, IEEE 802.11
– INETMANET: Para soporte de protocolos de redes moviles.
– MiXiM: soporta simulaciones de redes inalámbricas y móviles
– Castalia: para redes de sensores inalambricos.
![Page 14: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/14.jpg)
Editor NED
El editor NED puede editar archivos en modo grafico o en modo texto.
El usuario puede conmutar entre los modos en cualquier momento.
![Page 15: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/15.jpg)
Editor de archivos INI
El editor de archivos INI permite al usuario configurar los modelos de simulación para la ejecución. Esta basado en formularios y edición de origen.
![Page 16: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/16.jpg)
Editor de archivos INI
![Page 17: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/17.jpg)
Configuración de la Simulación
![Page 18: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/18.jpg)
Instalación
OMNeT++ es soportado en los siguientes sistemas operativos:
Windows 7, 8 y XP
Mac OS X 10.7 y 10.8
Distribuciones de Linux tales como:
Ubuntu 12.04 LTS, 13.04
Fedora Core 18
Red Hat Enterprise Linux Desktop Workstation 6.4
OpenSUSE 12.3
![Page 19: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/19.jpg)
Instalación
La simulación IDE puede usarse en las siguientes plataformas:
Linux x86 32/64-bit
Windows 7, 8 y XP
Mac OS X 10.7 y 10.8
OMNeT++ requiere varios paquetes para ser instalado en un computador. Entre estos paquetes se incluye el compilador C++ (gcc).
![Page 20: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/20.jpg)
Instalación Ubuntus
Se instalará Ubuntus 10.04, para lo cual se utilizará el programa wubi.exe para realizar la instalación desde windows.
Al ejecutar este programa se va a seleccionar el realease 12.04.2 LTS.
Se escoge el espacio a ser usado para esta instalación por ejemplo 25 Gbytes.
![Page 21: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/21.jpg)
Instalación Ubuntus ls → Lista los ficheros de un directorio.
ls -l → Lista ficheros con atributos
ls -la → Lista ficheros incluidos los ocultos
cd nom_directorio → Cambia de directorio
ls -la | more → lista ficheros con paginación
mv [ruta1]fichero1 [ruta2]fichero2 → Mueve y/o renombra un directorio.
rm archivo o directorio → Elimina archivos o directorios
rm -r directorio → Borra un directorio recursivamente
cp archivo1 archivo2 → Realiza una copia de un fichero
mkdir → crea un directorio
rmdir → borra un directorio
![Page 22: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/22.jpg)
Instalación Ubuntus Los comandos que se usan para actualizar paquetes
en Ubuntu:
– Instalar un paquete
sudo apt-get install
– Instalar un paquete desde el lector de cds
sudo apt-cdrom install
– Actualizar paquetes (o recargar repositorios)
sudo apt-get update
– Actualizar todos los paquetes instalados
sudo apt-get upgrade
– Desinstalar un programa/aplicación/paquete
sudo apt-get remove
![Page 23: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/23.jpg)
Instalación en Ubuntus Antes de iniciar la instalación, es necesario refrescar
la base de datos de paquetes disponible, para lo cual en el terminal se ingresa la linea de comando:
$ sudo apt-get update
Para instalar los paquetes requerido, se debe escribir en el terminal el siguiente comando:
$ sudo apt-get install build-essential gcc g++ bison flex perl \ tcl-dev tk-dev blt libxml2-dev zlib1g-dev default-jre \ doxygen graphviz libwebkitgtk-1.0-0 openmpi-bin libopenmpi-dev libpcap-dev
![Page 24: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/24.jpg)
Instalación en Ubuntus
![Page 25: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/25.jpg)
Proceso de Instalación de OMNeT++
Se puede descargar OMNeT++ desde la dirección http://omnetpp.org.
Para Linux el archivo a descargar es:
omnetpp-4.3-src.tgz.
Es necesario copiar el archivo en el directorio donde se desea realizar la instalación (/home/<you>)
Es necesario abrir un terminal, y extraer el archivo usando el siguiente comando:
$ tar xvfz omnetpp-4.3-src.tgz
Este creará un subdirectorio omnetpp-4.3 que contiene los archivos OMNeT++.
![Page 26: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/26.jpg)
Proceso de Instalación de OMNeT++
OMNeT++ necesita que su directorio bin/ este en el path. Para añadir bin/ temporalmente, se debe cambiar al directorio OMNeT++ y colocar el siguiente comando:
$ cd omnetpp-4.3
$ . setenv
Para configurar de forma permanente los directorio con sus correspondientes paths es necesario editar .bashrc:
$ gedit ~/.bashrc
Al final del archivo se debe añadir lo siguiente:
export PATH=$PATH:$HOME/omnetpp-4.3/bin
export TCL_LIBRARY=/usr/share/tcltk/tcl8.5
Es necesario luego de guardar los cambios cerrar y reabrir el terminal.
![Page 27: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/27.jpg)
Configurando y Construyendo OMNeT++
En el nivel mas alto del directorio de OMNeT++, ejecutar: $ ./configure
![Page 28: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/28.jpg)
Configurando y Construyendo OMNeT++
$ make
![Page 29: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/29.jpg)
Luego de la Instalación ...
Para probar la instalación se puede ejecutar el siguiente ejemplo:
$ cd samples/dyna
$ ./dyna
Para iniciar el OMNeT++ desde el terminal:
$ omnetpp
Para habilitar acceso rápidos:
$ make install-menu-item
$ make install-desktop-icon
![Page 30: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/30.jpg)
Luego de la Instalación ... Instalación de Plug-in para ambiente de
desarrollo. Help → Install new software
![Page 31: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/31.jpg)
Luego de la Instalación ...
![Page 32: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/32.jpg)
Conceptos de Modelado Un modelo OMNeT++ consiste de módulos que se
comunican enviando mensajes:
– Módulos simples son escritos en C++, usando librerías de clases, pueden ser agrupados en módulos compuestos y así sucesivamente; el numero de niveles jerárquicos es ilimitado.
– Módulos compuestos están formados por un conjunto de módulos simples conectados entre si.
![Page 33: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/33.jpg)
Creación de Programas de Simulación
Un modelo OMNeT++ contiene las siguientes partes:
Descripción de topología de lenguaje NED. Archivos con extensión .ned.
Definición del mensaje, en archivos con extensión .msg.
Implementación de módulos simples y otro código C++ , en archivos .cc (o .cpp, en Windows)
![Page 34: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/34.jpg)
Ejecución de Simulaciones y Análisis de Resultados
La simulación puede ser compilada como un programa ejecutable independiente, o puede ser creada como una librería compartida.
Cuando se inicia un programa, primero se leen todos los archivos NED que contiene la topología del modelo, luego se lee el archivo de configuración (llamado comúnmente omnetpp.ini). Este archivo contiene la configuración que controla la forma como se ejecuta la simulación, valores para los parámetros del modelo, etc.
El resultado de la simulación se escribe en archivos de resultados: archivos de vectores, archivos de escalares, y posiblemente archivos propios de salida del usuario.
OMNeT++ contiene un Integrated Development Environment (IDE) que provee un ambiente para el análisis de estos archivos.
![Page 35: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/35.jpg)
Que está en la Distribución?
El directorio OMNeT++ contendrá los siguientes subdirectorios:
omnetpp/ OMNeT++ root directory
bin/ OMNeT++ executables
include/ header files for simulation models
lib/ library files
images/ icons and backgrounds for network graphics
doc/ manuals, readme files, license, APIs, etc.
migrate/ tools to help model migration from 3.x to 4.0 version
src/ OMNeT++ sources
test/ regression test suite
![Page 36: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/36.jpg)
Que está en la Distribución?
La simulación IDE basada en Eclipse se encuentra en el directorio :
ide/ Simulation IDE
features/ Eclipse feature definitions
plugins/ IDE plugins (extensions to the IDE can be dropped here)
...
Los ejemplos de simulación se encuentran en el directorio:
samples/ directories for sample simulations
aloha/ models the Aloha protocol
cqn/ Closed Queueing Network
![Page 37: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/37.jpg)
Lenguaje NED
El simulador utiliza el lenguaje de programación NED, basado en C++, como herramienta para modelar topologías de red.
Este lenguaje define la estructura de la red y facilita la descripción modular de una red.
Un modelo en OMNeT++ se construye con módulos jerárquicos mediante el lenguaje NED. Los cuales pueden contener estructuras complejas de datos y tienen sus propios parámetros usados para personalizar el envío de paquetes a los destinos a través de rutas, compuertas y conexiones.
![Page 38: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/38.jpg)
Lenguaje NED
Básicamente, con el lenguaje NED se definen tres tipos de módulos:
– Módulos simples
– Módulos compuestos
– Módulos de redes.
En los módulos de red se encuentran los componentes y especificaciones de la descripción de una red de comunicaciones.
![Page 39: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/39.jpg)
La herencia de las clases componente, módulo y el canal
![Page 40: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/40.jpg)
Lenguaje NED
La estructura de un archivo NED puede contener los siguientes componentes:
– Directivas import
• Permiten importar declaraciones de otros archivos ned.
• Funciona como una sentencia include en C++.
• Ejemplo:
– import "ethernet"; // imports ethernet.ned
![Page 41: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/41.jpg)
Lenguaje NED – Definiciones de canales:
• Especifica una conexión con características dadas. Su sintaxis es:
channel ChannelName
//...
endchannel
• Los parámetros a definir en un canal son: delay, error y datarate.
• Por ejemplo:
channel LeasedLine
delay 0.0018 // sec
error 1e-8
datarate 128000 // bit/sec
endchannel
![Page 42: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/42.jpg)
Lenguaje NED – Definiciones de Módulos simples
• Son las estructuras básicas para módulos más complejos, su sintaxis es:
simple SimpleModuleName
parameters:
//...
gates:
//...
endsimple
• Los parámetros de los módulos simples son definidos por quien los crea, y en general pueden ser numéricos, booleanas o strings. Los gates (puertas) son las entradas y salidas del módulo, por donde se transmiten los mensajes.
![Page 43: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/43.jpg)
Lenguaje NED
– Definiciones de Módulos simples
• Los parámetros son variables que pertenecen a un modulo. Puede requerir y usar algoritmos de módulos simples.
• Por ejemplo, un modulo llamado TrafficGen puede tener un parámetro denominado numOfMessages que determina cuantos mensajes se deberían generar.
• Son declarados haciendo una lista de sus nombres: sección de descripción de un modulo.
![Page 44: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/44.jpg)
Lenguaje NED
– Definiciones de Módulos simples
• Ejemplo: simple TrafficGen
Parameters:
InterarrivalTime,
numOfMessages : const,
address : string;
Gates: //...
endsimple
![Page 45: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/45.jpg)
Lenguaje NED – Definiciones de Módulos Compuestos
• Poseen los campos de un módulo simple, pueden agregar submódulos, y poseen conexiones entre ellos. La sintaxis es:
Module CompoundModule
parameters:
//...
gates:
//...
submodules:
//...
connections:
//...
endmodule
![Page 46: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/46.jpg)
Lenguaje NED – Definiciones de Módulos Compuestos
• Los submódulos son módulos simples de menor jerarquía
• Connections: Definen conexiones entre los submódulos definidos, o entre los submódulos y el exterior a través de las gates. Estas conexiones pueden realizarse mediante canales previamente definidos, o indicando sus características en la misma conexión.
– La sintaxis de las conexiones es:
entrada - -> channel - -> salida
![Page 47: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/47.jpg)
Lenguaje NED – Definiciones de Red
• La definición de red declara a la simulación
como una instancia de un modelo previo, lo cual permite finalmente que se ejecute la simulación. La sintaxis es:
network networkType : networkName
parameters:
//..
endnetwork
![Page 48: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/48.jpg)
Lenguaje C++
Para crear un módulo simple en C++ se debe utilizar la clase cSimpleModule.
Ésta, junto a la clase cCompoundModule, pertenece a la librería de OMNET++ y es derivada de la clase cModule.
cSimpleModule posee las siguientes funciones para poder crear dicho módulo simple:
– void initialize()
– void handleMessage(cMessage *msg)
– void activity()
– void finish()
![Page 49: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/49.jpg)
Lenguaje C++ La función initialize() es llamada en el paso de
inicialización, cuando OMNET++ construye la red, creando los módulos simples y complejos necesarios y conectándolos de acuerdo a las definiciones del archivo NED.
– initialize() crea los parámetros iniciales para el objeto creado.
HandleMessage y activity funcionan durante el proceso.
– HandleMessage es llamada cuando el módulo recibe un mensaje.
– La función activity es una solución basada en co-rutinas, la cual implementa el proceso de interacción (es siempre preferible utilizar handleMessage).
![Page 50: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/50.jpg)
Lenguaje C++ La función finish, es llamada cuando la función termina de
forma satisfactoria. Generalmente es usada para guardar las estadísticas vectoriales y escalares reunidas durante el proceso de simulación.
Los archivos que contienen estas funciones deben tener la extensión “.cc”.
Las variables que se usan en los ficheros “.cc” están declaradas en otro fichero creado a partir también de c++. Éste tipo de fichero tiene como extensión “.h”.
En él se crean las variables de funciones, variables de estadísticas y variables de parámetros
![Page 51: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/51.jpg)
Ficheros INI
Estos ficheros son fundamentales para realizar la simulación. En ellos se describen:
– Los parámetros característicos de la simulación
– El número de simulaciones a ejecutar.
– La duración de la simulación.
– El valor de los atributos de los módulos simples.
– Los ficheros donde se guardarán las estadísticas recogidas, etc.
La indicación de un parámetro de un módulo simple se realiza por orden jerárquico. Si se escribe el módulo que se va a utilizar y se finaliza con un punto (.), se mostrará una lista de los parámetros que se puede utilizar.
![Page 52: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/52.jpg)
Ficheros INI
Un ejemplo de un parámetro INI sería:
“modulodeRed.modulocompuesto.parametro” Dos_Nodosfijos_Adhoc_60metros.channelControl.carrierFrequency =
2.4GHz
También puede crearse rutas relativas con el asterisco en vez de rutas absolutas. Por ejemplo:
*.channelControl.carrierFrequency = 2.4GHz
**.HostServidor.wlan.mac.address = "10:00:00:00:00:00"
![Page 53: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/53.jpg)
Enlace con Eclipse Omnetpp → hep → Install New Software
![Page 54: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/54.jpg)
Simulación de Eventos Discretos
Un sistema de eventos discretos en un sistema donde los cambios de estados suceden en instancias de tiempo discretas. Sistemas que pueden ser vistos como sistemas de eventos discretos pueden ser modelados usando Simulación de Eventos Discretos (DES).
Por ejemplo, las redes de computadores son usualmente vistas como sistemas de eventos discretos. Algunos de los eventos son:
– Inicio de la transmisión de paquetes
– Fin de la transmisión de paquetes
– Expiración del temporizador de retransmisión
![Page 55: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/55.jpg)
Simulación de Eventos Discretos El tiempo cuando un evento ocurre se denomina
frecuentemente event timestamp.
Con OMNeT++ se usa el termino arrival time (porque en la clase library, la palabra “timestamp” se reserva para un atributo configurable por el usuario en el evento class).
El tiempo en el modelo es frecuentemente llamado tiempo de simulación, tiempo del modelo o tiempo virtual en lugar de tiempo real o tiempo de CPU que se refiere al tiempo que dura la simulación del programa y la cantidad de CPU consumida.
![Page 56: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/56.jpg)
Crear una Simulación Básica
Paso 1: Para crear una simulación básica en primer lugar se ingresa al ambiente visual de omnetpp.
![Page 57: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/57.jpg)
Crear una Simulación Básica
Paso 2: Se crea un nuevo Proyecto
![Page 58: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/58.jpg)
Crear una Simulación Básica
Paso 3: Se selecciona como vacío.
![Page 59: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/59.jpg)
Crear una Simulación Básica
Paso 4: Se crea un nuevo archivo NED.
![Page 60: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/60.jpg)
Crear una Simulación Básica
Paso 5: En este archivo se va a definir una red formada por dos computadores que se comunican entre si de modo full duplex.
![Page 61: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/61.jpg)
Crear una Simulación Básica
Paso 5: Dentro del archivo fuente de ned.ned se crea un modulo simple denominado computer.
simple computer {
gates: input in; output out;
}
![Page 62: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/62.jpg)
Crear una Simulación Básica
Paso 6: Dentro del archivo fuente de ned.ned se crea una red que contiene a los computadores.
network net {
submodules:
computer1: computer {
@display("p=47,59");
}
computer2: computer {
@display("p=221,59");
}
connections:
computer1.out --> computer2.in;
computer2.out --> computer1.in;
}
![Page 63: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/63.jpg)
Crear una Simulación Básica
Paso 7: Se crea el archivo de inicialización
![Page 64: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/64.jpg)
Crear una Simulación Básica
Paso 8: Se crea un archivo fuente con el nombre computer.cc
![Page 65: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/65.jpg)
Crear una Simulación Básica
Paso 9: Se construye el proyecto
Paso 10: Se procede a correr la simulación
![Page 66: curso omnet.pdf](https://reader038.fdocuments.ec/reader038/viewer/2022110203/55cf9b8a550346d033a67741/html5/thumbnails/66.jpg)
Demo INET Contiene diferentes ejemplos de demos de
simulación