Conociendo OMNet++

35
Conociendo OMNet++ PRIMEROS PASOS Y DISEÑO DE RED Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Informática Ayudante: Aldo Navarrete Muñoz

Transcript of Conociendo OMNet++

Conociendo OMNet++

Conociendo OMNet++Primeros Pasos y Diseo de RedUniversidad de Santiago de ChileFacultad de IngenieraDepartamento de Ingeniera InformticaAyudante: Aldo Navarrete MuozContenidosQu es OMNet++?InstalacinAnalizando el problemaCreando un Proyecto en OMNet ++Diseando la RedQu es OMNet++?OMNet++ es un ambiente de simulacin de eventos discretos.Su principal funcin es la simulacin de redes de comunicacin, sin embargo, debido a su arquitectura flexible y genrica, es usado en otras reas como la simulacin de complejos sistemas IT o arquitecturas hardware.Principalmente su desarrollo involucra componentes programados en C++ y el uso de componentes y mdulos conocido como NED.

Instalacin

Ingresar a http://www.omnetpp.org/En la seccin Download, descargar OMNet++, se recomienda la versin 4.1 para Windows

Instalacin

Copiar el archivo en el directorio donde desea instalar la aplicacin, es recomendable guardarla en C:\OMNeT.Extraer el contenido en caso que este comprimido, asegrese de que el nombre del directorio es omnet-4.1 en caso de no ser as, cmbiele el nombre.Dentro de la carpeta de la aplicacin encontrar el archivo mingwenv.cmd, ejectela haciendo doble click.Se abrir la consola o BASH de OMNet++.En la consola deber ejecutar los siguientes comandos en orden:$./configuremake

InstalacinPara verificar la correcta instalacin de OMNet++ puede ejecutar alguno de los ejemplos que se encuentran incluidos mediante los siguientes comandos:cd samples/[Nombre de la carpeta que contiene el ejemplo]./[Nombre de la carpeta]

Por ejemplo, si deseamos ejecutar el ejemplo dyna contenido en la carpeta samples, solo basta ejecutar:cd samples/dyna, seguido de ./dynaInstalacinEl ejemplo se ejecutar presentando una interfaz para el ingreso de los datos de entrada del ejemplo.

InstalacinFinalmente se ejecutar la simulacin.De esta misma manera usted puede ejecutar sus proyectos.

Analizando el ProblemaAntes de dar inicio a un nuevo proyecto es necesario realizar una etapa previa recomendada, la cual involucra el tipo de red que ser, el protocolo utilizado, el modelo y el comportamiento de las capas, entre otras caractersticas. En otras palabras es recomendable generar un borrador de la red.Para comenzar con el pie derecho la simulacin de cualquier red esto es prudente realizar las siguientes preguntas:En qu modelo nos basaremos?Cmo se comunicarn las estaciones?Qu protocolo ser utilizado?Cul ser el control de flujo?,y POR QU?Analizando el ProblemaSupongamos que hemos decidido construir una red simple, donde nos preocuparemos de que dos estaciones se comuniquen, que presenten 3 capas del modelo OSI y que entre ellas se enven tramas con informacin.Aqu nacen las siguientes preguntas:Cules son las fases del modelo OSI?Cules sern elegidas para nuestra red?Cmo sern las tramas que sern enviadas?Cmo se comportar la red?Analizando el ProblemaCules son las fases del modelo OSI?El modelo OSI posee 7 fases, las cuales poseen distintas caractersticas. Como nuestra red ser simple consideraremos sus principales caractersticas:Capa de aplicacin: Acceso a BD, lectura de archivos, informacin que ser enviada a la estacin vecina.Capa de presentacin: Define la estructura de los datos a enviar.Capa de sesin: Control de comunicacin.Capa de transporte: Control de Flujo.Capa de red: Tratamiento de la informacin y enrutamiento.Capa de enlace: Formacin de tramas y envo.Capa fsica: Transmisin del flujo a travs del medio.Analizando el ProblemaCules sern elegidas para nuestra red?Como deseamos ocupar 3 capas del modelo OSI, definiremos las siguientes que sern suficientes para implementar la red sin alejarnos de la teora.Capa de aplicacin: Generacin de informacin y definicin de su estructura.Capa de red: Enrutamiento de tramas.Capa de enlace: Envo de tramas.

Tambin ser considerada una Capa fsica, pero no ser necesario programarla, esto ser explicado en el desarrollo de nuestro proyecto.Analizando el ProblemaCmo sern las tramas que sern enviadas?En general la estructura de datos que manejan las redes son cadenas de bits (0 y 1) denominados tramas, estas son encapsuladas con informacin extra, agregada en forma de bits al inicio y final de la trama, para dar a conocer informacin relacionada sobre la direccin de la trama, los bits de control de errores, la identificacin de la trama, tipo de trama, entre otras caractersticas.

Esto depende del protocolo que usaremos, en este caso nos conformaremos que nuestras tramas sean un cadena de bits de un largo determinado.

Analizando el ProblemaCmo se comportar la red?Con las preguntas ya respondidas es posible darle un objetivo a la red definiendo su comportamiento:La red en su capa de aplicacin generar las tramas de bits de un largo determinado y las enviar a la capa de red, cuando la capa de aplicacin reciba una trama se encargar de eliminarla y generar una nueva trama para ser enviada.Al existir una sola estacin vecina no es necesario realizar un enrutamiento de la trama, por lo que la informacin recibida desde la capa de enlace ser traspasada a la capa de aplicacin, y cuando proceda de la capa de aplicacin la trama pasar a la cada de enlace.Finalmente la capa de enlace enviar a travs de la capa fsica las tramas a la otra estacin, y al recibir una trama la entregar a la capa de red.Analizando el ProblemaFinalmente para encapsular toda la idea del futuro proyecto es recomendable realizar un boceto con el comportamiento de cada capa en un lenguaje de alto nivel.APPREDENCGenerar TramaSi llega trama:EliminarGenerar TramaAPPREDENCSi trama viene desde APP:Enviar a ENCSino:Enviar a APPSi trama viene desde FISICO:Enviar a REDSino:Enviar a FISICOCreando un Proyecto en OMNet ++Una vez que se defini la red a simular es tiempo de iniciar un proyecto en OMNet++. Para esto lo primero es abrir la consola de OMNet++ (mingwenv.cmd) y ejecutar el comando $ omnetpp

Creando un Proyecto en OMNet ++Lo primero que la aplicacin exigir es la ubicacin del espacio de trabajo, es decir, la carpeta donde sern guardados los proyectos, por defecto la aplicacin determina a la carpeta samples, se recomienda ocupar la misma.

Creando un Proyecto en OMNet ++A continuacin la aplicacin se desplegar, dando a conocer en la barra Project Explorer, todos los proyectos que se encuentra en el espacio de trabajo. Usted puede abrirlos e investigar lneas de cdigo y distintas implementaciones.Para crear un proyecto debe hacer click en el icono NEW

Creando un Proyecto en OMNet++En la ventana New desplegamos la carpeta OMNEt++, seleccionamos la opcin OMNet++ Project y damos Next.Luego nombramos nuestro proyecto con las casillas seleccionadas por defecto como muestra la imagen.

Creando un Proyecto en OMNet ++Enseguida seleccionamos la opcin Empty Project, una vez usted este ms familiarizado con el modo de trabajo de la aplicacin puede elegir la alternativa que le sigue, pero a fines de este proyecto ser elegida la opcin que muestra la imagen:

Creando un Proyecto en OMNet ++A continuacin solo basta dar Next a la siguiente vista y Finish despus, procurando que las opciones se mantengan como muestran las imgenes. Luego nuestro proyecto estar creado.

Diseando la RedOMNet++ trabaja con 2 lenguajes, por lo que la construccin de una simulacin se divide en su diseo y en su programacin finalmente.Para esta primera parte ser utilizado el lenguaje NED, el cual se encargar de la apariencia y definicin de variables de cada componente de la red.Es necesario entender que los componentes NED que ms nos importan son:Mdulos simples: Unidad bsica de la simulacinMdulos compuestos: Contiene mdulos simples, la comunicacin y los parmetros que sern entregados a cada modulo simple.Mdulo de Red: Contiene mdulos compuestos, la comunicacin entre ellos y recibe los parmetros para cada modulo compuesto.Diseando la RedLa forma de trabajar es disear primero aquellos mdulos simples que darn forma a los compuestos y estos ltimos a la red general. Por lo tanto, se disea desde una perspectiva especfica a una general, que funcionar en base a como se programen los mdulos simples.En este punto usaremos el borrador que se realiz anteriormente para hacer una analoga y determinar nuestros componentesAPPREDENCAPPREDENCMDULO SIMPLEMDULO SIMPLEMDULO SIMPLEMDULO SIMPLEMDULO SIMPLEMDULO SIMPLEMDULO DE REDMDULO COMPUESTOMDULO COMPUESTODiseando la RedComo ya analizamos, una capa del modelo OSI en OMNet++ es un mdulo simple, por lo tanto comenzaremos por crear una capa a modo de ejemplo, en este caso la capa de red.

Sobre la carpeta de nuestro proyecto presionamos click derecho, elegimos NEW y finalmente seleccionamos Network Description File (NED)Diseando la Red

Diseando la Red

Diseando la Red

Diseando la RedAPPREDENC

Diseando la RedAPPREDENC

Diseando la RedEs necesario recordar que parameters son aquellas variables que el usuario ingresar y que son necesarias para que la capa en particular cumpla su funcionamiento.

Por ejemplo, si diseamos una red que le solicite al usuario ingresar 10 parmetros distintos. Lo ms probable es que solamente una porcin de estas entradas sean necesarias para una o ms capas, y es lgico, ya que la capa de enlace no necesita de un dato que este relacionado con la direccin de la trama, pero si es necesario para la capa de red que se encarga del enrutamiento.

Por otra parte gates son las compuertas donde la capa o el modulo simple recibe y enva datos, es recomendable que su denominacin sea clara, puesto que al momento de programar es importante conocer hacia donde apunta cada compuerta.Diseando la RedUna vez diseadas las capas de las estaciones, es tiempo de crear la estacin, la cual contiene estos 3 mdulos simples y por lo tanto, la estacin ser un mdulo compuesto.

Diseando la RedAl crear un modulo compuesto la aplicacin muestra un contenedor donde arrastremos las capas o mdulos simples que contendr ubicados en el sector izquierdo de la interfaz.

Diseando la RedUna vez colocados los mdulos simples en el mdulo compuesto, es necesario establecer la comunicacin entre ellos en base a las gates declaras anteriormente, para esto se utiliza la herramienta Connection

Diseando la RedPara ocupar la herramienta Connection basta con seleccionarla, hacer click en una capa y luego nuevamente en la capa con la que queremos establecer una conexin, y enseguida seleccionamos la comunicacin entre las gates declaradas anteriormente.

Diseando la RedComo es posible ver, la capa de enlace necesita apuntar al exterior, sus compuertas necesitan comunicarse al exterior, es decir, a la estacin vecina, para esto es necesario declarar las gates de la capa fsica que no es un modulo simple, ya que tericamente hablando, esta no posee mayor lgica que facilitar el envo de las tramas. La capa fsica, sus gates, son declaradas en el mdulo compuesto, en la estacin.

Al ingresar al cdigo fuente de la estacin, es posible ver que la aplicacin ha generado el cdigo correspondiente al diseo realizado en la interfaz.

APPREDENC

APPREDENCDiseando la RedUna vez declaradas las gates de la estacin, podemos realizar la comunicacin final, como se hizo anteriormente.

Diseando la RedLas variables declaradas en los parameters de la estacin son todos los datos con los que trabajarn los mdulos simples o capas, puesto que la estacin recibir los datos y los entregar a cada sub-mdulo simple segn corresponda y que hayan sido declarados en las capas.

Finalmente queda disear toda la red que contendr a las estaciones (mdulos compuestos) y a su vez a las capas (mdulos simples).

La red ser un mdulo compuesto que ser diseada de igual forma que los casos anteriores y se agregar un canal y un componente Network, el cual finalmente solicitar al usuario los datos de entrada.

Diseando la RedUna vez terminado el diseo de nuestra red es necesario crear el archivo de inicializacin de la red el cual ser ejecutado al momento de iniciar la simulacin.

Diseando la RedDe esta forma termina el diseo de nuestra red, hasta el momento se han declarado los parmetros y compuertas que permitirn la comunicacin dentro de la red.

Solamente queda la programacin de los mdulos simples, y solamente de estos, ya que el comportamiento de las estaciones y por lo tanto de la red, dependen de cmo determinemos la funcionalidad de las capas.

La lgica de las capas ser mediante el lenguaje C++.FIN