194 IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 2, APRIL 2010 AINE: an IP Network Emulator D . F. Piñas Abstract— AINE is emulation software to build a laboratory environment for real-time performance characterisation of networks and systems, particularly satellite communication systems. Although the AINE emulator was conceived with the specific purpose of satellite networks emulation, it is a generic IP emulation tool that can also emulate link layer algorithms. This tool was developed due to the lack of COTS emulation tools supporting the dynamic radio resource allocation schemes used in DVB-RCS networks. The paper describes the main features and development characteristics of the tool and presents results for complex techniques assessed using the emulator. Keywords— IP emulator, cross-layer, DVB-RCS networks. L I. INTRODUCCIÓN AS NUEVAS aplicaciones y servicios de comunicaciones que se despliegan hoy en día están utilizando cada vez más el mismo protocolo, IP, en el nivel de red; sin importar el tipo de comunicación: datos, voz o vídeo. Estos servicios y aplicaciones, se desarrollan y prueban en redes fijas de alta capacidad, con bajo retardo y muy pocos errores, pero se despliegan también en redes inalámbricas, que presentan errores por desvanecimiento de la señal radio e interferencias, menor capacidad y mayores retardos de propagación en el caso de los enlaces vía satélite. La emulación es una técnica muy efectiva en costes para reproducir de forma temprana, durante el desarrollo de los servicios y las aplicaciones, los efectos en el nivel IP de los problemas de los enlaces inalámbricos y así comprobar que las aplicaciones y servicios en desarrollo se ejecutan de forma óptima también en redes inalámbricas. La simulación de redes es una técnica que permite observar el comportamiento de una red de comunicaciones y los servicios y aplicaciones que soporta bajo diferentes condiciones en un entorno controlado [1]. Cuando la simulación se ejecuta en tiempo real, utilizando equipos, clientes y servidores reales, la técnica se denomina emulación de red [2]. Las herramientas disponibles para realizar emulaciones de redes IP se pueden clasificar en dos grupos [3]. Por una parte, software libre y por ello completamente extensible, pero que emula sólo funciones muy básicas, no está completamente documentado y que la mayoría de las veces se distribuye con licencias copyleft [4]. Por otra parte, productos propietarios muy sofisticados, tanto hardware como software, pero Los trabajos relacionados con el desarrollo de AINE para la evaluación de las prestaciones de técnicas cross-layer han sido desarrollados bajo el contrato ESA 19237/05/NL/AD bajo la responsabilidad de Indra Espacio y junto a la Universitat Politècnica de Catalunya (UPC) y la Universitat Autònoma de Barcelona (UAB). D. F. Piñas, trabaja en Indra Espacio,S.A, Barcelona, España, [email protected]. cerrados y limitados en cuanto a posibilidades de extensión y redistribución, con un coste de licencia, pero mejor documentados. El emulador de redes IP AINE ha sido desarrollado por Indra Espacio para dar respuesta a sus propias necesidades de emulación de redes IP vía satélite con suficiente grado de realismo, que no podían ser satisfechas con ninguna herramienta de emulación disponible en el mercado, como complemento y como parte de las actividades de Indra Espacio en AmerHis [5], “Applications layer Quality of Service for DVB-RCS systems” [6] (abreviado AppliQoS) e “IP friendly cross-layer optimization of adaptive satellite systems” [7] (abreviado xLayer), proyectos en los que era necesario evaluar el funcionamiento de las aplicaciones de Internet en redes vía satélite que usan el estándar DVB-RCS, ya sean regenerativas o transparentes, incluyendo la asignación dinámica de recursos radio (DAMA), los esquemas DiffServ de calidad de servicio (QoS), DVB-S2 y técnicas de adaptación cross-layer. Su funcionalidad ha sido significativamente realzada de forma independiente y en paralelo a estos proyectos. Las siguientes secciones detallan las características del emulador AINE, su utilización y los resultados obtenidos en la evaluación de técnicas cross-layer. II. ESTRUCTURA DE AINE A. Características de AINE AINE tiene las características siguientes: • Soporte de DVB-RCS: como resultado de los proyectos AppliQoS y xLayer, están disponibles modelos de sistemas DVB-RCS listos para ser utilizados. Destaca la capacidad de controlar las políticas de asignación de recursos CRA / RBDC / VBDC / FCA y de realizar medidas del aprovechamiento de los recursos asignados para cursar tráfico. • Emulación de protocolos del nivel 2: aunque los interfaces externos son IP sobre Ethernet, se soporta la emulación explícita de protocolos de nivel de enlace. El software modela la encapsulación de los paquetes IP mediante protocolos de redes DVB-RCS como MPE, ATM, MPEG o GSE. El objetivo no es emular todos los detalles de estos protocolos sino las cabeceras añadidas y los efectos de la fragmentación o el empaquetado. • Modelado de enlaces: la biblioteca de emulación incluye bloques para reproducir las deficiencias de los enlaces de comunicación como el retardo de propagación (determinista o aleatorio), ancho de banda limitado y asimétrico, tasas de errores en PIÑAS : TELECOM I+D05 - AINE: AN IP NETWORK EMULATOR • • • bits y de pérdidas de paquetes, priorización y políticas de encolamiento para diferentes tipos de tráfico, establecimiento de conexiones, etc. Diseño modular y orientado a la emulación de redes de paquetes genéricas: la herramienta ha sido concebida como un emulador de redes de conmutación de paquetes y ha sido aplicada a la emulación en laboratorio de éstas, incluyendo el modelado de los mecanismos de asignación de recursos y de la variación de la carga de tráfico o de la capacidad del sistema. Los modelos se construyen conectando bloques elementales disponibles en una librería, que modelan diferentes efectos que se pueden aplicar a los paquetes, que atraviesan la plataforma que ejecuta el software AINE, en su paso de un interfaz Ethernet a otro. Se pueden modelar redes diferentes utilizando combinaciones de bloques interconectadas con diferentes topologías y con diferentes parámetros de configuración. Extensible: la versión más avanzada de la herramienta permite al usuario implementar nuevos tipos de bloques si son necesarios para nuevos escenarios de prueba, o para modelar protocolos y sistemas nuevos en fase experimental. Eficiencia: la librería de bloques de emulación está programada en lenguaje C/C++, el modelo de red se ejecuta sobre un sistema operativo basado en un 195 máquinas diferentes. Éstos intercambiarían paquetes IP por los interfaces LAN y todos se podrían gestionar desde un único puesto de monitorización y control (M&C) mediante una LAN separada para gestión, conectada a los interfaces Ethernet de control de cada plataforma hardware, para evitar así interferencias con el tráfico a inyectar al emulador B. Elementos de AINE Para simular o emular una red de comunicaciones primero es preciso definir un modelo que imite las características principales del sistema real. Las redes de comunicaciones de paquetes se suelen modelar mediante un proceso estocástico discreto [8]. El modelo de la red representa un flujo de paquetes que se mueven a través de una serie de nodos que pueden alterar las características del flujo de paquetes y también la información de los paquetes, de un modo que imita el funcionamiento de la red real. Además, el modelo debe considerar el cálculo de estadísticas como la media, el máximo, mínimo y la desviación típica en diferentes períodos de tiempo de las magnitudes que interese medir, como los tiempos de espera en cola, tamaños de colas, tasas de bytes y paquetes por segundo en diferentes puntos del modelo, o el tiempo de recorrido de un punto a otro del modelo. El número de nodos y paquetes en el modelo debe limitarse al mínimo necesario. Si el modelo es demasiado simple se Figura 1. Concepto de emulación de red y arquitectura de AINE. núcleo Linux 2.6 y la arquitectura de los bloques ha sido pensada para maximizar las prestaciones. El resultado global es una arquitectura muy eficiente para manejar paquetes IP y para comunicar los bloques de la librería entre si, que permite la emulación de redes complejas. • Arquitectura distribuida: en el caso de tener que emular sistemas extremadamente complejos, cuyo modelo no puede funcionar en tiempo real sobre una única plataforma hardware, se puede dividir el modelo en varios segmentos que se ejecutarían en estarán perdiendo efectos importantes, pero si es demasiado detallado y complejo se necesitará una gran capacidad de cálculo y será difícil de manejar y comprender. En AINE, el modelo de emulación de la red se construye reuniendo una serie de bloques lógicos básicos y especializados implementados en una biblioteca que representan los nodos del modelo, que se define y utiliza mediante tres herramientas complementarias. La biblioteca del emulador también está dividida en tres partes: • Captura y envío de tráfico: es la parte que gestiona la transmisión de los paquetes IP entre la lógica del 196 emulador y los interfaces Ethernet de la plataforma en la que se ejecuta. • Librería de bloques: la implementación de los diferentes bloques del emulador sigue un esquema común. Los bloques procesan el tráfico de red capturado, aplican el efecto correspondiente tras recibir o enviar información adicional a otros bloques para emular la red, actualizan las estadísticas y reenvían el paquete al bloque siguiente. La librería incluye bloques específicos para redes vía satélite como los bloques agente y controlador DAMA y otros bloques de uso común para emular redes de paquetes como el bloque cola-servidor. • Gestor: esta parte maneja la ejecución de la emulación y puede recibir comandos de arranque y parada por parte del usuario. También permite cambiar el nivel de las trazas que indican eventos en los bloques durante la emulación y gestiona la conexión entre el emulador y el interfaz gráfico remoto de M&C (Client Manager). También genera el informe XML al final de la emulación con medidas estadísticas de los parámetros de monitorización del modelo, que luego puede convertirse a cualquier formato mediante un procesador XSLT. La primera herramienta complementaria, llamada Client Manager, se utiliza para la M&C del modelo de emulación. Se trata de un interfaz gráfico desarrollado en Java que permite controlar la emulación de forma remota y recibir, visualizar y almacenar en ficheros de texto los datos de monitorización producidos durante la ejecución del emulador. La segunda herramienta complementaria es un comando generador de ejecutables, una herramienta que genera código C/C++ y el makefile correspondiente, para producir un modelo de emulación ejecutable a partir de un fichero XML que especifica los bloques y la topología del modelo a generar. La tercera herramienta complementaria es una aplicación gráfica desarrollada en Java para diseñar los modelos de emulación. Permite definir los bloques y la topología que tendrá el modelo mediante la edición de un grafo dirigido en el que los nodos son los bloques y las conexiones indican el paso de paquetes de un bloque al siguiente. La herramienta permite editar la configuración de cada bloque y genera el fichero XML que describe el modelo y que utilizará el generador de ejecutables para producir el modelo de emulación. El sistema operativo para ejecutar el software AINE puede ser cualquiera que utilice un núcleo Linux reciente de la serie 2.6 y que esté configurado para operar el reloj de tiempo real con un milisegundo de resolución. Cada uno de los bloques de la librería del software AINE se implementa como uno o más hilos, procesos ligeros, que comparten información utilizando mecanismos de exclusión mutua soportados por la librería NPTL, que cumple el estándar POSIX. Para capturar los paquetes IP de los interfaces Ethernet e IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 2, APRIL 2010 inyectarlos en el modelo de emulación se utiliza la librería libpcap. Esta librería permite la utilización de los Berkeley Packet Filters (BPF) para definir qué paquetes deben atravesar la lógica del emulador (paquetes de tráfico) y cuales no deben entrar al modelo (por ejemplo, sesiones seguras (SSH) de M&C). La utilidad iptables permite evitar que los paquetes que atraviesen el emulador sean enrutados también por el núcleo Linux. Para enviar los paquetes de nuevo a la LAN después de atravesar el emulador se utilizan sockets raw. Esto permite utilizar el núcleo Linux para ejecutar el protocolo ARP y obtener las direcciones MAC correspondientes a una dirección IP de destino de un paquete a enviar. Todas las librerías y herramientas utilizadas en el desarrollo de AINE (e.g. el compilador GNU de C/C++) se encuentran en las distribuciones de GNU/Linux y son software libre. En la Fig. 1 se puede observar la arquitectura del emulador AINE. III. UTILIZACIÓN DE AINE PARA EVALUAR TÉCNICAS CROSSLAYER A. Escenario cross-layer Los sistemas de comunicaciones vía satélite adaptativos como el DVB-S2, pueden mantener la tasa de error de bit (BER) constante y proporcionar la máxima capacidad disponible de acuerdo a la relación señal a ruido (SNR) medida por el receptor. El transmisor selecciona de forma dinámica el esquema de modulación y codificación (MODCOD) más apropiado, de acuerdo a la SNR reportada por el receptor, para mantener la BER constante y transmitir a la máxima tasa posible. Cuando las condiciones del canal son buenas y la SNR reportada es elevada, el transmisor selecciona un MODCOD eficiente capaz de proporcionar una conexión de alta capacidad. Si la SNR se reduce debido a cambios en las condiciones del canal (por ejemplo, debido a un desvanecimiento por lluvia) el transmisor selecciona un MODCOD más robusto que mantiene la tasa de error constante aunque se reduce la capacidad de la conexión. La introducción de la codificación y modulación adaptativa (ACM) en los sistemas de comunicaciones inalámbricos y la convergencia hacia IP genera nuevos retos en cuanto a la gestión de los recursos radio para mantener la QoS y los acuerdos de nivel de servicio (SLA). El escenario de referencia utilizado para el estudio es una red DVB-S2/RCS que proporciona acceso a Internet. En el canal descendente (del hub a los terminales remotos) se utiliza el estándar DVB-S2 mientras que en el enlace de retorno (de los terminales al hub) se utiliza el estándar DVB-RCS. AINE se utiliza para emular los efectos sobre el tráfico IP de la red descrita, desde el momento en que el paquete IP entra en el hardware del terminal RCST por su interfaz LAN, hasta que abandona la red WAN (después de atravesar el hub), y viceversa. Los equipos de usuario conectados al terminal y los servidores en Internet (e.g. servidores web) no se emulan, sino que se utilizan equipos, pilas de protocolos TCP/IP y aplicaciones reales. PIÑAS : TELECOM I+D05 - AINE: AN IP NETWORK EMULATOR 197 Figura 2. Interfaz gráfico para el diseño de un modelo AINE. En el interior del modelo AINE, los paquetes IP se encapsulan en paquetes de nivel 2 y se aplican los efectos de la red emulada en dichos paquetes de forma independiente. Luego se recuperan los paquetes IP de nuevo a partir de los paquetes de nivel 2 emulados antes de abandonar la plataforma en la que se ejecuta el modelo AINE. El software AINE no implementa la capa física, sino que modela sus efectos en el nivel de enlace de forma conveniente aplicando retardos y pérdidas de paquetes o errores en bits en los paquetes de nivel 2 emulados. B. Encolamiento y calidad de servicio en el transmisor DVB-S2 Suponiendo que para cada MODCOD hay dos tipos de tráfico, de tiempo real, más prioritario y el resto, la aplicación Figura 3. El retardo del tráfico de tiempo real (ms) se reduce al aplicar una política de servicio adaptativa. 198 IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 2, APRIL 2010 de una política de servicio de prioridad estricta puede estrangular los flujos que no son de tiempo real, y por otra parte la asignación de unos pesos fijos a cada tipo de tráfico no permite limitar el retardo del tráfico de tiempo real cuando las condiciones del canal cambian y se reduce la capacidad disponible. La idea básica de la política de servicio adaptativa es limitar el aumento del retardo de los servicios de tiempo real cuando las condiciones del canal empeoran, modificando los pesos asignados a cada tipo de tráfico para limitar el ancho de banda destinado a cursar tráfico que no es de tiempo real. Luego, cuando se recuperan las condiciones normales, se restablece la configuración original. La Fig. 3 muestra medidas del tiempo de espera en cola en milisegundos del tráfico de tiempo real en el modelo AINE de un transmisor DVB-S2 para cada una de las cuatro zonas de recepción establecidas en el modelo. La primera gráfica muestra las medidas cuando la política de servicio no es adaptativa y la de la derecha muestra la reducción del retardo cuando los pesos de la política de servicio se adaptan para limitar el retardo del tráfico de tiempo real. En esta prueba, el tráfico total inyectado al modelo AINE era constante y con una tasa de 17 Mbit/s y el aumento del retardo observado se producía al emular la degradación del canal debido a un desvanecimiento por lluvia, que provocaba la utilización de MODCOD más robustos para cursar el tráfico inyectado en el modelo. IV. CONCLUSIONES En este artículo hemos presentado el software AINE para la emulación en tiempo real de redes y sistemas de comunicaciones, especialmente de sistemas vía satélite, en un entorno de laboratorio. La herramienta ha sido utilizada por Indra Espacio en varios proyectos para emular redes DVBRCS y DVB-S2, y evaluar el impacto que nuevas técnicas y algoritmos que podrían aplicarse a futuros estándares, tendrían en las aplicaciones de Internet actuales. Aunque AINE se concibió con el propósito específico de emular redes IP vía satélite, es una herramienta que permite emular redes de conmutación de paquetes genéricas y protocolos de nivel de enlace. Los modelos se construyen conectando una serie de bloques lógicos disdefine el camino que seguirán los paquetes al atravesar el modelo y qué efectos se aplicarán. Además, la herramienta es extenponibles en una librería hasta formar un grafo dirigido que sible y permite al usuario definir nuevos bloques para modelar nuevos efectos o algoritmos. Esta aproximación proporciona una mayor flexibilidad para probar nuevos protocolos que la utilización de cualquier otra herramienta de emulación de redes disponible en el mercado. El interfaz gráfico en Java permite definir y controlar el modelo de forma remota a través de una red IP para recibir, visualizar y almacenar los datos producidos durante la emulación. AGRADECIMIENTOS El autor reconoce la contribución de C. Morlet a la versión inglesa de este documento. Agradece a Luís Collantes (Indra, España) el soporte para la presentación del artículo en el congreso Telecom I+D 2009. REFERENCIAS [1] [2] [3] [4] [5] [6] [7] [8] Entrada en la Wikipedia sobre simulación de redes (Network Simulation). Disponible en: http://en.wikipedia.org/wiki/Network_simulation Entrada en la Wikipedia sobre emulación de redes (Network Emulation). Disponible en: http://en.wikipedia.org/wiki/Network_emulation Entrada antigua en la Wikipedia sobre emulación de redes en la que se indicant productos propietarios. Disponible en: http://en.wikipedia.org/w/index.php?title=Network_emulation&oldid=2 31540293 Entrada en la Wikipedia del término copyleft. Disponible en: http://es.wikipedia.org/wiki/Copyleft Información sobre el proyecto AmerHis. Disponible en la dirección: http://telecom.esa.int/telecom/www/object/index.cfm?fobjectid=7923 Informe final del proyecto AppliQoS. Disponible en: http://telecom.esa.int/telecom/www/object/idex.cfm?fobjectid=27802 Infome final del proyecto xLayer. Disponible en: http://telecom.esa.int/telecom/www/object/idex.cfm?fobjectid=2770 R.E. Shannon, “Introduction to the art and sciencie of simulation,” in Proc. Of the 30th conference on Winter simulation (WSC’98), 1989. Disponible en: http://www.informs-cs.org/wsc98papers/001.PDF David Fernández Piñas nació en Barcelona, España, el 13 de noviembre de 1978. Se licenció en la Escuela Técnica Superior de Ingeniería de Telecomunicación de Barcelona, en la especialidad Comunicaciones, en 2001. Ejerce profesionalmente en Indra Espacio en Barcelona. Entre sus campos de interés está la simulación y emulación de redes de comunicaciones basadas en conmutación de paquetes, en particular vía satélite.