• No results found

Forwarding (DPF) y su implementación en INET. ... 126  5.3.3.3.  Problemas de PIM‐SM‐DPF en escenarios inter‐dominio ... 129 

5.3.3.4.  Solución  al  desdoblamiento  de  árboles  y  convergencia  de  ramas: 

Túneles unicast inter‐dominio ... 131  5.4.  Modelado de escenarios para simulación ... 136  5.4.1.  Modelado de topologías inter‐dominio ... 137  5.4.2.  Parametrización del modelo ... 139  5.4.2.1.  Buffers de los routers ... 139  5.4.2.2.  Retardo de proceso en los routers ... 140  5.4.3.  Generación de escenarios mediante ReaSE ... 141  5.4.3.1.  Selección de parámetros de generación ... 142  5.4.3.2.  Generación de tráfico ... 143  5.4.4.  Casos de simulación ... 143  5.4.4.1.  Parámetros de configuración ... 143  5.4.4.2.  Casos de simulación unicast ... 145  5.4.4.3.  Casos de simulación multicast ... 145 

   

5.1.

Introducción 

 

El trabajo que se recoge en este capítulo consta de varias partes. En primer  lugar y una vez se ha decidido realizar simulaciones con PIM‐SM sobre escenarios 

inter‐dominio, se ha seleccionado la herramienta de simulación de redes OMNeT++ 

tras realizar una comparativa de las opciones de software disponibles. Una vez hecho  esto se ha modelado PIM‐SM en base a la definición original del protocolo en IETF. El 

modelado  funcional  y  estructural  del  protocolo  se  ha  traducido  a  un  modelo 

estructural  más  refinado  de  clases,  módulos  y  objetos  dentro  del  modelo  de 

simulación de OMNeT++. Para realizar simulaciones ha sido necesario modelar a su vez 

los  escenarios  de  simulación.  Se  han  establecido  rangos  de  parámetros  de 

configuración y elaborado tablas resumen con los valores usados en las instancias de 

ejecución.  Con  los  escenarios  generados  y  configurados  se  han  ejecutados 

simulaciones, de las que se han extraído conclusiones acerca de la operación de PIM‐ SM en escenarios inter‐dominio.  

 

Al llegar a este punto del estudio hay que aclarar un aspecto de enfoque. Tal y  como se ha visto al realizar el estudio detallado de los protocolos de encaminamiento 

multicast, PIM‐SM funciona correctamente en escenarios completos inter‐dominio. 

Estos escenarios cuentan con una serie de características específicas que no se dan en 

los  dominios  cerrados.  Estas  características  imponen  una  serie  de  capacidades 

adicionales para la correcta operación de PIM‐SM y en general de protocolos multicast 

que  se  basen  para  funcionar  en  la  información  contenida  en  las  tablas  de 

encaminamiento  unicast.  Las  capacidades  adicionales  son  cubiertas  a  través  de 

protocolos de soporte, que se encargan de recopilar información topológica y distribuir  rutas entre los dominios, manteniendo bases de datos multicast o MRIBs (multicast 

routing information base). No obstante, la ejecución de protocolos adicionales y el  llenado y mantenimiento de la información de rutas en las MRIBs conlleva una carga 

adicional  de  proceso  y  de  almacenamiento.  Simultáneamente,  es  necesaria 

información  lo  suficientemente  detallada  acerca  de  la  topología  de  las  redes 

involucradas en las sesiones multicast para permitir un procesado correcto de las rutas 

multicast.  Esta  información  no  la  suelen  exponer  al  exterior  de  sus  redes  los 

operadores de red.   

Por los aspectos descritos y para contribuir a la simplificación de la operación  de PIM‐SM en escenarios inter‐dominio, a la vez que se elimina la dependencia de 

información  topológica  detallada,  se  han  realizado  modificaciones  sobre  PIM‐SM 

estándar para solventar las siguientes características de escenarios inter‐dominio sin  emplear protocolos de soporte: 

 

• Aislamiento de dominios: el mecanismo de exportación selectiva de prefijos de  red en los dominios de tránsito hace que se generen “muros” entre diversas  zonas de la red inter‐dominio para uno u otro sentido de la comunicación a 

través  de  determinados  dominios  de  tránsito.  Esto  genera  el  siguiente 

problema. 

• Rutas asimétricas para conectar puntos situados en dominios diferentes: dos  puntos fijos en dominios distintos pueden tener rutas en el espacio inter‐ dominio que circulen por dominios separados para el sentido de ida y el de  vuelta de los paquetes, por lo que el algoritmo de creación de árboles de PIM‐ SM basado en RFP fallará ante esta situación.  

 

• Rutas múltiples: paralelamente a las rutas asimétricas, entre un par de puntos 

de dominios diferentes puede haber en un mismo sentido de encaminamiento 

múltiples caminos alternativos simultáneos para ir del punto origen al punto  destino.  

   

Se hace hincapié en que estas particularidades de las redes inter‐dominio se  pueden cubrir empleando protocolos de soporte junto a PIM‐SM, y las modificaciones  realizadas en este proyecto tienen como objetivo simplificar el modelo general de  operación inter‐dominio y descargar la red en empleo de recursos de proceso y 

almacenamiento. 

 

En  el  siguiente  apartado  se  presenta  una  introducción  general  a  las 

herramientas  de  simulación de  eventos  discretos,  justificando  la  selección  de  la 

herramienta  OMNeT++  para  el  modelado  de  protocolos  y  simulaciones  de  este 

proyecto. Adicionalmente se describen herramientas de apoyo para la construcción de  escenarios y un framework específico para la simulación de protocolos de Internet.   

   

5.2.

Herramienta de simulación OMNeT++ 

5.2.1. Simulación de eventos discretos 

 

Las herramientas de simulación de eventos discretos, [46], son programas 

informáticos  que  permiten  simular  la  operación  de  un  sistema  mediante  la 

representación de ésta como una secuencia de eventos cronológicamente ordenados. 

Cada evento ocurre en un instante de tiempo y conlleva un cambio en el estado del  sistema. La transición entre eventos ocurre de forma instantánea. Entre cada par de  eventos consecutivos, el tiempo de simulación salta al comienzo del evento siguiente,  se actualiza el estado de las variables y vuelve a ocurrir un salto al instante (fijado  previamente) de comienzo del evento próximo. Estos saltos en el tiempo de simulación  son los que implican la denominación como “discretas” de estas herramientas. 

 

Para llevar a cabo su cometido estas herramientas cuentan con los siguientes 

componentes: 

 

o Variables  de  estado  que  definen  la  representación  del  sistema  en  cada 

o Lógica de operación para la modificación del estado en función de los eventos. 

o Un reloj que permite la planificación de la simulación, en las unidades de  tiempo que se definan, y los saltos instantáneos entre eventos consecutivos. 

o Una lista de eventos de simulación con al menos un elemento, el evento 

siguiente, definido por su instante de tiempo de inicio y tipo de evento. 

o Generadores de números aleatorios que permitan tener un comportamiento 

diferente en módulos similares dentro del sistema, como tiempos aleatorios en  el inicio de eventos. 

o Módulos para la recolección de estadísticas y resultados obtenidos durante las 

simulaciones. 

o Condición de finalización de la simulación, definida por diversos mecanismos, 

ya  sea tiempo de simulación,  tiempo  de  procesador,  número de eventos 

procesados, etc.   

 

Los simuladores de eventos discretos tienen distintos campos de aplicación:   

• Optimización del rendimiento en los procesos de una organización: estudiando 

las rutas de la información, viendo donde se generan cuellos de botella y  verificando  la  mejora  de  los  procesos  ante  cambios  en  la  distribución  y  modificación de dichas rutas. 

• Aplicaciones hospitalarias: mediante el modelado de un sistema que tenga en 

cuenta  las  especialidades  quirúrgicas,  tiempos  de  espera,  afluencia  de 

pacientes, distribución de salas de operación, variaciones en el tiempo de  atención por paciente, etc. 

• Evaluación de inversiones de capital: se realiza un modelado del mercado en el  que se va a invertir, se analiza y prueba el modelo contra datos históricos 

existentes.  Se  valida  el  modelo  e  introducen  cambios  para  simular  el 

comportamiento ante distintas opciones. 

• Simulación  de  redes:  permite  modelar  el  comportamiento  de  una  red 

calculando las interacciones entre las distintas entidades de red (hostsrouters

enlaces,  paquetes,  protocolos,  etc.),  usando  fórmulas  matemáticas  que 

describen el comportamiento de cada entidad.   

   

5.2.2. Herramientas de simulación de redes 

 

Dentro de las herramientas de simulación de eventos discretos existe una 

especificidad para simular sistemas dentro de sus distintos campos de aplicación. Las 

dedicadas a la simulación de redes permiten evaluar el comportamiento de redes 

informáticas  y  de  telecomunicaciones.  Esto  permite  estudiar  el  comportamiento 

dinámico de una red frente a la variación de distintos parámetros, como la carga de  tráfico, usuarios, puntos problemáticos, cuellos de botella, etc. Asimismo, se puede  estudiar cómo afecta a una red la introducción de un nuevo servicio, modificaciones de 

uno existente, alteración de la estructura de la red con incorporación o sustitución de  elementos físicos, viendo cómo evolucionan las prestaciones de la red en el proceso.   

Con estas herramientas se pueden evaluar protocolos de red existentes y crear,  cuando la herramienta lo permite, modificaciones y nuevos protocolos, de modo que  se puede estudiar la variación de parámetros de eficiencia de red ante las nuevas  condiciones. Esta es la funcionalidad que se va a aprovechar para el modelado y  análisis del protocolo PIM‐SM y realización de modificaciones. 

 

  Existen diversas alternativas en cuanto a simuladores de redes basados en 

eventos discretos,  tanto gratuitas como de pago. En [47] se encuentra un análisis de  algunas de ellas. A continuación se listan los simuladores analizados en el citado  documento junto con sus características principales: 

   

OPNET 

o Cuenta con multitud de librerías y miles de módulos para todo tipo de equipos 

y enlaces, con posibilidad de crear nuevos en lenguaje C. 

o Es un programa comercial, pero gratuito para las universidades.  o Funciona en sistemas Windows, Linux y Solaris. 

o Alto grado de realismo 

o Es lento simulando 

o Para muchas aplicaciones queda grande, es demasiado profesional 

o No es muy flexible, está más orientado a simular casos concretos y prácticos.   

OMNeT++ 

o Contiene los módulos básicos para los protocolos más habituales 

o Es muy extensible mediante la adición de módulos en C++, la creación de 

nuevos módulos y su integración es más sencilla que en otros simuladores. 

o Se distribuye bajo Licencia Pública Académica. 

o Hay versiones para Linux, Windows y Mac 

o Las simulaciones son rápidas 

o El grado de realismo es inferior a otras herramientas 

o Tiene pocos modelos de equipos y enlaces   

NS2 

o Contiene multitud de módulos que permiten definir escenarios basados en la 

pila TCP/IP, MPLS, redes inalámbricas, redes de satélite, unicast y multicast,  etc. 

o Los escenarios se definen mediante scripts en oTCL. 

o Es  de  código  abierto,  se  incorporan  continuamente  nuevos  módulos  y 

funcionalidades, estando en desarrollo la versión NS‐3. 

o Los objetos y módulos están programados en C++, es muy extensible. 

o Es  ampliamente  usado  en  grupos  de  investigación  y  existe  muchísima 

documentación.  

   

Durante la elaboración de este proyecto se encontraban disponibles para su  uso las tres herramientas listadas. De entre las tres opciones, se escogió OMNeT++, 

fundamentalmente por: su gran extensibilidad mediante la programación de nuevos 

módulos en C++; su distribución bajo licencia pública de uso, que permite aportes de  terceros no sólo dentro del ámbito universitario; y su soporte multiplataforma y  velocidad de ejecución de las simulaciones. A esto hay que añadir el concepto de  simulador base que se detalla en el siguiente apartado, el cual permite que OMNeT++  sea un núcleo básico sobre el que se añaden marcos de trabajo orientados a áreas  específicas de simulación, lo que permite contrastar resultados entre distintas áreas y 

hacer evaluaciones cruzadas. 

     

5.2.3. Simulador de redes OMNeT++ 

 

El simulador de eventos discretos OMNeT++, [48], está disponible desde 1997. 

La concepción de OMNeT++ fue implementar un simulador genérico que pudiera 

extenderse  modularmente  para  hacerlo  específico  para  áreas  como  redes  de 

comunicaciones, sistemas multiprocesador y sistemas distribuidos. Este entorno ha 

sido usado desde entonces probando su eficacia para simular colas en redes de 

comunicaciones,  redes  ad‐hoc,  inalámbricas,  peer‐to‐peer,  redes  de  conmutación 

óptica, redes de almacenamiento distribuido, etc.   

Lejos de ser punto en contra, es un punto a favor el hecho de que OMNeT sea  un simulador que ofrece un marco genérico para distintas áreas de simulación. Se  encuentran disponibles el código fuente y documentación, así como foros y listas de  correo para la colaboración entre usuarios. Esto permite extender el simulador base  mediante la adición de marcos de trabajo o frameworks, que añaden especificidad  para un área concreta de simulación. Los frameworks son en sí mismos extensibles  mediante la adición de nuevos módulos simples. 

 

El diseño de OMNeT++ se basa en los siguientes puntos:   

• Permitir simulaciones a gran escala, mediante modelos jerárquicos construidos 

con componentes reutilizables. 

• Una interfaz gráfica orientada a la depuración y verificación de los modelos 

implementados. 

• Estructura modular que permite extensibilidad y personalización, así como 

inclusión de componentes en aplicaciones más grandes de planificación de red. 

• Interfaces de datos abiertas, generando ficheros de definición y de resultados 

fácilmente interpretables y procesables por herramientas genéricas. 

• Proveer  un  entorno  de  desarrollo  integrado  que  facilita  el  desarrollo  de 

modelos y el análisis de resultados.   

La base del entorno de simulación es el núcleo o kernel. En éste se encuentran  programadas las funciones generales que permiten la extensión modular del programa  para la simulación en áreas específicas mediante herencia e interfaces en C++. Dentro 

de  cada  extensión  o  framework  específico  se  pueden  definir  los  modelos  de 

simulación. 

 

La  definición  de  modelos  en  OMNeT  se  lleva  a  cabo  de  forma  modular 

jerárquica. Existe un módulo principal, por ejemplo el módulo de red, que engloba  todos los elementos y relaciones existentes entre ellos. Debajo de este nivel, están los 

módulos compuestos, que integran sistemas y elementos físicos de la red, como 

pueden ser routers, servidores Webhosts de usuarios finales, enlaces inalámbricos,  etc. Y finalmente, en el nivel más bajo de la jerarquía se encuentran los módulos 

simples. Éstos implementan funciones concretas, como interfaces de red (punto‐a‐

punto, Ethernet,…), protocolos específicos (TCP, FTP,…), o canales para la conexión  entre módulos (enlaces de fibra, enlaces inalámbricos,…). Los módulos simples son la  base de los modelos definidos en OMNeT++, y están implementados en lenguaje C++.  La estructura modular descrita puede observarse en la figura 5.2‐1. 

   

 

Fig.  5.2‐1  Estructura modular de los modelos de OMNeT++. Fuente [48].   

 

Por otro lado, sólo se implementan en C++ los módulos simples. La definición  de los modelos de red y módulos compuestos se realiza mediante un lenguaje especial 

desarrollado para esta función, el lenguaje NED  (Network Description  Language). 

Mediante el  lenguaje NED se  establece la jerarquía modular,  la construcción de 

módulos compuestos y la asociación y conexión entre los elementos del modelo, así  como la definición de los canales de comunicación e interfaces de entrada y salida.   

Una vez se tienen definidos los módulos a usar, ya sean módulos existentes  previamente o creados para tal fin, se pasa definir topologías concretas sobre las que  realizar una configuración de elementos y módulos implicados. Una vez decididos los  rangos de parámetros, se crea un fichero inicialización de topología, por defecto  “OMNETPP.INI”, que contiene los valores concretos de cada parámetro a usar en cada 

experimento  y conjunto de medidas.  Se crean instancias concretas de ejecución, 

llamadas “RUN ‘X’”, y se ejecuta la simulación.   

A  lo  largo  de  la  simulación  se  van  produciendo  una  serie  de  eventos 

programados en el tiempo dentro de la cola de espera principal. Estos eventos pueden 

implementar bien mensajes entre los módulos simples o bien automensajes para 

simular temporizadores. La transmisión de mensajes se puede realizar entre módulos  directamente conectados, a través las interfaces directas entre módulos simples o los 

canales de comunicación entre objetos y módulos compuestos. También se pueden  transmitir mensajes directamente entre un par de módulos cualquiera en caso de ser  necesario hacer llamadas por ejemplo pasando varios niveles de jerarquía. 

 

Durante cada ejecución de la simulación se obtienen resultados de salida de los  distintos módulos así como colecciones de estadísticas, que se van almacenando en 

ficheros  escalares  y  vectoriales  para  su  posterior  procesado  y  visualización  en 

herramientas gráficas. Además  el proceso  de  ejecución permite  elegir  entre una 

interfaz textual muy rápida o una interfaz gráfica  más lenta pero  especialmente 

diseñada para la depuración, localización y corrección de fallos.   

La capacidad  de extensión y adición  de nuevos módulos es la que se ha  aprovechado para integrar la simulación del protocolo PIM‐SM y sus modificaciones de  operación. Es la razón fundamental de la elección de este simulador como herramienta  para el desarrollo del estudio. En la simulación y análisis de PIM‐SM se ha realizado 

mediante la extensión de módulos del framework INET, [49]. La construcción de 

topologías se ha llevado a cabo usando la herramienta auxiliar ReaSE. Se pasa a  describir ambos en el siguiente apartado. 

     

5.2.4. Framework INET y herramienta auxiliar ReaSE 

 

Estas dos herramientas son la base del trabajo presentado en lo que resta de  memoria. Para empezar se muestra la figura 5.2‐2 con la estructura de componentes 

que interaccionan en OMNeT++3.3, INET  Framework y  ReaSE. A continuación se 

explica su significado.   

 

 

Fig.  5.2‐2  Estructura de interrelación de OMNeT++3.3, INET y ReaSE   

 

  Las clases básicas que sirven de apoyo y definen el sistema de funcionamiento  de todo el conjunto son las provistas por el núcleo (kernel) de OMNeT++3.3. Dentro de  OMNeT se instalan el Framework INET para trabajar con la pila TCP/IP y ReaSE para la  generación de escenarios realistas con estructura de las redes de Internet. 

Por defecto INET sólo puede trabajar con jerarquías de red de un solo nivel y 

encaminamiento plano. ReaSE genera topologías jerárquicas y usa encaminamiento y 

asignación de direcciones igualmente jerárquico. Para que ambas herramientas sean 

interoperables, ReaSE aplica un parche a INET, que modifica sus características para 

permitir las operaciones mencionadas con redes jerárquicas. Por otra parte ReaSE 

permite generar independientemente de OMNeT topologías realistas con múltiples 

dominios, varios niveles de jerarquía a nivel de routers y adición de hosts finales y 

servidores.  Estas  topologías  tienen  un  formato  compatible  con  la  definición  de 

topologías .ned, por lo que se pueden integrar directamente en instancias de modelos  de INET y ser modificadas para añadir los elementos nuevos creados y adaptarlas a las  modificaciones del modelo base. 

     

5.2.4.1. Framework INET 

 

El framework INET, [49], es un paquete de extensión para OMNeT++ que  permite simular redes de telecomunicaciones. Al igual que el resto de extensiones de  OMNeT++, es de código abierto, y sigue la filosofía de diseño de OMNeT++ en la que se  desarrollan paquetes específicos para áreas de simulación como extensiones sobre el 

núcleo base. Este framework contiene modelos de simulación para varios protocolos 

de Internet, entre ellos UDP, TCP, SCTP, IP, Ethernet, PPP, IEEE 802.11, MPLS, OSPF,  etc. En principio, se puede definir e implantar cualquier pila de protocolos, usando  tanto IPv4 como IPv6, pero la implementación del protocolo IPv6 no está completa en  el momento de elaboración de este documento. 

 

La definición de escenarios de simulación se realiza con el mismo lenguaje NED  que usa el simulador base OMNeT++. Se pueden crear tantos niveles de jerarquía  como se desee entre módulos, pudiendo crearse escenarios de alta complejidad. No 

obstante, la velocidad de ejecución de la simulación decrece enormemente conforme 

se aumenta el número de nodos de la red.   

Los  mensajes  entre  módulos,  la  definición  de  conexiones  y  canales  de 

comunicación  son  idénticos  a  la  que  provee  OMNeT++,  siendo  estos  elementos 

modificaciones de los módulos base mediante herencia para implementar variedad de 

alternativas. Los canales definidos incluyen conexiones punto a punto, conexiones 

Ethernet, enlaces ópticos y enlaces inalámbricos.   

Los protocolos y módulos simples son integrados en módulos compuestos para 

obtener entidades de red de alto nivel, como son servidores Web, conmutadores, 

tarjetas de red, puntos de acceso inalámbrico, etc. Los módulos compuestos se pueden  reutilizar para distintos tipos de escenarios, por ejemplo un servidor Web puede usarse  en redes cableadas o inalámbricas. 

 

Los tipos de red que se pueden definir incluyen redes cableadas, como redes 

TCP/IP,  redes  MPLS, redes  ópticas  o  redes inalámbricas  802.11.  Las  políticas  de 

In document Neural coding with deep learning (Page 50-62)

Related documents