Simulador de Tráfico ATM con Garantía de Servicio SIMULADOR DE TRÁFICO ATM CON GARANTÍA DE SERVICIO I. PRELIMINARES.......................................................................................................................................3 1. INTRODUCCIÓN .............................................................................................................................................3 1.1. Antecedentes de la simulación...........................................................................................................4 2. ASPECTOS GENERALES DE ATM....................................................................................................................5 2.1. Conmutación de paquetes a alta velocidad.......................................................................................5 2.2. Arquitectura de un nodo ATM...........................................................................................................6 2.2.1. Modelo de referencia ATM........................................................................................................7 2.2.2. Categorías de Servicio ATM......................................................................................................9 2.2.3. Parámetros de la Calidad de Servicio.......................................................................................10 2.2.4. Control de Congestión .............................................................................................................11 2.2.5. Redes ATM...............................................................................................................................11 3. MOTIVACIONES..........................................................................................................................................13 3.1. Fiabilidad.......................................................................................................................................13 3.2. Garantía de servicio........................................................................................................................15 3.3. Funcionamiento de TCP..................................................................................................................15 3.3.1. Funcionamiento de TCP...........................................................................................................16 3.3.2. TCP sobre ATM........................................................................................................................17 3.4. Beneficios aportados por TAP........................................................................................................18 3.5. Limitaciones de ATM frente a la GoS............................................................................................19 II. LA PROPUESTA TAP..........................................................................................................................20 4. INTRODUCCIÓN...........................................................................................................................................20 4.1. Conceptos fundamentales sobre agentes.........................................................................................20 4.2. Sistemas multiagentes (SMA).........................................................................................................21 5. ARQUITECTURA TAP.................................................................................................................................22 5.1. El SMA-TAP...................................................................................................................................22 5.2. Arquitectura del SMA-TAP..............................................................................................................23 5.3. Conmutadores AcTMs...................................................................................................................25 5.3.1. Colas de entrada........................................................................................................................25 6. GESTIÓN JUSTA DE COLAS............................................................................................................................29 6.1. Fair Queuing..................................................................................................................................30 6.2. GPS, PGPS (WFQ) y PFQ..............................................................................................................31 6.3. Propuesta QPWFQ para TAP.........................................................................................................34 6.3.1. QLWFQ....................................................................................................................................34 6.3.2. QPWFQ....................................................................................................................................34 7. MECANISMOS DE CONTROL DE CONGESTIÓN....................................................................................................37 7.1. Antecedentes, mecanismo EPD .....................................................................................................37 7.2. Propuesta EPDR.............................................................................................................................39 BASES DE LA SIMULACIÓN.................................................................................................................42 8. INTRODUCCIÓN...........................................................................................................................................42 1 Simulador de Tráfico ATM con Garantía de Servicio 9. FUNCIONES Y ALGORITMOS DE GESTIÓN DE CONEXIONES...................................................................................42 9.1. Funciones y algoritmos de gestión de conexiones en las redes ATM reales...................................42 9.1.1. Señalización..............................................................................................................................42 9.1.2. Direccionamiento.....................................................................................................................45 9.1.3. Enrutamiento............................................................................................................................45 9.1.4. CAC “Connection Admission Control”....................................................................................48 9.1.5. Tablas de enrutamiento de VCCs.............................................................................................49 9.2. Funciones y algoritmos de gestión de conexiones de “simSwitch”................................................50 9.2.1. Señalización en la simulación...................................................................................................50 9.2.2. Direccionamiento en la simulación..........................................................................................61 9.2.3. Enrutamiento en la simulación.................................................................................................61 9.2.4. El algoritmo CAC en la simulación.........................................................................................63 9.2.5. Tablas de enrutamiento de VCCs en la simulación.................................................................64 10. FUNCIONES Y PROCEDIMIENTOS PARA LA GESTIÓN DEL TRÁFICO........................................................................68 10.1. Introducción.................................................................................................................................68 10.2. Connection Admisión Control.......................................................................................................69 10.3. Usage Parameter Control.............................................................................................................69 10.4. Selective Cell Discard...................................................................................................................70 10.5. Traffic Shaping..............................................................................................................................70 10.6. Explicit Forward Congestion Indication.......................................................................................70 10.7. Resource Management using Virtual Paths..................................................................................71 10.8. Frame Discard..............................................................................................................................71 10.9. Generic Flow Control...................................................................................................................72 10.10. ABR Flow Control.......................................................................................................................72 11. CATEGORÍAS DE SERVICIO IMPLEMENTADAS...................................................................................................72 11.1. Las categorías de servicio ABR y UBR........................................................................................73 11.2. ABR-l............................................................................................................................................73 11.2.1. Modelo de servicio detallado para ABR-l.............................................................................73 11.2.2. Modelo de control de flujo para ABR-l..................................................................................74 11.2.3. Parámetros de servicio ABR-l................................................................................................75 11.2.4. Estructura de las células RM..................................................................................................75 11.2.5. Comportamiento de la fuente.................................................................................................76 11.2.6. Comportamiento del sumidero...............................................................................................77 11.2.7. Comportamiento de los conmutadores..................................................................................77 11.2.8. Algoritmos en pseudocódigo.................................................................................................77 11.3. UBR-l.............................................................................................................................................78 SIMULACIONES.......................................................................................................................................79 12. SIMULACIONES.........................................................................................................................................79 12.1. La Topología Base.........................................................................................................................80 12.2. Comportamiento del tráfico de tramas con relación al umbral....................................................82 12.3. Influencia del EPDR en la fragmentación.....................................................................................88 12.4. Influencia del tamaño del búfer del conmutador congestionado..................................................91 12.5. Influencia del grado de GoS de las conexiones privilegiadas......................................................92 12.6. Influencia del tamaño de la memoria DMTE................................................................................97 12.7. Influencia de la velocidad de salida de las fuentes EAAL ............................................................98 13. Conclusiones..................................................................................................................................101 13.1. Trabajos futuros..........................................................................................................................101 BIBLIOGRAFÍA......................................................................................................................................103 2 Simulador de Tráfico ATM con Garantía de Servicio I.PRELIMINARES 1. Introducción El proyecto “Simulador de tráfico ATM con GoS” tiene como objetivo fundamental la creación de una herramienta multiplataforma específica y dedicada a comprobar las consecuencias e implicaciones de implantar la arquitectura TAP (Trusted and Active Protocol PDU transfer) en una red de tecnología ATM. Esta arquitectura aparece propuesta por D. José Luis González Sánchez en detalle en su tesis doctoral “Protocolo activo para transmisiones garantizadas sobre una arquitectura distribuida y multiagente en redes ATM”. Actualmente, tal y como se plantea la realización de este simulador, no conocemos una alternativa equivalente a la recogida en este proyecto ya que, aunque en la propia tesis se propone un simulador, el “SSAcTM”, partiendo desde cero, intenta ir más allá permitiendo el diseño de topologías diferentes y aumentando el nivel de realismo de simulación de tráfico en la medida de nuestras capacidades. La arquitectura TAP es novedosa por sus características: distribuida, activa y multiagente. El protocolo creado para la arquitectura ofrece transferencias garantizadas a un conjunto de privilegiado de conexiones VPI/VCI. Se propone también una extensión de la capa AAL-5 de ATM denominada EAAL-5 (Extended AAL type 5) usadas para la gestión de conexiones privilegiadas extremo-extremo. TAP ofrece garantía de servicio (GoS) cuando la red está perdiendo células pertenecientes a las conexiones privilegiadas y aprovecha los períodos de inactividad de los enlaces para hacer retransmisiones de las CPCS-PDU-EAAL-5 mediante el uso de mecanismos NACK. TAP es soportado por conmutadores ATM activos (denominados AcTM) que presentan una arquitectura diseñada específicamente para estos propósitos. Además, mediante técnicas software, intenta disminuir de forma justa la carga de los conmutadores; optimizar las retransmisiones de PDU; aliviar la implosión sobre las fuentes; evitar la fragmentación de las PDU y disminuir el interleaving de células, optimizando el goodput. El software de simulación de tráfico ATM con GoS que hemos desarrollado está formado por cuatro aplicaciones independientes pero relacionadas. Cada una de ellas dispone de un interfaz gráfico potente para permitir un entorno amigable de usuario. La programación de cada uno de los módulos que componen este programa está realizado en Java y la ejecución de los procesos requeridos puede realizarse de forma centralizada en PC’s mono y multiprocesador gracias a su implementación multi-hilo. El simulador dispone de tres niveles de operación: el primero trata del diseño y análisis del comportamiento de los distintos dispositivos ATM (nivel de dispositivo), el segundo considera la construcción de una red ATM con conmutadores AcTM integrados (nivel de red), y el tercero se encarga de evaluar cualitativa y cuantitativamente el grado de servicio ofrecido por la red bajo estudio de extremo a extremo (nivel de usuario o servicio). 3 Simulador de Tráfico ATM con Garantía de Servicio 1.1. Antecedentes de la simulación Existe una tentación subyacente al proponer un nuevo simulador, que sería la de reformar o ampliar algunos de los ya existentes. Los paquetes de simulación que actualmente se usan y que se conocen ampliamente surgieron hace algún tiempo como herramientas de simulación de las redes ya existentes (Ethernet, Token-ring, FDDI, interconexión a través de redes WAN,...) Como ejemplo de éstos, se pueden citar el BONes DESIGNER, NS, GPSS/H, MODSIM, SES/Workbench, SIMAN, SIMSCRIPT, SLAMSYSTEM y OPNET. De todos ellos, sólo BONes DESIGNER, SES/Workbench y OPNET tienen módulos de comunicaciones y este último, dispone de un pequeño módulo de ATM completamente diferente a lo que se pretende hacer en este proyecto. Por tanto, no están pensados para la simulación de arquitecturas de conmutación como las que aquí se van a simular, con lo que si se quisiera reutilizar alguno de ellos al menos surgirían dos graves problemas. En primer lugar, su reconstrucción para la utilización en entornos ATM se prevé muy costosa y puede consumir demasiado tiempo. En segundo lugar, el tiempo necesario para la simulación de cualquier red sería excesivamente alto, haciendo altamente ineficaz su uso. Es pues necesario desarrollar un simulador específico para nuestro entorno y huir en lo posible de simuladores de propósito general. 4 Simulador de Tráfico ATM con Garantía de Servicio 2. Aspectos generales de ATM El Modo de Transferencia Asíncrono (ATM) es la base de un estándar internacional propuesto como un sistema de conmutación de paquetes para el transporte de datos basado en células de longitud fija y de pequeño tamaño (53 octetos). ATM se caracteriza también por ofrecer funciones de gestión de tráfico para la transferencia óptima de información en tiempo real (tráfico multimedia) y tiempo no-real (datos o imágenes estáticas), aportando la atractiva ventaja de diferentes flujos de información. Ha sido elegida por la ITU-T como base para la implementación de la RDSI-BA (Red Digital de Servicios Integrados de Banda Ancha) Sin embargo, debido a que ATM se trata de una tecnología muy novedosa y aún en proceso de implantación, a pesar de que muchos aspectos de la misma están resueltos, aún quedan muchos otros que son foco de atención de la comunidad investigadora que realiza propuestas para mejorar la tecnología. La arquitectura TAP es un ejemplo de ello. Debido a que aspiramos a movernos dentro del ámbito de las arquitecturas, protocolos, tráfico nativo ATM, etc., en el presente capítulo realizaremos una descripción de los aspectos básicos de la tecnología ATM. Esto ayudará al lector a familiarizarse con el entorno en el que se desarrollará nuestro simulador así como para situarse en un punto donde podamos presentarle más claramente la problemática que conlleva ofrecer garantía de servicio en conexiones extremoextremo, aspecto base de la tecnología TAP. 2.1. Conmutación de paquetes a alta velocidad Como ya hemos apuntado antes, ATM es la tecnología subyacente que hace posible la RDSI-BA como red integrada para todos los tipos de transferencia de información que se preveía que reemplazase en el futuro a todo el sistema telefónico y a todas las redes especializadas. Esta nueva red tendrá una velocidad de transmisión muy elevada, en comparación con todos los servicios y redes existentes, y hará posible ofrecer una gran variedad de servicios nuevos. Las nuevas necesidades de la RDSI-BA orientaron las comunicaciones hacia la conmutación de paquetes en alta velocidad para contar simultáneamente con las ventajas de las redes de circuitos y las redes de paquetes. Esta nueva tecnología debería ser capaz de proporcionar anchos de banda variables, ser transparente a los protocolos utilizados y soportar una gama amplia de servicios con soluciones específicas de velocidad, sincronización y latencia. La idea en la que se basa ATM consiste en transmitir toda la información en paquetes pequeños de tamaño fijo, llamados células o celdas (Cells). El uso de una tecnología de conmutación de células es una ruptura drástica con respecto a la conmutación de circuitos dentro de un sistema telefónico. Son muchas las razones por las que se escogió la conmutación de células, entre ellas están las siguientes. Primero, la conmutación de células es altamente flexible y puede manejar con facilidad tanto tráfico de velocidad constante como variable. Segundo, a las velocidades tan altas que se contemplan, la conmutación digital de las células es más fácil que el empleo de las técnicas tradicionales de multiplexación, en especial si se utiliza fibra óptica. Tercero, tan solo la conmutación de células, no la de circuitos, puede proporcionar la difusión, 5 Simulador de Tráfico ATM con Garantía de Servicio esencial para diversos servicios como por ejemplo la distribución de televisión. En resumen, las ventajas obtenidas con la conmutación de celdas son una baja latencia que permite soportar datos isócronos y una eficiente conmutación hardware gracias al tamaño constante de los paquetes. 2.2. Arquitectura de un nodo ATM ATM puede considerarse como una tecnología de conmutación de paquetes de alta velocidad con unas características particulares: - Los paquetes son pequeños y de tamaño constante. - Es una tecnología de naturaleza conmutada y orientada a conexión. - Los nodos que componen una red no tienen mecanismos para el control de errores o control de flujo. - La cabecera de las células tiene una funcionalidad limitada. Simplificando al máximo podemos ver que una red ATM está compuesta por nodos de conmutación, elementos de transmisión y equipos terminales de usuarios. Los nodos son capaces de encaminar la información empaquetada en células a través de unos caminos conocidos como Conexiones de Canal Virtual. El encaminamiento, en los nodos conmutadores de células, es un proceso hardware, mientras que el establecimiento de conexiones y el empaquetamiento/desempaquetamiento de las células son procesos software. Figura 2.1 Esquema de comunicación con ATM Las células constituyen la unidad de transferencia en las redes ATM que, como hemos dicho antes son de tamaño fijo y relativamente pequeñas. De los 53 octetos totales, 5 bytes se emplean en las cabeceras y los 48 restantes se emplean para la carga útil de datos. En la figura 1.2 se puede observar los dos formatos de células ATM con sus correspondientes campos y tamaños. 6 Simulador de Tráfico ATM con Garantía de Servicio El hecho de que haya dos formatos distintos se debe a que uno es usado en el interfaz entre el usuario y la red (UNI) y el otro es el que utilizan los conmutadores de la red entre si (NNI). Figura 2.2 Formato de células ATM Cada célula presenta un campo VPI y otro VCI. El conjunto de ambos especifica a un Canal Virtual (VC) que es una representación de una conexión unidireccional entre dos usuarios. El primero identifica la Ruta Virtual (Virtual Path) y el segundo un Canal Virtual (Virtual Channel) específico dentro de cada VP. El campo PT (Payload Type) se usa para indicar el tipo de información contenida en el campo de carga de datos de la célula. El bit CLP (Cell Loss Priority) lo emplea el emisor para especificar la prioridad deseada de descarte de células en el caso de congestión en la red. Un CLP=1 indica que la célula es de baja prioridad y por lo tanto descartable. El campo HEC (Header Error Control) es un código de redundancia cíclico usado para detectar errores en la cabecera. A continuación de la cabecera vienen 48 bytes de carga útil. Sin embargo, y como veremos en el módulo II no todos los 48 bytes están disponibles para el usuario, pues algunos de los protocolos AAL ponen sus cabeceras y sus terminaciones dentro de la carga. 2.2.1. Modelo de referencia ATM Ya que la arquitectura TAP realiza aportaciones al modelo arquitectónico de ATM debemos entender cómo se estructura éste para poder comprender así las aportaciones de TAP a su funcionamiento. El modelo ATM se apoya en las capas Física, ATM y de Adaptación ATM, cada una de ellas con una serie de funciones específicas para permitir la transferencia de células. En la arquitectura TAP la capa física permanece intacta y se centra sobre todo en la capa de adaptación ATM. Las uniones de cada una de las capas se presentan en el siguiente cuadro: 7 Simulador de Tráfico ATM con Garantía de Servicio Figura 2.3 Modelo de referencia de ATM respecto al RM-OSI En la figura 2.3 se presenta un esquema del modelo ATM atendiendo a las capas que implementa cada elemento de la red. Puede observarse como los conmutadores de red tan solo implementan las dos primeras capas ya que el tráfico entre ellos es ATM nativo. Sin embargo los nodos o conmutadores locales sí que necesitan de la capa AAL para ajustar el tráfico no ATM que pudiera generar un nodo terminal de usuario que, como podemos observar, pueden hacerlo a través de cualquier protocolo de comunicación como TCP/IP. La arquitectura ATM usa un modelo lógico para describir su funcionalidad. La funcionalidad de ATM corresponde a la capa física y parte de la capa de enlace del modelo de referencia OSI. El modelo de referencia ATM está compuesto por los siguientes planos : - Control: Este plano es responsable de generar y gestionar las demandas de señalización. Usuario: Responsable de gestionar la transferencia de datos. Gestión: Contiene dos componentes o Gestión de capas: Gestiona funciones específicas de las capas, como detección de fallos y problemas del protocolo. o Gestión de planos: Gestiona y coordina funciones relacionadas con el sistema completo. El modelo de refencia ATM se compone de las siguientes capas: - Capa física: Análoga a la capa física del RM-OSI, gestiona la transmisión dependiente del medio. 8 Simulador de Tráfico ATM con Garantía de Servicio - - Capa ATM: Junto con la capa de adaptación ATM, la capa ATM es análoga a la capa de enlace del RM-OSI. La capa ATM es responsable de establecer conexiones y de transferir células a través de la red ATM. Para esto, usa la información que se encuentra en la cabecera del las células ATM. Capa de adaptación ATM (AAL, Adaptation ATM Layer): Junto con la capa ATM, es análoga a la capa de enlace RM-OSI. AAL es responsable de aislar los protocolos de las capas superiores de los detalles de los procesos ATM. Finalmente, las capas superiores a AAL recogen los datos de usuario, los coloca en paquetes y los transfiere a la capa AAL. 2.2.2. Categorías de Servicio ATM La tecnología ATM fue diseñada y desarrollada para soportar e integrar varias clases de servicio. Cada cliente, en la fase de establecimiento de la conexión, negociará con la red la clase de servicio que requiere su comunicación. Estos servicios genéricos son proporcionados por cuatro tipos de AAL, que introducen niveles específicos de protocolo, para proporcionar la Calidad de Servicio (QoS) adecuada para cada tipo de tráfico. Las clases de servicio que normalizadas por la ITU-T son cuatro: DBR (Deterministic Bit Rate) SBR (Statistic Bit Rate) ABR (Avaliable Bit Rate) y ABT (ATM Block Transfer) Además de las clases de servicio recomendadas por la ITU-T el ATM Forum especifica un conjunto de Categorías de Servicio (CoS), algunas de ellas equivalentes a las capacidades de servicio mencionadas anteriormente. Las categorías de servicios comúnmente usadas por los proveedores son las siguientes: - La clase CBR (Constant bit Rate) proporciona una velocidad de acceso constante y una relación sincronizada entre los usuarios; en otras palabras es un servicio que emula las prestaciones de un circuito. Es equivalente a la DBR de la ITU-T. - La clase VBR (Variable Bit Rate) se divide en dos subclases, la de tiempo real (RTVBR) y la de tiempo no real (NRT-VBR), respectivamente. La RT-VBR es para servicios que tienen una tasa de bits variables en combinación con requisitos estrictos de tiempo real. La otra subclase de VBR es para tráfico en el que la entrega a tiempo es importante pero la aplicación puede tolerar una cierta cantidad de fluctuación. Equivalente a la SBR de la ITU-T. - La clase ABR (Avaliable Bit Rate) se diseñó para tráfico a ráfagas cuya gama de ancho de banda se conoce aproximadamente. Permite a los usuarios finales pedir a la red cuánto ancho de banda es necesario para una conexión dada pero evita tener que comprometerse con un ancho de banda fijo. La ABR es la única categoría de servicio en la que la red proporciona tasa de retroalimentación al transmisor solicitándole que disminuya la velocidad al ocurrir congestionamientos mediante las denominadas células RM. - Por último la UBR (Unespecified Bit Rate) No garantiza ni el caudal de tráfico ni el retardo. Esta categoría se adapta bien al envío de paquetes IP, puesto que IP tampoco hace promesas respecto a la entrega. 9 Simulador de Tráfico ATM con Garantía de Servicio 2.2.3. Parámetros de la Calidad de Servicio Tanto en el caso del tráfico de datos como en el de las aplicaciones multimedia, la noción de QoS o calidad de servicio es muy importante y está definida como un conjunto de parámetros que representan las propiedades del tráfico. Desde una perspectiva formal y estándar, existen consideraciones diferentes para el punto de vista del usuario y del proveedor de la red a la hora de establecer los parámetros de la QoS. En nuestro caso vamos a tratar de forma genérica la QoS sin entrar en consideraciones formales, por lo que podemos decir que para nosotros la QoS es "la habilidad para definir o predecir el rendimiento de una red y ofrecer mejores servicios a una CoS específica". En general existen los siguientes cuatro parámetros básicos de QoS: el rendimiento (throughput), el retardo (delay), la variabilidad de retardo (jitter) y por otro lado la fiabilidad (reliability) Además de estos cuatro parámetros, que ya aportan grandes ventajas con respecto a otras tecnologías, existen una extensa serie de parámetros directamente relacionados con la QoS. En la tabla 2.1 se muestran algunos de estos parámetros que se usan para caracterizar el tráfico que genera cada una de las fuentes, los cuáles están directamente con cada una de las CoS ya comentadas. Parámetro PCR SCR MCR CDVT CLR CTD CDV CER SECBR CMR MBS MFS IBT ECR BCR Descripción Peak Cell Rate Significado Máxima velocidad a la que se envían células Sustained Cell Rate Velocidad media de células a largo plazo Minimun Cell Rate Velocidad de células mínima Cell Delay Variation Tolerance Máxima fluctuación de retardo de células Cell Loss Ratio Tasa de células perdidas o entregadas con retardo Cell Transfer Delay Tiempo que tarda una célula en llegar extremo-extremo Cell Delay Variation Variación entre los retardos de llegada de células. Cell Error Ratio Porcentaje de células erróneas que llegan al destino Severely-Errored Cell Block Ratio Porcentaje de tramas que contienen células erróneas Cell Missinsertion Rate Células entregadas a destino erróneo por errores en cabecera Maximum Burst Size Máximo tamaños de ráfaga permitido Maximum Frame Size Máximo tamaño de trama permitido Intrinsic Burst Tolerance Tolerancia a la aparición de ráfagas Explicit Cell Rate Velocidad máxima de células explícitas autorizada a la fuente Block Cell Rate Velocidad pico de célula de bloque Tabla 2.1 Parámetros de QoS 10 Simulador de Tráfico ATM con Garantía de Servicio 2.2.4. Control de Congestión Hemos visto que uno de los aspectos principales en la transmisión de células en ATM es la falta de comprobación de errores del payload. Por tanto un error en una célula puede pasar inadvertido hasta que ésta llega al extremo destino de su VP. Sin embargo, a pesar de la gravedad de estos errores de transmisión, no son el principal problema que pueden experimentar las células ya que son relativamente poco frecuentes (la fibra óptica tiene una tasa de errores de 10EXP-12) Un problema más grave y menos predecible es el de la congestión, provocado en los conmutadores cuando se les exige un rendimiento superior al que son capaces de ofrecer. Nos encontramos con dos tipos de congestión principales: a largo plazo provocada por la generación de un tráfico superior al que puede manejar la red y, por otro lado, la congestión producida a corto plazo que es causada por fuentes que generan tráfico a ráfagas que no mantienen un comportamiento estable en sus parámetros. Para solventar estos dos problemas se han propuesto múltiples: • • • Control de admisión. Si la red no puede encontrar un circuito virtual que garantice las necesidades que el usuario expresa en el transcurso del procedimiento de establecimiento de la conexión, no permitirá que ésta se lleve a cabo para evitar que su entrada pueda perturbar el buen estado de la red y de las conexiones que ya han sido admitidas. Esta labor la realiza la función CAC (Connection Admission Control) Reserva de recursos. Como complemento al CAC en cada conmutador se reservan recursos para cada conexión establecida con el fin de que no sean tomados por otra conexión. La reserva de recursos puede hacerse respecto a cualquiera de los parámetros de QoS que hemos descrito anteriormente. Control basado en velocidad explícita. Como ya dijimos anteriormente la CoS ABR utiliza células RM generadas con una frecuencia fija. Cuando un conmutador detecta la falta de alguna célula RM prevista lo interpreta como la existencia de congestión en algún punto entre el destino y el conmutador que lo detecta. Mediante este mecanismo el emisor tiene la posibilidad de rebajar su tasa de transferencia cuando ocurre esto ante la posibilidad de congestiones. El protocolo TAP utiliza un mecanismo parecido para ofrecer garantía de servicio a las conexiones privilegiadas. Aunque, como hemos visto, existen mecanismos de control de congestión, las congestiones pueden aparecer de forma indeterminista y en estos momentos es cuando tendrá sentido el protocolo de recuperación de células (PDUs) punto-a-punto propuesto en TAP en lugar del mecanismo extremo-a-extremo usado por los protocolos AAL y superiores de los terminales ATM. 2.2.5. Redes ATM Las redes ATM están orientadas a conexión, por lo que antes de empezar cualquier transmisión de información se ha de proceder al establecimiento del enlace. Los dos identificadores en la cabecera de la célula (VPI y VCI) permiten distinguir dos tipos distintos de 11 Simulador de Tráfico ATM con Garantía de Servicio conexión: el campo VPI (Virtual Path Identifier) identifica un trayecto virtual y el VCI (Virtual Channel Identifier) un canal virtual, pudiendo existir varios VCs por VPs y varios VPs por cada canal físico. Las redes ATM se muestran adecuadas para tratar cualquier tipo de información basándose en señales digitales. Las 5 capas de adaptación ATM (las AALs) son las encargadas de adaptar el flujo de señales binarias generadas por los terminales para poder ser tratadas por los conmutadores ATM, segmentándolos en bloques de 48 bytes y reagrupándolos después. ATM resulta particularmente interesante para proporcionar instantáneamente un gran ancho de banda en aquellas aplicaciones con un alto nivel de impulsividad, como son las propias de las redes locales; así, pues, esta técnica de multiplexación encuentra una de sus principales aplicaciones en la interconexión de LANs dentro de entornos privados (HUBs ATM). Su introducción en la red pública, al requerir elevadas inversiones y largos procesos de aceptación, se realizará progresivamente y en función de la existencia de aplicaciones multimedia y de equipos de acceso ATM suficientemente flexibles y económicos para ser utilizados masivamente, sirviendo, por ejemplo, para la interconexión de las islas ATM privadas. Por otra parte, el servicio de vídeo bajo demanda permite el transporte de imágenes digitales, comprimidas o no, a alta velocidad. En este caso la velocidad binaria puede variar (VBR). Figura 2.4 Interconexión ATM en LAN-MAN-WAN 12 Simulador de Tráfico ATM con Garantía de Servicio 3. Motivaciones En este capítulo vamos a profundizar sobre los motivos que impulsaron la creación de la arquitectura TAP que, como ya hemos apuntado con anterioridad, tiene unos objetivos específicos y bien definidos. Hemos dicho que TAP ofrece Garantía de Servicio (GoS) a un conjunto de privilegiado de conexiones pero ¿qué se entiende por garantía de servicio? ¿Qué relación tiene con respecto a la fiabilidad? ¿Cuáles son los antecedentes y alicientes que provocaron la creación de este servicio? ¿Qué ventajas podríamos obtener si lo implantáramos en una red ATM? En los siguientes apartados pretendemos contestar a todas estas preguntas. Con estos objetivos presentes, primeramente nos centraremos en el concepto de fiabilidad que, como ya dijimos en el anterior capítulo, es un parámetro básico de la QoS, y prestaremos especial atención a las circunstancias que hacen una conexión más o menos fiable y a los mecanismos de que dispone la red para proporcionan el grado de fiabilidad deseado. Seguidamente introduciremos el concepto de garantía de servicio y veremos qué relación tiene con la fiabilidad. En los dos siguientes apartados estudiaremos someramente el protocolo TCP y su funcionamiento sobre ATM para mostrar cómo los protocolos superiores intentan resolver las deficiencias que en este sentido presentan las redes ATM. Por último, y una vez ya tenemos claro los anteriores conceptos, centraremos nuestra atención en los procesos que intervienen a la hora de aportar GoS a las conexiones y poner de relieve los problemas y carencias a los que se enfrenta una red ATM actual a la hora de proporcionar este servicio a un conjunto de conexiones privilegiadas. 3.1. Fiabilidad La tecnología ATM se caracteriza por su flexibilidad a la hora de proporcionar distintos grados de servicio a las conexiones según el tipo de tráfico que generen. Esta flexibilidad nace de la posibilidad de negociar diversos parámetros de QoS como througput, delay, jitter y reliability (fiabilidad) Por lo tanto una fuente ATM tiene la posibilidad de exigir un cierto grado de fiabilidad a la red para las conexiones que quiera establecer. Antes de proseguir es necesario dar una definición al concepto de fiabilidad según se entiende en el ámbito de las redes ATM. En comunicaciones el concepto de fiabilidad está claramente aceptado como "la forma de aportar a las conexiones extremo-extremo garantía plena de que la información que transfieren llega sin ningún error o, si aparecen errores, todos puedan ser detectados y corregidos". De esta definición podemos extraer tres deducciones inmediatas: la primera y más obvia, en una comunicación puede haber errores; en segundo lugar, es posible detectar y solventar esos errores; en tercer y último lugar, ya que la fiabilidad es un parámetro negociable, deducimos que según el grado requerido de fiabilidad puede no ser necesario corregir un error. Vayamos por partes; según el primer aspecto vemos que los errores en las transmisiones son posibles pero ¿qué es un error? Un error puede considerarse como la manifestación de un fallo. En las redes ATM los posibles fallos en su funcionamiento pueden provocar tres tipos de errores que afectan directamente a la información que transportan: bits erróneos en el payload de una célula, errores de conmutación debido a bits erróneos no detectados en la cabecera de una célula y bits perdidos en congestiones. Según las investigaciones realizadas se demuestra que las 13 Simulador de Tráfico ATM con Garantía de Servicio pérdidas por congestión son la forma predominante de error. Esto es así ya que los otros dos tipos de errores son predominantemente consecuencia del ruido inducido por la línea de comunicación. Como ya sabemos ATM fue diseñado para usarse en fibra óptica y la fibra es altamente fiable con una tasa de error de 10EXP-8 a 10EXP-12, o sea, que por cada billón de bits que pasa por un tramo de cable tan solo uno de ellos sufre alteración. Por lo tanto el principal problema al que se enfrenta una red a la hora de proporcionar conexiones fiables es el de la pérdida de células por el agotamiento de recursos cuando muchas compiten con ellos, esto es, la congestión. Llegados a este punto nos vamos a centrar sobre el segundo aspecto deducido de la definición de fiabilidad: la detección y resolución de errores. En cuanto a la detección de errores, ATM nos proporciona varios mecanismos. El de más bajo nivel consiste en un código de redundancia cíclico de 8 bits presente en el capo HEC de las células (ver capítulo 2 figura 2.2) utilizado para detectar errores en la cabecera. Por las características de CRC y del medio de transmisión se calcula que, a velocidad OC-3, pasará un encabezado de célula errónea cada 90.000 años. Así vemos que, aunque posible, es casi nula la probabilidad de que una célula con cabecera errónea pase desapercibida. Sin embargo para el cuerpo de una célula, a este nivel, no existe ningún mecanismo que nos permita saber si un bit es erróneo o no. Esto se resuelve con un segundo nivel de control de errores mediante varios y diversos mecanismos aplicados a paquetes de células. Así pues, en el nivel AAL se realiza una comprobación de la integridad de las células que componen un PDU-AAL (ya sea AAL-1, AAL-2, AAL-3/4 ó AAL-5) Es importante destacar que las tramas AAL sólo tienen sentido en los terminales de la comunicación por lo que este control es únicamente extremo-extremo. Por lo tanto, si una célula perteneciente a una trama AAL se pierde o presenta bits erróneos por algún motivo en el transcurso de una transmisión, el suceso solo será detectado cuando se intente reensamblar la trama y se compruebe, mediante el mecanismo de detección de errores específico de cada tipo, que la trama no es correcta. Mientras tanto el resto de las células de la trama corrupta habrán estado circulando por la red ocupando recursos inútilmente. Esto afecta muy negativamente al rendimiento de la red de muy diversas formas dependiendo de la técnica utilizada para la corrección del error. Efectivamente la resolución de errores en una red ATM puede realizarse mediante retransmisiones extremo-aextremo, lo que se denominan técnicas ARQ (Automatic Repear Request) Según esta técnica el anterior error provocará una petición de retransmisión y la consecuente retransmisión de la PDU completa por parte del extremo emisor. Si nos ponemos en la situación en la que la célula se ha perdido como consecuencia de una congestión, el hecho de pedir retransmisiones extremo-aextremo de tramas enteras para subsanar el error podría acarrear un empeoramiento de la situación. Al pedir estas retransmisiones en vez de disminuir el tráfico para minimizar riesgos de congestión lo que hacemos es todo lo contrario. Es la situación del perro que se muerde la cola, cuanta más congestión hay más células se pierden y más retransmisiones se solicitan; cuantas más retransmisiones se solicitan más células se han de transmitir y más congestiones se provocan. Un problema más grave es el de la implosión y se produce por peticiones de retransmisiones en conexiones punto-multipunto donde cada destino realizará su propia petición de retransmisión al origen estando éste obligado a responder a todas ellas. La otra técnica alternativa es el FEC (Forward Error Correction) y se trata de corregir errores gracias la codificación de información redundante junto con los datos con el fin de reconstruir los datos originales en caso de error. FEC permite por tanto la recuperación sin necesidad de retransmisiones sin embargo añade sobrecarga por cabeceras y también código redundante cuando la red está experimentando congestiones. Cabe señalar que existen propuestas de técnicas híbridas ARQ-FEC pero la aplicación de éstas a tráfico multipunto es una labor muy compleja y problemática. 14 Simulador de Tráfico ATM con Garantía de Servicio Ya hemos visto cómo los errores en las transmisiones son posibles, detectables y solventables. Sin embargo como hemos dejado entrever anteriormente, la reparación de un error puede no ser necesaria e incluso puede resultar perjudicial. Pongámonos en la situación de estar escuchando una cadena de radio digital mediante una conexión ATM en nuestro computador. Puede resultar aceptable en esta situación el error en un bit o la pérdida una célula de vez en cuando ya que el oído humano, al tener una sensibilidad limitada, no detectaría este error. Sin embargo sería inaceptable la petición de retransmisión de toda una trama AAL para recuperar una posible célula perdida ya que, aparte de que podría provocar un desorden en la recepción de PDUs, las aplicaciones en tiempo real, como la del ejemplo, no toleran un elevado retardo por lo que la información de la emisora podría resultar ininteligible. Por lo tanto el grado de fiabilidad requerido por una conexión está relacionado directamente con el tipo de información que transporta y sus exigencias particulares. 3.2. Garantía de servicio La propuesta de arquitectura TAP introduce el concepto de Garantía de Servicio (GoS) En su caso, no se pretende centrarse plenamente en el ámbito de la fiabilidad sino "encontrar un mecanismo que aporte a las transferencias ATM su garantía de servicio en el caso de que aparezcan congestiones en los conmutadores y, además que, cuando esto se produce, pueda ser solventado de forma local a los conmutadores congestionados sin implicar a toda la red para optimizar el goodput". El protocolo propuesto no se considera fiable en el estricto sentido de la palabra ya que no se comporta como tal, sino que lo que aporta es un elevado grado de confianza de servicio a las conexiones que lo utilizan. El objetivo de TAP no es por tanto la búsqueda de una fiabilidad completa en las conexiones, cosa que ATM ofrece por muy diversos métodos a costa de sobredimensionar las cabeceras de las células o PDU ATM, y con retransmisiones extremo-a-extremo. La GoS va un paso más allá de la fiabilidad en el sentido de que aporta mecanismos que intentan atajar el problema de la pérdida de células desde su raíz, esto es, proponiendo un mecanismo de retransmisiones al mismo tiempo que intenta evitar las congestiones en los conmutadores. Para el protocolo TAP la GoS se deriva directamente del parámetro fiabilidad y puede verse como un nuevo parámetro de QoS. 3.3. Funcionamiento de TCP El protocolo TCP se ha convertido en el estándar de comunicaciones de datos. Se trata de un protocolo fiable de la capa de transporte de la arquitectura TCP/IP que usa un control de error y un control de flujo basados en ventana y se encarga del enrutamiento de paquetes en internet con el control extremo-a-extremo. En la actualidad las redes ATM se están usando como la tecnología para soportar todo tipo de tráfico, pero con destacable predominio de los protocolos TCP/IP. Las diferencias entre ambas tecnologías se muestra como un serio obstáculo a la hora de mandar segmentos TCP a través de una red ATM y pretender mantener el throughput a niveles óptimos. En este apartado veremos brevemente cómo funciona TCP/IP y cómo reacciona ante las congestiones para poder entender mejor cómo puede degenerar el goodput de una red ATM que transporta tráfico TCP. 15 Simulador de Tráfico ATM con Garantía de Servicio 3.3.1. Funcionamiento de TCP La unidad de datos de protocolo en TCP se denomina segmento. Un segmento consiste en una cabecera de 20 bytes (más una parte opcional) seguida una parte de datos. En conjunto, el tamaño máximo de un segmento TCP no puede sobrepasar los 65,535 bytes. Un segmento demasiado grande para transitar por una red puede dividirse en varios segmenteos mediante un enrutador. Cada segmento nuevo recibe sus propias cabeceras TCP e IP, por lo que la fragmentación en los enrutadores aumenta la carga extra total. El protocolo básico usado por las entidades TCP es el protocolo de ventana corrediza de tamaño variable. El protocolo TCP es en la actualidad un conjunto de algoritmos que envían paquetes a la red sin ningún tipo de reserva previa, pero que son capaces de reaccionar ante determinados eventos de la misma. Entre estos algoritmos destaca el Control de Congestión y el de Recuperación de Segementos Perdidos. Para poder llevar esto a cabo, cada emisor mantiene dos ventanas: RWND (Receiver Window) y CWND (Congestion Window). Cuando se envían paquetes se usa la ventana más pequeña de estas dos. Al establecerse una conexión, el transmisor asigna a la ventana de congestionamiento el tamaño de segmento máximo usado por la conexión; entonces envía un segmento máximo. Por cada asentimiento positivo recibido antes de terminar el temporizador, la ventana de congestión es aumentada al doble de su valor. La ventana de congestionamiento sigue creciendo exponencialmente hasta ocurrir una terminación de temporización o alcanzar el tamaño de ventana receptora. Este algoritmo se llama Slow Start. El control de congestiones utiliza un parámetro, el umbral, inicialmente de 64 Kbytes. Cuando aparece congestión, por ejemplo detectada por un timeout, el valor del umbral es puesto a la mitad del valor actual de la ventana de congestión, la ventana de congestión es puesta a 1 segmento y la fase Slow Start es reiniciada de nuevo. Si no ocurren más terminaciones de temporización, la ventana de congestionamiento continuará creciendo hasta el tamaño de ventana del receptor. Un transmisor que llegue al umbral en su ventana de congestión entrará en la fase de Congestion Advoidance en la que la ventana de congestión aumentará de forma lineal al contrario de su crecimiento exponencial durante la fase de Slow Start. En realidad, en última instancia, la velocidad de transmisión de TCP viene determinada por el RTT (round tip time), ya que el emisor envía cada RTT el tamaño de datos determinado por la ventana de congestión. Por tanto, como se puede ver, TCP ajusta su ventana para reflejar las condiciones de la red de forma reactiva, esto es, cuantas más congestiones se produzcan más pequeña será la ventana al mismo tiempo que crecerá más lentamente. De esto se deduce que a medida que se incremente la pérdida de paquetes, la eficiencia de TCP cae sustancialmente. En [*] se realiza un estudio para comprobar el comportamiento del ancho de banda en una red TCP con respecto a la porbabilidad de errores. En él se comprueba algo que intuitivamente se observa a partir del propio funcionamiento de TCP y es cómo la probabilidad de perdida acaba determinando el ancho de banda de una fuente TCP. En la gráfica 3.1 obtenida a partir de una simulación en ns se puede observar cómo a medida que se aumenta la probabilidad de pérdida en un enlace disminuye el ancho de banda logarítmicamente hasta acercarse a una evolución lineal cuando la probabilidad de pérdida desciende, que es lo que intenta TAP. 16 Simulador de Tráfico ATM con Garantía de Servicio Figura 3.1 Probabilidad de pérdida respecto al Ancho de Banda En este mismo estudio también se ha considerado el efecto de N fuentes TCP compartiendo un enlace partiendo de la posibilidad de que ese enlace pueda convertirse en un posible cuello de botella determinado por el tamaño de la cola del router (B). Realiza una aproximación a la predicción de probabilidad de pérdida de paquetes: ((FORMULA P=0,75 N^2/ B^2)) Puede deducirse por esta fórmula que en la probabilidad de pérdida influye directamente la capacidad de almacenamiento de paquetes en las colas de los routers comportándose éstas como un punto de congestión para el tráfico. Como ya veremos en el módulo II en la arquitectura TAP se ha incluido un módulo de memoria adicional para propósitos específicos denominada DMTE. Esto contribuye de forma directa a aumentar el tamaño del buffer y en vista de la fórmula anterior a conseguir disminuir la probabilidad de pérdida P. 3.3.2. TCP sobre ATM Debido a sus características, las CoS ABR y UBR son la propuesta estándar para soportar el tráfico de datos. Sin embargo diversos estudios demuestran que TCP sobre UBR experimenta una apreciable degradación en el funcionamiento en cuanto a la justicia, requiriendo además de un tamaño de buffer relativamente grande, incluso con pocas conexiones. Sin embargo cuando se emplea la CoS ABR con esquemas de realimentación de velocidad explícita ofrecen a TCP mejor comportamiento en cuanto a justicia y aprovechamiento de los enlaces, y todo ello, con tamaños de buffer menores que con UBR. Uno de los principales problemas que experimentan las fuentes de tráfico TCP cuyos segmentos son transferidos sobre ATM es que, al usarse como indicación de congestión la propia pérdida de paquetes, esto provoca que la gestión de las congestiones se realice cuando ya es demasiado tarde. Es decir, cuando el buffer se llena, el conmutador descarta los paquetes, el receptor detecta la pérdida y éste avisa al emisor que acaba reaccionando con la retransmisión de los paquetes perdidos. Se impone por tanto la necesidad de aportar mecanismos más ágiles para la 17 Simulador de Tráfico ATM con Garantía de Servicio resolución de las congestiones de tráfico TCP que es transferido sobre tecnología ATM. Además existen muchas otras características diferenciadoras requiriéndose en consecuencia soluciones que resuelvan los problemas de rendimiento provocados por la integración de ambas tecnologías. Parece lógico que estas soluciones estén en la línea de realizar cambios en los conmutadores ATM dentro de la red. En el caso de TAP se enfrenta a estos problemas actuando dentro de la misma red con mecanismos hardware (conmutadores AcTMs) y también software (SMA con protocolo TAP). 3.4. Beneficios aportados por TAP A parte de los beneficios, llamémosles secundarios, apuntados en los anteriores apartados, la motivación de TAP se centra en encontrar soluciones para evitar el negativo problema de las retransmisiones extremo-a-extremo. TAP se enfrenta a este problema resolviendo las retransmisiones de forma local a donde se producen para evitar el coste del tiempo RTT total de la red y emplear sólo el RTT del enlace donde se produce la congestión. Un RTT alto es un problema bastante grave en las redes de banda ancha. Veamos el por qué de este problema mediante un ejemplo: La electricidad se transmite en un cable de cobre a 2/3 de la velocidad de la luz. La luz en fibra óptica se transmite también a una velocidad que es 2/3 de la que alcanza en el vacío. Si disponemos de una línea transcontinental de 3000 Km, el retraso que experimenta una señal es de 3000/200000 = 15 ms. Supongamos que queremos enviar 1 Mb de datos por esa línea a 64 Kb/s y esperar la confirmación. Sólamente bombear a la línea el Mb lleva 1000/64 = 15.6 segundos. El retraso de propagación del impulso eléctrico es de 0.015 * 2 = 0.03 segundos, que no es significativo frente a los 15.6, de modo que la distancia entre máquinas no es un factor que influya en el diseño del sistema global. Consideremos ahora la instalación de adaptadores ATM en ambas máquinas a una velocidad de 622 Mbs. Ahora poner en la línea 1 Mb supone 1/622 = 0.0016 s. Un retardo de propagación de 0.03 segundos, no sólo sí es significativo frente a 0.0016 segundos que se emplea en sacar el fichero a la línea, sino que es 18 veces mayor. Se tarda muchísimo más en que el primer bit llegue al otro extremo que en poner en el cable el Mb entero. Desde que comienza el envío hasta que vuelve la confirmación transcurren 0.0316 segundos, de los cuales la línea está ocupada 0.0016 segundos y ociosa 0.03 segundos, es decir, el 95% del tiempo. Un aumento de la velocidad de transmisión no provoca más que un menor aprovechamiento de la línea, que se aproxima asintóticamente al 100%. En el escenario descrito hemos supuesto una red ideal en la que no se produce ningún problema debido a congestiones o a bits erróneos. Fácilmente podemos entender que cualquier tipo de retransmisión debida a estos problemas acaba agravando aún más el problema descrito, ya que se multiplica el tiempo RTT mientras el tiempo de inactividad de la fuente se mueve a valores cercanos a 0. Con TAP se realizan las retransmisiones de forma local por lo que se consigue decrementar la probabilidad de pérdida con el consiguiente efecto sobre el throughput de TCP que evita los retardos debidos al RTT extremo-a-extremo. Se consigue así maximizar el goodput con una mínima pérdida de paquetes en el nivel TCP y con un retardo mínimo de células en el nivel ATM. 18 Simulador de Tráfico ATM con Garantía de Servicio 3.5. Limitaciones de ATM frente a la GoS En el apartado 3.2 introdujimos el concepto de GoS como un parámetro adicional derivado de los parámetros generales de QoS y cómo TAP pretende llegar a proporcionar GoS a un conjunto de conexiones privilegiadas. En este apartado vamos a indicar las limitaciones que impiden ofrecer a través de ATM el concepto de GoS. •El primero y más importante problema es la imposibilidad de ATM de disponer de fiabilidad total sin afectar al buen rendimiento de la red. Una red ATM asume que pueden producirse pérdidas, de forma que la resolución de las mismas quedan delegadas en protocolos de capas superiores. •Ni las células ATM ni las unidades de transferencia mayores de la capa AAL disponen de números de secuencia lo que impide la identificación de las que se pierden cuando la red experimenta congestiones. Por lo tanto, como en el anterior caso, la detección de datos perdidos es tarea de los protocolos superiores que, como sabemos, repercute en la eficiencia de la red por la necesidad de realizar retransmisiones e-e. •Si se quieren suprimir las retransmisiones e-e para las conexiones con GoS es necesario un mecanismo que permita a los conmutadores AcTMs solicitar retransmisiones p-p de las tramas perdidas cosa que no está especificado en la actualidad por ATM. •Además, debido a las características propias de la GoS y para proporcionar ésta sin degradar el rendimiento de una VPN son necesarios mecanismos que eviten la fragmentación de tramas y la mezcla de células pertenecientes a tramas distintas en una transimisión (lo que se conoce como interleaving). 19 Simulador de Tráfico ATM con Garantía de Servicio II. LA PROPUESTA TAP 4. Introducción Lo primero que hay que exponer en esta introducción es la definición de agente. El concepto de agente puede ser estudiado desde muy distintos puntos de vista por lo que no existe un consenso claro en su definición. Uno de los ámbitos de acción de los agentes es precisamente el de los sistemas de telecomunicación, porque los agentes pueden dotar a las redes de características de las que carecen en la actualidad. Genéricamente, podemos decir que un agente es una entidad con objetivos, que alcanza ejecutando una serie de acciones, mediante un dominio de conocimiento y situado en un entorno concreto. Podemos hablar de sistemas multiagentes como un grupo de agentes que se comunican de algún modo entre sí. También existe controversia acerca de la definición de redes activas. Estas redes se basan en la posibilidad de equipar los nodos con características que los transforman en elementos activos. En el caso que nos atañe en este proyecto, conseguimos dar a ciertos nodos de la red (conmutadores activos) características activas mediante la implementación en ellos de agentes. 4.1. Conceptos fundamentales sobre agentes Este apartado no pretende ser un compendio acerca de los agentes: origenes, tipos... Sino que nos centramos en la definición estricta para la propuesta TAP. Nos encontramos ante un problema cuando intentamos definir un agente. Existen numerosas definiciones en la literatura, pero creemos que la más destacable puede ser: “las redes de comunicaciones futuras se conciben más automatizadas, pudiendo ser gestionadas por entidades software, tanto móviles como estáticas, coleccionando información de estado de la red y que aportan la habilidad innata para invocar cambios efectivos en los controladores de los conmutadores sin la interacción explícita de ningún operador humano.” Dentro de la definición de agente caben muchos tipos. Uno de ellos es el agente software. Es el tipo de agente más específico. Se puede definir como una entidad que puede interactuar con su entorno. Es decir, existen agentes que pueden ser implementados usando software, lo que significa que pueden ser autónomos y pueden reaccionar con otras entidades, incluyendo los humanos, máquinas y otros agentes software en varios entornos o plataformas. Debemos destacar que este planteamiento es el que nosotros usamos en nuestra propuesta de forma que nos referiremos a la arquitectura TAP como constituida por agentes software. 20 Simulador de Tráfico ATM con Garantía de Servicio 4.2. Sistemas multiagentes (SMA) La mayoría de los problemas se podrían solventar con un único agente, pero atendiendo a la programación descendente y modular, ese problema, puede dividirse en otros subproblemas cada vez más sencillos. Se huye de la idea del agente omnipotente. Se tiende a este planteamiento en el que múltiples agentes autónomos interactúan, se coordinan (cooperando, compitiendo o ambas cosas) y todo ello de una forma adaptativa. De esta forma se constituyen sociedades de agentes a las que se consideran Sistemas MultiAgentes (SMA). Motivos para emplear SMA: - El uso de un agente omnipotente puede darnos problemas en la escalabilidad y puede producir pérdida de eficiencia. La solución pasa por dividir el problema y por lo tanto el agente. Si centramos todo el conocimiento sobre un agente pueden aparecer problemas como la falta de robustez del sistema, ya que un error en el conocimiento del agente es propagado a todo el sistema. Distribuir la carga, las tareas o las funciones permite diseñar los agentes de un SMA como componentes autónomos que actúan en paralelo para resolver un problema de ámbito general. Los agentes pueden ser entes autónomos o formar parte de un SMA. Resulta relativamente sencillo extrapolar el concepto de agente hacia sistemas, poco o muy complejos, donde intervengan diversos agentes software coordinados entre sí y compartiendo informaciones que les sean de interés. De este modo podemos adquirir una idea clara e intuitiva de lo que sería un sistema o sociedad de agentes múltiples, distribuidos y cooperativos que interaccionan entre sí compartiendo información. 21 Simulador de Tráfico ATM con Garantía de Servicio 5. Arquitectura TAP 5.1. El SMA-TAP La arquitectura TAP está basada en la incorporación de varios agentes software en el modelo de conmutador propuesto y que hemos denominado AcTMs (conmutadores ATM activos). De este modo damos lugar a una red ATM activa en la que sus conmutadores van a desempeñar una función activa en la gestión de las colas de entrada, en la detección de congestiones, así como en la labor de retransmisiones cuando empiezan a perderse células de las fuentes de tráfico que se han elegido con tráfico garantizado. En la figura 5.1 vemos la posición que ocupa SMA-TAP dentro de la arquitectura ATM. SMA forma parte del Plano de Gestión ya que aporta nuevos mecanismos para la gestión de recursos ATM, siendo transparente a funciones como CAC y UPC. En esa misma figura también se muestra la extensión EAAL-5 que hemos desarrollado: Figura 5.1: Situación del SMA-TAP en el modelo arquitectónico ATM TAP centra sus objetivos en la consecución de la garantía de servicio, aunque es claro que este SMA puede ser fácilmente ampliado con nuevas funcionalidades más propias de la capa de control del modelo de referencia ATM 22 Simulador de Tráfico ATM con Garantía de Servicio 5.2. Arquitectura del SMA-TAP La arquitectura SMA-TAP es un sistema constituido por 5 agentes. En la figura 5.2 se puede observar esta arquitectura. Los distintos agentes software que componen la arquitectura SMA-TAP son: - - - - Agente CoSA (Class of Service Agent): Agente programable que se encarga de recibir los parámetros del tráfico que proviene de las fuentes de entrada. Se encarga del establecimiento de la conexión, de las tablas de routing para determinar los VPI/VCI extremo a extremo y de la liberación de la conexión. Agente WFQA (Weighted Fair Queuing Agent): Mantiene una coordinación constante con el agente CoSA. Recibe del CoSA los flujos de entrada destinadas a las colas que WFQA gestiona de forma justa y de acuerdo a los pesos establecidos en los parámetros del tráfico. Agente programable CCA (Control Congestion Agent): Controla las congestiones basándose en EPDR y en otros algoritmos que el administrador de la red puede elegir. Este agente monitoriza el buffer de entrada, y cuando su ocupación sobrepasa el umbral establecido no acepta ninguna PDU entrante. Agente RCA: Se encarga de generar células RM nativas que son transmitidas en sentido contrario al del flujo de la información. Agente DPA: Se encarga de obtener las PDU o células del buffer de entrada cuando son transmisiones, o PDU de la DMTE cuando se trata de retransmisiones. Una vez recibidas, se encargará de despacharlas completas al correspondiente puerto de salida, previa actualización de la Tabla de Entrada/Salida de ese puerto. Con esta técnica se evitan las congestiones de los puertos de salida y también la mezcla de células pertenecientes a diferentes PDU o fuentes. 23 Simulador de Tráfico ATM con Garantía de Servicio Figura 5.2 Arquitectura TAP con el subsiste ma SMA-TAP Desde el punto de vista funcional de los agentes disponemos de un agente programable, que puede actuar como agente inteligente y también como agente reactivo ante situaciones de congestión. El agente CCA no sólo permite al operador elegir el algoritmo y los parámetros del esquema de control de congestión, si no que se comporta reactivamente ante la aparición de congestiones, y proactivamente pudiendo actuar para evitar la aparición de congestiones ajustando el valor umbral del buffer. Por otro lado, WFQA es un agente colaborativo que recibe eventos desde los agentes CoSA y RCA para llevar a cabo sus acciones generando como salida células y/o PDU clasificadas de acuerdo a los pesos de sus fuentes. El agente CoSA, también programable y reactivo, responde ante el establecimiento de conexión de las fuentes, para lo que necesita coordinarse con otros agentes similares en conmutadores adyacentes. El agente RCA, también reactivo, es capaz de atender eventos provocados por situaciones de congestión en su propio conmutador y en otros conmutadores de la red. Este agente colabora también directamente con el agente WQFA y de forma indirecta con CCA. Por último, DPA es un agente autónomo que, mediante técnicas de control, se encarga de actualizar las estructuras de datos del sistema como las Tablas de E/S, la memoria DMTE y el buffer del conmutador. En la figura 5.3 se puede observar la distribución de los agentes en las capas de la arquitectura SMA-TAP. 24 Simulador de Tráfico ATM con Garantía de Servicio Figura 5.3 Arquitectura SMA-TAP en capas. 5.3. Conmutadores AcTMs Existen en la literatura múltiples arquitecturas de conmutadores ATM, aunque la mayor parte de ellas se basan en el uso de una matriz de conmutación donde confluyen las células de las conexiones de entrada que son conmutadas (tras asignarles sus correspondientes valores VCI/VPI) a los puertos de salida. Sobre esta propuesta base de arquitectura se han realizado múltiples variaciones entre las que podemos situar TAP que, con la intención de solventar las problemáticas que ya conocemos, ha sido equipada con los módulos citados en el apartado anterior, los cuales van a ser seguidamente comentados en detalle. 5.3.1. Colas de entrada Los conmutadores que constituyen las redes ATM deben encargarse de mezclar los flujos de tráfico que provienen de fuentes diferentes y enrutarlos después hacia distintos destinos a través de paths de conmutación y enlaces de transmisión que las células de las diversas fuentes pueden compartir durante gran parte de su tránsito. Para que todo este proceso sea posible, los nodos de la red deben disponer de un almacenamiento temporal de las células en buffers de tamaño finito, de forma que el flujo de los datos en cada momento pueda hacer que el tamaño de estas colas de almacén temporal crezca y disminuya de forma dinámica. En realidad, este no es ningún mecanismo nuevo si lo comparamos con las redes de conmutación de paquetes clásicas, aunque lo realmente novedoso en el caso de ATM es la muy superior velocidad de conmutación (superiores a 622 Mbps en ATM frente a poco más de 256 Kbps en X.25). Estos requerimientos de elevada potencia de conmutación obligan a que cualquier propuesta que pueda hacerse para la labor de encolado del tráfico de entrada a los conmutadores deba ser optimizada en cuanto a los tiempos de acceso y de procesamiento. 25 Simulador de Tráfico ATM con Garantía de Servicio Por tanto, las labores principales de los conmutadores de la red son las de ofrecer un almacén temporal de las células en tránsito hasta su destino (o al menos hasta el siguiente conmutador), reenrutar estas células desde este almacén al correspondiente puerto de salida del conmutador, y sobre todo, conseguirlo de la forma más eficiente y rápida posible, aunque en nuestro caso deseamos añadir una nueva prestación como la GoS para aportar esa fiabilidad que la red no aporta, pagando por ello un precio importante en prestaciones cuando el almacén temporal de las células experimenta las impredecibles congestiones. Veremos después que las técnicas de encolado en los nodos de la red juegan un papel fundamental en el diseño, operación y rendimiento de las redes ATM, por lo que existen una gran variedad de formas de solventarlo en los conmutadores, aunque los esquemas principales se dividen en tres categorías (representadas en la figura 5.4), que colocan las colas en los siguientes puntos de los conmutadores: - En la entrada del conmutador, que se corresponde con la opción a) de la figura 5.4 donde los buffers de células se sitúan a la entrada del conmutador. Si se emplean buffers FIFO, se producen colisiones cuando dos o más cabeceras de colas compiten simultáneamente por la misma salida, lo que provoca que una de las células pueda quedar bloqueada. Pero también quedan bloqueadas las células que siguen a la célula bloqueada, aunque no tengan la misma salida. Este tipo de desventaja puede solventarse con memoria RAM, aunque se requiere para ello un control de las colas más complejo. Sucesivamente se han ido proponiendo mejoras para este tipo de colas de entrada, y un ejemplo de ello es la propuesta que comentaremos con TAP. - En la salida del conmutador, que se corresponde con la opción b) de la figura 5.4, donde podemos observar que, en este caso, las colas de buffers se sitúan en los puertos de salida del conmutador. En este tipo, el elemento de conmutación consta de una matriz con buffers de salida y, sólo cuando la matriz opera a la misma velocidad que las líneas entrantes, se provocarán las colisiones; es decir, varias células compiten simultáneamente por el mismo puerto de salida. Este problema puede atacarse reduciendo el tiempo de acceso al buffer, o bajando la velocidad de la matriz de conmutación. En muchos casos el bloqueo interno se debe resolver con buffers adicionales. - En los puntos de cruce (crosspoints) de la matriz de conmutación de los conmutadores, como puede observarse en el caso c) de la figura 5.4. A este tipo de elementos de conmutación suele denominarse butterfly o encolado central, y se caracterizan porque los buffers sólo se colocan en los puntos de cruce de la matriz, con lo que se previene que las células que compiten por puertos diferentes no se afecten simultáneamente. Además, mediante un control lógico, puede elegirse qué buffer es el primero en el caso de que varias células o paquetes compitan por el mismo puerto de salida. La situación c) de los buffers en los crosspoints supone disponer de una cola en cada uno de los puntos del cruce de la matriz de conmutación, lo que implica que hay que dividir el espacio de buffer total de N2 colas diferentes, cuando podrían ser N como ocurre en las otras dos opciones citadas. Esta división de recursos de almacenamiento puede acabar provocando un incremento de la probabilidad de pérdida de células al incrementar el número de colas potencialmente congestionables, además de aumentar considerablemente la labor de gestión de colas. 26 Simulador de Tráfico ATM con Garantía de Servicio Figura 5.4 Alternativas para situar las colas en los conmutadores Tras largas investigaciones de los tres diseños, éstas se inclinan por el uso de colas de entradas. Como se ha explicado anteriormente, en este proyecto se ha optado por la solución de las colas de entradas. Al añadir diferentes pesos a las colas de entradas nos permite usar mecanismos justos para el tratamiento de las colas. A esta solución de colas de entrada, en nuestro proyecto, además, proponemos el uso de un buffer (figura 5.5) que es un punto donde se multiplexan las salidas de las colas. Es en este buffer donde se solventan las congestiones, que es el punto principal del uso de TAP. Figura 5.5 Esquema de bloques de la arquitectura de los conmutadores AcTMs 27 Simulador de Tráfico ATM con Garantía de Servicio Las colas de entrada realizan un buffering de las células que llegan al conmutador activo. Cada cola realiza un tratamiento de dichas células en función de su VPI/VCI, intentando tratar de forma individualizada cada conexión. En el siguiente punto de este módulo expondremos el uso de mecanismos justos para el tratamiento de las colas. Estos mecanismos evitarán situaciones de inanición de las fuentes con menos requerimientos frente a aquellas que sean más ambiciosas. Veremos dos posibles soluciones: Fair Queueing y QPWFQ. 28 Simulador de Tráfico ATM con Garantía de Servicio 6. Gestión justa de colas En este apartado vamos a tratar el problema que surge cuando se producen situaciones de injusticia en la entrada de los conmutadores. Esta injusticia se produce cuando hay fuentes exigentes frente a que los son menos. Éstas últimas pueden caer en una situación de inanición. En el caso de nuestra simulación, debido a la existencias de fuentes privilegiadas de tráfico (mediante GoS), se hace necesario el uso de mecanismos de justicia. Una posible solución es emplear conmutadores que realicen asignaciones de ancho de banda justas, pero los algoritmos son demasiado complejos y esta complejidad puede llegar a hacer peligrar parámetros como del delay y jitter, de importancia crítica para conexiones de alta velocidad (p.ej. conexiones en tiempo real). Todos los planteamientos de arquitectura ATM cuentan con la inclusión de colas empleadas para aplicar la gestión del tráfico. En general, los conmutadores ATM enrutan las células desde un conjunto de puertos de entrada hasta un conjunto de puertos de salida basados en los identificadores de flujo VPI/VCI. En el puerto de salida de un conmutador ATM un controlador de puerto multiplexa células desde diferentes flujos de entrada en la línea de salida. Los puertos de salida de los conmutadores ATM son gobernados por una política de planificación como FIFO, que decide qué células desencolar de la cola de salida. Las políticas de planificación pueden ser clasificadas en work-conserving o non work-conserving. Una política es work conserving si nunca deja el enlace de salida en estado de inactividad mientras haya células dentro de la cola de salida. Al contrario, una política non work-conserving puede dejar el enlace de salida en estado de inactividad incluso si la cola de salida no está vacía. La siguiente tabla presenta la clasificación de algunas de las más conocidas políticas de planificación. Servicios work-conserving Weighted Fair Queuing Virtual Clock Delay Earliest-Due-Date Self-Clocked Fair Queuing Servicios non-work-conserving Jitter Earliest-Due-Date Stop-and-Go Hierarchical Round-Robin Todas las políticas work-conserving tienen, para un conjunto dado de patrón de llegada de células, idéntico retardo medio de células y necesidades máximas de buffer. Una política non work-conserving puede necesitar mayor retardo medio de células y necesidades de buffer máximo y medio que una política workconserving. Por otro lado, las políticas work-conserving tienden a incrementar las ráfagas de tráfico, mientras las políticas non work-conserving pueden ser usadas para limitar el tráfico a ráfagas. En líneas generales las políticas work-conserving son más fáciles de implementar y requieren una gestión de buffers más sencilla. Servicios work-conserving Idéntico retardo medio de células necesidades máximas de buffers. Servicios non-work-conserving y Puede requerir mayor retardo medio de células y necesidades máximas y medias de 29 Simulador de Tráfico ATM con Garantía de Servicio buffers. Pueden ser usadas para limitar el tráfico a ráfagas. Fáciles de implementar. No tan fáciles de implementar. Envían los paquetes una vez que ha terminad Esperan un espacio de tiempo aleatorio antes o el servicio, no espera para servir el de servir el siguiente paquete de una cola, siguiente paquete. incluso si hay paquetes esperando. Tienden a incrementar las ráfagas de tráfico. Las se pueden gestionar de diferentes maneras que influyen de manera muy diferente en el tráfico y en los requisitos de los conmutadores. 6.1. Fair Queuing Los algoritmos Fair Queuing se diseñaron para que los conmutadores y routers ofrezcan el control de congestión y para la asignación justa de ancho de banda. Sin embargo, el coste de la implementación en una red completa puede ser prohibitivo para aplicaciones de alta velocidad, tanto por la complejidad en la programación como por la necesidad de que el algoritmo FQ mantenga información del estado, gestione los buffers de entrada, realice la planificación de paquetes... No obstante, varias investigaciones han demostrado que las propuestas de control de congestión extremoa-extremo pueden ser mejoradas de una forma sustancial si en los routers se aplican técnicas justas de asignación del ancho de banda disponible en la red ya que, además de proteger unas fuentes de otras, permiten que en la red puedan coexistir diversas políticas de control de congestión. Del mismo modo, varias de estas investigaciones también reconocen que la asignación justa de ancho de banda juega un papel necesario, aunque a veces no beneficioso, en el control de congestión. Así, la mayor parte de propuestas en este campo parten de dos premisas importantes, por un lado que los mecanismos justos de asignación de ancho de banda son necesarios, y por otro, que la complejidad de estos mecanismos es un importante factor para su adopción en las redes. Lo que parece claro es que cualquier propuesta que realicemos en este sentido será bastante más compleja de implementar que el clásico encolamiento FIFO que ha sido el más usado tradicionalmente. Como es sabido, en FIFO los paquetes son servidos en el orden de llegada, y los buffers son gestionados siguiendo una sencilla estrategia drop-tail según la cual los paquetes entrantes son tirados cuando el buffer está lleno. Pero FIFO carece de la justicia que se buscó con FQ y sus variantes y con mecanismos de abandono por flujos como FRED (Flow Random Early Drop). En cualquiera de estas técnicas se requiere mantener el estado de los diversos flujos por separado, de forma que, para cada paquete que llega, hay que clasificarlo en su correspondiente flujo, actualizar las variables de estado de cada flujo y realizar operaciones (encolar_paquete, tirar_paquete, priorizar_flujo, etc) en función del estado de cada flujo. RED (Random Early Detection) sirve también los paquetes en el orden de llegada, pero la gestión del buffer es mucho más sofisticada que el drop-tail de FIFO. RED tira probabilísticamente paquetes largos antes de que el buffer se llene, ofreciendo indicación de congestión rápida a los flujos que pueden ser afectados antes de que se produzca el rebosamiento 30 Simulador de Tráfico ATM con Garantía de Servicio del buffer. De este modo RED mantiene dos umbrales en los buffers. Cuando la ocupación media del buffer es menor que el primer umbral, no se tira ningún paquete, pero cuando se supera el segundo umbral, los paquetes comienzan a ser tirados por la red. Cuando la ocupación del buffer se encuentra entre los dos umbrales, es cuando la probabilidad de tirar paquetes incrementa linealmente con la ocupación del buffer. FRED (Flow Random Early Drop) lo que hace es ampliar RED para ofrecer un cierto grado de asignación justa de ancho de banda. Para conseguir la justicia, FRED mantiene el estado de todos los flujos que tienen, como poco, un paquete en el buffer. Al contrario que en RED, donde la decisión de tirar paquetes se basa sólo en el estado del buffer, en FRED la decisión se basa también en el estado de los flujos. De este modo, FRED tira preferentemente los paquetes de un flujo al cual se le han tirado pocos paquetes anteriormente, y que poseen una cola mayor que el tamaño medio de las colas. Este algoritmo tiene dos variantes, que se diferencian en que una de las versiones garantiza a cada flujo un número mínimo de buffers. Todos los algoritmos comentados presentan diferentes niveles de complejidad. FRED se encarga de clasificar los flujos entrantes, mientras FIFO y RED no lo hacen. En suma, ninguno de ellos debe implementar ningún algoritmo de planificación de paquetes, sin embargo, todos aplican una sencilla planificación FIFO. 6.2. GPS, PGPS (WFQ) y PFQ La disciplina GPS (Generalized Processor Sharing) tiene 2 propiedades importantes: 1) Puede garantizar un servicio de retardo limitado extremo-a-extremo a una sesión cuyo tráfico está controlado por leaky bucket. (Bueno para tráfico best-effort y servicios jerárquicos de enlace compartido) 2) Puede asegurar asignación justa de ancho de banda a todas las sesiones que tienen trabajo en espera, estén o no sometidas al control de tráfico. (Base para aportar GoS al tráfico) GPS usa un modelo fluido ideal que no se puede implantar en el mundo real por lo que se han realizado aproximaciones a éste modelo. A estas aproximaciones se les denomina PGPS (Packet Generalized Processor Sharing) o, en otros casos, PQF (Packet Fair Queuing). El algoritmo (basado en GPS) más popular y más implantado es el WFQ (Weighted Fair Queuing) , también conocido como PGPS. Existen importantes diferencias entre los servicios ofrecidos por el sistema de paquetes WFQ y el sistema fluido GPS. GPS es una disciplina de los servicios de los paquetes en los puntos de encolado de la red. GPS es una forma especial de procesador head-of-line compartiendo disciplinas de servicio PS (Processor Sharing). Con PS tenemos una cola FIFO separada para cada sesión que comparte el mismo enlace. Durante un intervalo de tiempo, cuando hay exactamente N colas no vacías cada una de ellas asociada a un servicio compartido, el servidor GPS sirve los N paquetes de las cabeceras de las colas simultáneamente, cada uno a una velocidad de N veces la velocidad del enlace. Mientras un servidor PS sirve todas las colas no vacías a la misma velocidad, GPS permite a diferentes sesiones tener diferentes servicios compartidos y sirve las colas no vacías en proporción al servicio compartido de las correspondientes sesiones. 31 Simulador de Tráfico ATM con Garantía de Servicio Un servidos GPS, sirviendo N sesiones, se caracteriza por N números reales positivos φ 1, φ 2,..., φ N. Estos valores indican el tamaño relativo de servicio para cada sesión. El servidor trabaja a una velocidad fija r y es work-conserving. Hay que destacar que GPS es un servidor ideal que no transmite paquetes como entidades. Esto asume que el servidor puede servir todas las sesiones pendientes simultáneamente y que el tráfico es infinitamente divisible. En la realidad sólo una sesión puede recibir un servicio en un instante, y un paquete entero debe ser servido antes de servir otro. En la figura 6.1 se representa un diagrama de tiempos de la llegada y transferencia de paquetes pertenecientes a la sesión i en un sistema GPS. Figura 6.1 Diagrama de tiempos de llegada y salida de paquetes en la disciplina de servicio GPS Una de las líneas de trabajo de GPS está centrada en el diseño de algoritmos de control de congestión basados en realimentación para ser usados en redes de datagramas. Así, en este caso las fuentes muestrean constantemente el estado de la red para detectar síntomas de congestión y, cuando los detectan, las fuentes reducen la velocidad de envío para aliviar el efecto de la congestión. En el caso de que todas las fuentes empleen la misma cola FIFO para el envío de su tráfico, si una de las fuentes no reacciona al control de congestión, nos encontraremos con el hecho de que todas las sesiones acabarán sufriendo el problema de congestión. Para evitar este problema se propuso emplear una cola FIFO separada para cada sesión y atender las colas existentes en una política Round-Robin. Este esquema se comporta mejor que un FIFO puro, pero en el caso que existan fuentes con distintos tamaños de paquetes, puede ocurrir que las que generen paquetes más grandes acaben consiguiendo más ancho de banda que las que los generan más pequeños. Destacamos que la disciplina de servicio PS, descrita antes, este problema no aparece porque las sesiones en espera reciben el mismo ancho de banda independientemente del tamaño de los paquetes. El algoritmo GPS tiene por tanto una serie de interesantes propiedades para las redes de servicios integrados como ATM y, de hecho, se han propuesto muy diversos algoritmos PFQ (Packet Fair Queuing) para aproximar GPS a alas redes de conmutación de paquetes, aunque no demasiadas para las de tecnolgía ATM. El coste de implementación de los algoritmos PFQ está influido por dos aspectos: 1) Cálculo de la función de tiempo virtual del sistema que es una medida dinámica del tamaño de servicio justo normalizado que debe recibir cada sesión. La mayor parte de los algoritmos PFQ propuestos se mueven entre costes O(1) y O(logN) en cuanto a complejidad de la función de tiempo vitual. 32 Simulador de Tráfico ATM con Garantía de Servicio 2) El coste del mantenimiento del orden relativo de los paquetes a través de su marca de tiempos en un mecanismo basado en colas con prioridad desde donde se transfieren los paquetes. La complejidad algorítmica de implementación de una cola con prioridad para N números arbitrarios es O(logN). Pueden conseguirse menores costes, pero son de difícil implementación en redes de alta velocidad. Las colas con prioridad en PFQ pueden basarse en tiempo virtual de inicio, en el de finalización, o en ambos. Como cualquiera de estos tiempos crece monótamente con cada sesión, solo necesitamos considerar las cabeceras de cada sesión cuando el servidor está tomando el siguiente paquete a ser transferido. Así, el número de entidades en la cola con prioridad coincide con el número de sesiones activas. Existen bastantes aproximaciones de algoritmos PFQ que procesan paquetes basados en GPS, pero todos usan un mecanismo similar de colas con prioridad, basados en la noción de tiempo virtual. Las propuestas se diferencian en la elección de la función de tiempo virtual y en la selección de la política de paquetes. Para poder aproximarse a GPS, los algoritmos PFQ mantienen una función de tiempo virtual V(.), un tiempo de inicio virtual Ii(.), y un tiempo de finalización virtual Fi(.) para cada una de las i sesiones. En el caso de las redes ATM es lógico representar el tiempo virtual en términos de la cantidad de células servidas. En la mayor parte de los casos de PFQ, cuando el servidor está eligiendo el siguiente paquete para transmitir, los algoritmos optan, de entre todos los paquetes del sistema, por aquel que tenga el tiempo final virtual más pequeño, es decir, se aplica una política de selección de paquetes “primero los tiempos virtuales más pequeños” (SFF). Esta política de selección de paquetes suele dar lugar a límites de retardo casi idénticos a los del sistema fluido GPS, sin embargo, acaba dando lugar a mayores tiempos de servicio que GPS. Otra de las líneas más importantes de GPS está en la forma de ofrecer servicios con garantía de retardo limitado en redes de conmutación de paquetes. El esquema PGPS (Packet Generalized Processor Sharing) , bajo el nombre de WFQ (Weighted Fair Queuing) es el algoritmo PFQ más conocido. La disciplina de servicio de PGPS se centra en el tratamiento igualitario de todos los usuarios y, a partir de estos planteamientos, han surgido posteriormente nuevas investigaciones que han dado lugar a variantes extendidas de PGPS. Aunque WFQ es el algoritmo más conocido y reconocido como mecanismo de planificación ideal en términos de sus propiedades combinadas de límite de retardo y proporcionalidad de justicia, varios trabajos demuestran que la complejidad asintótica del algoritmo crece linealmente con el número de sesiones atendidas por el planificador, lo que limita su uso en aplicaciones de elevada velocidad. De este modo, se proponen 2 algoritmos de complejidad constante O(1) en gestión de marcas de tiempos (pesos) y además, conservan los mismo valores de retardo extremo-a-extremo y tamaños de buffers de WFQ. El primer algoritmo FFQ (Frame-based Fair Queuing) emplea un mecanismo de tramas para recalibrar periódicamente una variable global rastreando la evolución de los trabajos en el sistema y limitando la injusticia en peridos cortos de tiempo determinados por el tiempo de las tramas. El segundo algoritmo SPFQ (Starting Potential-based Fair Queuing) realiza la recalibración en el límite de los paquetes. Aunque existen numerosas alternativas, este proyecto no abarca el estudio de éstos. 33 Simulador de Tráfico ATM con Garantía de Servicio 6.3. Propuesta QPWFQ para TAP Comparando las diferentes propuestas, podemos decir que WFQ, también denominado PGPS, aporta interesantes prestaciones en cuanto a retardo y justicia, sin embargo, su coste computacional y complejidad de implementación han impedido su implantación. Para este proyecto, hacemos uso del algoritmo QPWFQ (Queue PDU Wigthed Fair Queuing) inspirado en QLWFQ (que se explicará a continuación), para conseguir aportar un tratamiento justo a las PDU que llegan a los conmutadores AcTMs. Dado que debemos dar un tratamiento privilegiado a las PDU pertenecientes a las conexiones con GoS, el mecanismo de pesos de colas es de suma utilidad para nosotros. Además, nos encontramos con otra particularidad no tratada por ninguno de los algoritmos estudiados que es el hecho de tener que dar respuesta a las retransmisiones de PDUs congestionadas. Esto nos va a determinar el tener que incluir en el algoritmo QPWFQ un tratamiento prioritario para las retransmisiones. 6.3.1. QLWFQ La literatura presenta diversas variantes mejoradas sobre las propuestas anteriores. Para nuestro proyecto queremos centrarnos en una de estas propuesta, QLWFQ (Queue Length based WFQ), que es un algoritmo work-conserving de coste constante O(1) para la planificación de colas per-VC en redes de conmutación de paquetes de longitud fija como ATM. QLWFQ es compatible con FQ y FIFO y se basa en la asignación de pesos a las colas y en el establecimiento de créditos para determinar el orden de atención de las células ATM en función de la comparación de la longitud de cada cola con su peso particular. El algoritmo compara, a la llegada y partida de las células, la longitud de las colas con los pesos que cada una tiene asignados. QLWFQ es en realidad una simplificación de WRR (Weighted Round Robin) consiguiendo un mejor equilibrio entre aislamiento de tráfico y compartición de recursos que los algoritmos basados en marcas de tiempos. 6.3.2. QPWFQ A continuación vamos a describir el funcionamiento general del algoritmo QPWFQ y, a un tiempo, comentaremos el mecanismo aplicado a las colas de entrada de los conmutadores AcTMs para demostrar justicia del mismo, así como su sencillez de implementación que acaba resultando en un constante O(1). Igualmente, veremos que QPWFQ procesa, tanto células como PDUs, y describiremos la sencilla técnica usada para mantener las características work conserving de WFQ, así como la posibilidad de tratamiento prioritario de las solicitudes de retransmisiones de PDUs pertenecientes a las conexiones garantizadas. Como puede observarse en la figura 6.2 , tenemos 3 colas de espera, cada una de ellas con su correspondiente peso p. En nuestro caso la Cola 1 tiene peso 3, la cola 2 peso 2 y la Cola 3 peso 1. Las posiciones de cada cola pueden almacenar, tanto PDU como células para ser procesadas hasta el buffer del conmutador. Cuando una PDU, o una célula, llega a una cola, la 34 Simulador de Tráfico ATM con Garantía de Servicio longitud l de esta cola es incrementada en una unidad y es introducido el número de cola en la cola de turnos siempre que l<=p. Cuando la cabecera de una cola de espera es servida, la longitud de esta cola es decrementada en una unidad y se comprueba si l>=p para seguir atendiéndola, siempre y cuando en las restantes colas no se cumpla l<=p. De este modo se garantiza la característica workconserving (el servicio no se detiene mientras exista tráfico que procesar), que permite atender colas con tráfico continuado siempre y cuando en las restantes tráficos no exista tráfico. En la figura 6.2 se supone que en el instante 0 en la cola 1 había una PDU, la cola 2 estaba vacía y en la cola 3 existía otra PDU. Así, la longitud de la cola 1 se incrementa en una unidad, y en la cola de turnos se ha insertado el crédito 1 (suponiendo que atendemos las colas circularmente y de forma ascendente) ya que su peso es 3 y la longitud de la cola en ese instante es 1 (l<=p). Posteriormente es tratada la cola 3, su longitud es incrementada en 1, y se anota su turno en la cola de turnos ya que su peso es 1, lo mismo que su longitud (l<=p) .Si suponemos mantenernos en esta situación sin servir las cabeceras de las colas 1 y 3 a la salida, y en ese momento llegan tres nuevas unidades a la cola 1, éstas serán atendidas de forma continuada por la característica work-conserving, ya que a las colas 2 y 3 no llega tráfico. De este modo se atienden dos nuevas entradas de la cola 1 pero al ser atendida la tercera llega una célula a la cola 2 que pone su longitud a 1 y es pasado su turno a la cola de turnos ya que l=1 <= p=2. Ahora veremos ¿cómo es el procedimiento de salida de las células o PDUs de las colas de entrada?. En la cabecera de la cola de turnos hay una indicación acerca de la cola que debe ser tratada en cada momento. Según la figura 6.2 la cola que hay que atender es la 1 (según la cola de turnos). Al tratar la cola 1, se envía su cabecera al buffer y se decrementa la longitud de esta cola en una unidad. A continuación se eliminan las cabeceras de la cola de turnos y de la cola 1 y se procede a calcular primero si l<=p y después si l>=p. En la figura de ejemplo (figura 6.2) se supone que no llegan PDUs pertenecientes a retransmisiones de conexiones privilegiadas. Si ocurriese la llegada de una PDU de este tipo, el agente WFQA le daría un tratamiento prioritario. 35 Simulador de Tráfico ATM con Garantía de Servicio Figura 6.2 Esquema de planifiación del algoritmo QPWFQ. El WFQA tendrá conocimiento de la inminente llegada de una PDU retransmitida a través de la comunicación del agente RCA que le indica el índice VPI/VCI/PDUid/Port. Esta comunicación activa una nueva variable asociada a cada cola para saber que va a llegar una retransmisión. Cuando llega la PDU es introducida en su correspondiente cola y es apuntada para garantizar el acceso directo. De este modo, las colas de espera pueden servir células y PDU, no sólo desde las cabeceras, sino también desde los punteros que identifican las PDU retransmitidas. Así, las colas FIFO, implementadas con punteros, permitirán priorizar las PDU retransmitidas que, a medida que van llegando, son insertadas, no al final de las colas, sino al principio de las mismas con la intención de garantizar el coste constante. Para realizar las priorizaciones, se debe realizar también un tratamiento sobre la cola de turnos, ya que, se debe insertar en su cabecera la indicación de la cola con la PDU que es retransmisión de una conexión privilegiada. Aunque las colas pueden contener células nativas ATM y PDU privilegiadas y, aparentemente esto puede conducir a situaciones injustas en las células respecto a las PDU, la estrategia aplicada, basada en los pesos y las longitudes de las colas, permite que no se produzcan situaciones de inanición de paquetes pequeños respecto a los de mayor tamaño. 36 Simulador de Tráfico ATM con Garantía de Servicio 7. Mecanismos de control de congestión Los esquemas de control de congestión más conocidos son RCD (Random Cell Discard), PPD (Partial Packet iscard) y EPD (Early Packet Discard). Avanzamos ya que el esquema EPD se ha demostrado como una solución interesante para conseguir óptimo funcionamiento desde el punto de vista de la justicia y utilización de los enlaces. Sin embargo, existen otros esquemas con idénticos objetivos que son maximizar el throughput y la justicia, mientras se minimiza el retardo en las redes ATM. Algunos de estos mecanismos son: ESPD (Early Selective Packet Discard) , FBA (Fair Buffer Allocation) y RED (Random Early Detection). Para TAP, se ha introducido y modificado una variación de EPD en TAP de forma que, cuando una de las PDU llega al buffer, esperamos a la célula final de cada PDU para aplicar EPD en los conmutadores AcTMs, desechando aquellas PDU que provoquen congestión en el buffer y solicitando su retransmisión mediante NACKs al conmutador previo. Las PDU que no provocan congestión en el buffer son enviadas a los puertos de salida de forma completa aplicando VC merge para aliviar también los problemas de interleaving. Cuando se llena el buffer de un conmutador congestionado, las células que llegan serán descartadas y, con una elevada probabilidad, muchos paquetes perderán células y mientras otras células seguirán su transmisión a través de la red, provocando el indeseable fenómeno que de la fragmentación de paquetes. Al evitar la fragmentación estamos optimizando el ancho de banda de los enlaces de la red que no se ven sobrecargados con las retransmisiones extremo-extremo, ni con la transmisión de PDU completas que pueden estar corruptas por la pérdida de una sola de sus células. En esta sección del proyecto explicaremos el mecanismo EPD para, a continuación, explicar la modificación que se ha implantado, basado en EPD (EPDR). 7.1. Antecedentes, mecanismo EPD El mecanismo EPD (Early Packet Discard), es una técnica de gestión de buffers implementada para asegurar un elevado throughput extremo a extremo. Este mecanismo realiza descartes de paquetes completos, en lugar de descartes parciales como hacen otros. EPD tirará los paquetes completos antes de que el buffer acabe llenándose, con la intención de que los paquetes que puedan ser susceptibles de perder alguna célula, y por tanto su integridad, no sean transmitidos por la red. Con EPD, en lugar de tirar células (o PDUs) de varias conexiones cuando el buffer se llena, este mecanismo opta por tirar una PDU completa antes de llenar el buffer. De este modo, también se evita fragmentación y se evita que paquetes corruptos se transmitan. 37 Simulador de Tráfico ATM con Garantía de Servicio Veremos ahora la simplicidad de este algoritmo para comprobar que su implementación es perfectamente asumible desde el punto de vista de la justicia y el goodput conseguidos. Para poder aplicar EPD, en los conmutadores, hay que establecer un umbral en los buffers a fin de marcar el llenado del buffer. Cuando este umbral es alcanzado, no se admitirá la entrada de más paquetes. Es decir, cuando llega la primera célula de un paquete a un buffer que está lleno hasta, o por encima de, su valor umbral, esa célula es desechada, y también todas las demás células pertenecientes a ese paquete, aunque la cola descienda inmediatamente su nivel de llenado por debajo del umbral. Por otro lado, las células de un paquete cuya primera célula llegó antes de que el buffer alcanzase el umbral no serán tiradas a no ser que el buffer acabe llenándose. En suma, cuando la primera célula de un paquete llega en un margen de llenado elevado del buffer, es descartada junto a todas las demás que pertenecen a su mismo paquete, ante el riesgo de provocarse la fragmentación del paquete. Lo importante de este método es escoger el valor del umbral para evitar el llenado del buffer con el consiguiente problema de fragmentación. Pero, además de la fragmentación, debemos encontrar el equilibrio que también evite el exceso de descartes de células y , por lo tanto, el número de retransmisiones. Entonces, si el umbral es demasiado alto, este mecanismo no servirá para nada y si es excesivamente bajo se tirarán un número excesivo de paquetes. En las siguientes figuras, se puede observar el funcionamiento de este mecanismo. TAC=Tamaño_actual_de_la_cola CMB=Capacidad_máxima_del_buffer_del_conmutador Mientras una célula está llegando a un conmutador; Si la célula es la primera célula de un paquete Si TAC >= Umbral En otro caso Aceptar la célula en cola FIFO FinSi En otro caso Si ya se ha tirado alguna célula de este paquete Tirar la célula En otro caso Si TAC >= CMB Tirar la célula En otro caso Aceptar la célula en cola FIFO FinSi FinSi FinSi FinMientras Figura 7.1 Algoritmo EPD 38 Simulador de Tráfico ATM con Garantía de Servicio Figura 7.2 Representación gráfica de EPD procesando PDUs AAL-5 El algoritmo EPD puede tener otros planteamientos o versiones, pero el problema general es el mismo. Una de estas versiones es la que aplicamos en este proyecto, el mecanismo EPDR. 7.2. Propuesta EPDR En este proyecto el esquema de control de buffer que empleamos es un mecanismo basado en EPD. Este mecanismo recibe el nombre de Early PDU Discard and Relay (EPDR). Este mecanismo: Incluye un mecanismo de retransmisión cuando se detectan PDU que van a provocar desbordamiento del buffer. Cuando se detecta el llenado del buffer, comienza el descarte de células y, automáticamente se solicita una retransmisión al conmutador previo. Esta propuesta permite la retransmisión de forma local, evitando retransmisiones extremo a extremo, y así, mejorando el goodput. Las retransmisiones sólo se solicitan en el caso que la fuente tenga suficiente tiempo de inactividad para atenderlas sin afectar a la transmisión en curso. Esta propuesta ahorra, en el peor de los casos, el tiempo RTT extremo a extremo (y ahorra el proceso de solicitud de retransmisión de protocolos superiores como TCP). Y lo que es más importante, la implosión en los emisores de tráfico es solventada por la delegación realizada en los conmutadores AcTMs que soportan la arquitectura TAP. El problema de la fragmentación de PDUs se solventa empleando el campo EOM de las tramas EAAL-5, que es, otra propuesta de este proyecto. 39 Simulador de Tráfico ATM con Garantía de Servicio El buffer es controlado por un agente programable que permite la coordinación con otros agentes del sistema para ajustar los umbrales más convenientemente en función del estado del conmutador. El coste algorítmico es similar a otros esquemas de este tipo. Los requisitos hardware para su implementación no son extraordinarios. En la figura 7.3 se muestra el algoritmo EPDR. Se puede observar la introducción (respecto al algoritmo EPD) de una llamada a la función Retransmitir (indexPDU). El umbral lo determina el agente CCA aunque, en la implementación del simulador, este valor se introduce manualmente. Como podemos comprobar en el algoritmo, en cuanto la longitud actual de la cola iguala el valor del umbral, el conmutador se dispondrá a tirar todas las células de la PDU que ha provocado la situación. Cuando llega la primera célula de una PDU y ya se ha igualado el umbral, se tira esa célula y se marca el VPI/VCI de la célula en la lista-descartes para, a continuación, tirar todas las células de esa misma PDU hasta llegar a su última célula (EOM). Este es el modo en que se garantiza que no se produzca la fragmentación de la PDU, impidiendo que no se envíe ninguna célula de una PDU que ha provocado una situación de congestión. Una vez ha llegado la última célula de la PDU congestionada, y puede accederse al campo PDUid, se solicita la retransmisión de la PDU a través del agente RCA. Una vez solicitada la retransmisión de la PDU se procede a eliminar el valor VPI/VCI de la lista-descartes para que la siguiente PDU de esa misa conexión pueda ser aceptada en el buffer si ya ha pasado la situación de congestión. La célula EOM de la trama descartada se introduce en el buffer (si hay espacio), ya que esta célula, la emplea EAAL-5 para delimitar las diferentes PDUs. Con esta célula EOM se sabe cuando acaba una trama descartada. Este mecanismo, al igual que el EPD, no evita la fragmentación una vez que las células iniciales han entrado en el buffer y éste se ha llenado. Y, como ocurría en el algoritmo EPD, la fragmentación depende del valor del umbral establecido en el buffer del conmutador. Este valor del umbral debería ser unas 3 o 4 veces menor que el tamaño medio de una PDU. Aunque las células iniciales hayan podido entrar en el buffer, el resto de células serán automáticamente descartadas al saber que la trama está corrompida. Mientras una célula llega al buffer Si el VPI/VCI de la célula pertenece a la lista-descartes Si la célula es una célula EOM Si Longitud_de_Cola < Tamaño_Buffer insertar la célula en el buffer En otro caso tirar la célula FinSi Retransmitir(indexPDU) borrar el VPI/VCI de la lista-descartes FinSi En otro caso tirar la célula FinSi En otro caso Si Longitud_de_Cola < umbral insertar la célula en el buffer 40 Simulador de Tráfico ATM con Garantía de Servicio En otro caso Si (primera célula de PDU o (el buffer está lleno)) tirar la célula capturar el VPI/VCI en la lista-descartes FinSi En otro caso insertar la célula en el buffer FinSi FinSi FinMientras Figura 7.3 Esquema de planificación del algoritmo EPDR En la figura 7.4 se representa el funcionamiento del EPDR. Podemos observar el punto de llegada del tráfico de entrada, así como los límites de los valores de la Conexión actual de cola (LAC), el valor umbral (U), y el valor de tamaño máximo del buffer (TMB). También se muestra la conexión existente entre el buffer y el agente WFQA, CCA, RCA y DPA, así como la conexión del buffer con la memoria DMTE en la que se realizan las copias de las PDUs que han llegado completas al buffer. Figura 7.4 Esquema gráfico del buffer 41 Simulador de Tráfico ATM con Garantía de Servicio BASES DE LA SIMULACIÓN 8. Introducción En este módulo se expone un estudio de los mecanismos y procesos que intervienen en las redes ATM reales. Esto es necesario ya que, como es natural, hay que conocer profundamente la realidad que se pretende simular antes de intentar simularla. En nuestro caso, nuestro proyecto se centrará en conseguir un tráfico lo suficientemente real como para poder estudiar las ventajas de la implantación de TAP en las redes ATM. Por ello habrá ciertos aspectos de ATM que no serán necesario simular, ya sea porque no intervienen en TAP o porque su inclusión oscurecería el análisis de los resultados obtenidos. En este módulo, por tanto, procuraremos explicar qué está simulado, qué está simplificado, qué ha cambiado y qué se ha omitido y qué se ha añadido en nuestro simulador con respecto a una red ATM real. 9. Funciones y algoritmos de gestión de conexiones 9.1. Funciones y algoritmos de gestión de conexiones en las redes ATM reales. En esta sección vamos a describir primeramente el proceso real en las redes ATM mediante el cual se negocian, establecen y liberan las conexiones en las interfaces UNI y NNI. Posteriormente presentaremos el método de establecimiento de conexiones en nuestro simulador junto con aquellas estructuras y mensajes (tablas de enrutamiento, mensajes de establecimiento/cierre de la conexión, etc.) que serán utilizados. 9.1.1. Señalización Como ATM es un servicio orientado a conexión se necesitan protocolos específicos de señalización, estructuras de enrutamiento así como protocolos que encaminen las peticiones de conexión ATM a través de la red ATM. Las siguientes secciones describen el papel de la señalización en una red ATM. Como comentamos en el módulo I, los servicios orientados a la conexión de ATM se implementan usando conexiones virtuales permanentes (PVCs) o conexiones virtuales conmutadas (SVCs). En el caso de las PVC, el valor del par VPI/VCI en cada punto de 42 Simulador de Tráfico ATM con Garantía de Servicio conmutación de la conexión se debe configurar manualmente y permanece activo de manera permanente. Debido a que estos circuitos requieren una labor intensiva de configuración no son muy escalables y no son una buena solución para las conexiones poco frecuentes o de corta duración. Los SVCs son la solución para los requerimientos de las conexiones bajo demanda. Son establecidos cuando son necesarios y desactivados cuando ya no lo son, liberando así ancho de banda en la red. Para lograr esta conducta dinámica los SVCs usan señalización: Para que dos elementos finales obtengan una conexión es necesario que ambas sigan un criterio común, esto es, dispongan de un protocolo de señalización común. En los SVC el sistema de señalización de ATM se encarga de encontrar la ruta adecuada desde el host origen al host destino a lo largo de varios switches. El host remoto debe aceptar el establecimiento de la conexión. Además de los PVCs y los SVCs hay un tercer tipo híbrido de ambos llamado PVCs ligeros. Estas conexiones son permanentes pero, como son establecidas mediante señalización, pueden ser configuradas fácilmente y re-enrutadas automáticamente si falla uno de los enlaces que la componen. 9.1.1.1. Establecimiento de la conexión y señalización Hay varias maneras de establecer una conexión. La normal es adquirir primero un circuito virtual con el conmutador inmediatamente adyacente para la señalización, y usarlo. Para establecer tal circuito, como veremos más adelante según la interface UNI, las células que contienen una solicitud se envían por el VPI 0/VCI 5. Si hay éxito, se abre un circuito virtual nuevo por el se pueden enviar y recibir solicitudes y respuestas de establecimiento de conexión. En la figura a se muestra cómo el router A (origen) establece una comunicación con el router B (destino) usando señalización con un circuito virtual ya previamente establecido para este propósito. Figura 9.1 Ejemplo de conexión Los pasos del proceso son los siguientes: 1- El Router A envía un paquete con un mensaje SETUP al conmutador directamente conectado a él (conmutador ATM 1). Esta petición contiene la dirección ATM de ambos extremos origen y destino así como las características demandadas para la conexión. 2- El conmutador ATM 1 reensambla el paquete del router A y lo examina. Responde al Router A con un mensaje de establecimiento. 3- Si el conmutador ATM 1 tiene una entrada para el router B en su tabla de conmutación y 43 Simulador de Tráfico ATM con Garantía de Servicio puede acomodar la QoS demandada por la conexión, entonces reserva recursos para la conexión virtual y reenvía la petición hacia el siguiente conmutador (conmutador ATM 2) a través de una trayectoria dada. 4- Cada conmutador a lo largo del camino hacia el router B reensambla y examina el paquete de señalización y posteriormente lo reenvía al siguiente conmutador tan sólo si puede soportar los parámetros de tráfico en las interfaces de entrada y de salida. A medida que el mensaje de establecimiento se propaga hacia el destino, es reconocido en cada salto por un mensaje de llamada en proceso. Cuando ser remite el paquete cada conmutador establece también las conexiones virtuales. Si cualquier conmutador a lo largo de la trayectoria no puede satisfacer las demandas de tráfico la petición se rechaza y se envía de vuelta al router A un mensaje de conexión rechazada. 5- Cuando el paquete de señalización legua al router B, éste lo reensambla y evalúa. Si puede soportar las demandas entonces responde con el mensaje de aceptación de conexión que será respondido por cada elemento por el que pase por uno de conexión reconocida. Cuando el mensaje de aceptación llega de vuelta al router A se completa la conexión virtual. Posteriormente los datos serán transmitidos a lo largo del mismo camino por el que ha discurrido la señalización. Cuando llega el momento de cortar la conexión se utiliza otra secuencia de señalización: 1- La parte que desea cortar envía un mensaje de liberación a la red ATM 2- En cada salto a lo largo del camino se reconoce el mensaje con uno de liberación completada. 3- La red ATM propaga el mensaje de liberación al otro extremo y termina el proceso de liberación; la conexión se considera así liberada. Protocolos de Señalización ATM--- UNI y NNI Los protocolos de señalización varían dependiendo de la interface de red ATM: •Señalización en el Interface Usuario-Red (UNI): Se usa entre los sistemas finales y los conmutadores ATM a través de enlaces UNI. También puede usarse entre dos conmutadores ATM. •Señalización en el Interface Red-Red (NNI): Se usa entre conmutadores ATM mediante enlaces NNI. La señalización UNI en ATM define el protocolo mediante el cual los SVCs se establecen dinámicamente entre los dispositivos ATM de la red. La señalización NNI es parte de la especificación PNNI que incluye además un protocolo de enrutamiento propio. EL ATM Forum tiene la tarea de estandarizar los procedimientos de señalización. Las especificaciones para UNI del ATM Forum están basadas en el protocolo llamado Q.2931 del ITU-T. Este protocolo especifica un formato para los mensajes de control de llamada que contiene información como el tipo de mensaje (establecimiento, liberación y otros) y más elementos de información como el formato de enrutamiento y la QoS. Las especificaciones UNI están agrupadas de la siguiente forma: •UNI 3.x -- Consistente en dos conjuntos de especificaciones interoperativas, la UNI 3.0 y la UNI 3.1. •UNI 4.0 -- Incluye las especificaciones UNI 3.x y añade algunas características no soportadas 44 Simulador de Tráfico ATM con Garantía de Servicio por aquella. Entre estas características destacan la señalización para conexiones ABR y el PNNI que especifica los protocolos de enrutamiento y señalización a través del NNI. • Los mensajes de control más significativos especificados en la UNI 3.1 son los siguientes: •Para conexiones p-p - SETUP: petición de establecimiento de circuito. - CALL PROCEEDING: respuesta a la anterior. - CONECT: aceptación de conexión. - CONNECT ACKNOWLEDGE: confirmación de la anterior. - RELEASE: petición de liberación de la conexión. - RELEASE COMPLETE: aceptación de la anterior. •Para conexiones p-mp - ADD PARTY: añade un destino a la conexión. - ADD PARTY ACKNOWLEDGE: confirmación de la anterior. - ADD PARTY REJECT: rechazo. - DROP PARY: elimina un destino de la conexión. - ADD PARTY ACKNOWLEDGE: confirmación de la anterior. Todos estos mensajes los construye la capa AAL y como media cada uno de ellos se descompondrá en al rededor de 30 células. 9.1.2. Direccionamiento Las direcciones ATM son necesarias para los propósitos de la señalización cuando se establecen conexiones conmutadas. Existen tres formatos de direcciones ATM diferentes dependiendo del estándar de enrutamiento utilizado (OSI, CCITT). Sin embargo este aspecto (el formato y distribución de las direcciones) queda fuera del ámbito de nuestro simulador ya que no aporta nada a su propósito principal, es de comprobar las características de funcionamiento de la arquitectura TAP. Como veremos posteriormente, el protocolo que hemos elegido para el enrutamiento no necesita de direccionamientos jerárquicos lo que también justifica en cierta medida nuestra decisión. 9.1.3. Enrutamiento Existen dos protocolos de enrutamiento ATM: el "Interim Interswitch Signaling Protocol" (IISP) y el "Private Network-Node Interface" (PNNI). IISP proporciona soluciones de enrutamiento estático no fácilmente escalables y no aporta soporte para calidad de servicio (QoS). PNNI proporciona una solución de enrutamiento escalable que determina dinámicamente los caminos de enrutamiento y además soporta los requerimientos de QoS. 45 Simulador de Tráfico ATM con Garantía de Servicio 9.1.3.1. Enrutamiento estático con IISP Como su propio nombre indica, el "Protocolo Interino de Señalización entre Conmutadores" (IISP) es un protocolo de señalización para comunicaciones entre conmutadores. IISP fue una medida temporal diseñada para permitir interconexión entre conmutadores usando señalización basada en UNI hasta que la implementación del NNI, en la que está basada el protocolo PNNI, estuviera finalizada. Aunque menos poderoso y complejo que PNNI, IISP todavía se usa hoy en día para permitir la compatibilidad con conmutadores primitivos que no soportaban el protocolo PNNI. IISP también puede ser usado para aislar la distribución de información PNNI en situaciones de diseño de red específicas. Para permitir la señalización UNI, los conmutadores arbitrariamente toman el papel de usuario (U) o red (N) en cada extremo de un enlace IISP. Las peticiones de señalización son encaminadas entre conmutadores usando tablas de enrutamiento preconfiguradas en cada conmutador. Estas tablas se configuran con las direcciones de los elementos a los que se puede acceder a través de cada puerto del conmutador. Cuando un conmutador recibe una petición de señalización, éste comprueba la dirección ATM destinataria en su tabla y obtiene el puerto por el que deberá salir esta petición. Posteriormente redirige la petición de señalización a través del puerto obtenido usando los procedimientos UNI. El enrutamiento usando IISP requiere configuración manual de las tablas de enrutamiento. Para un número pequeño de caminos posibles es una tarea relativamente simple, pero en grandes redes la configuración requiere mucho tiempo y es propicia a errores. Ventajas: Algunas de las ventajas ofrecidas por IISP son las siguientes: •Simple de configurar y de encontrar errores en redes pequeñas. •Soportado por una la mayoría de los proveedores •Puede usarse para conectar redes privadas ejecutando diferentes implementaciones propietarias del PNNI Inconvenientes Las limitaciones potenciales del IISP son las siguientes: •Configuración estática de enrutamientos. •No muy escalable debido a la configuración manual de las tablas de enrutamiento. •El cálculo de la ruta debe hacerse salto a salto. Cada conmutador debe elegir la el puerto de salida para cada mensaje. •Soporte limitado para QoS. •No hay redireccionamiento "crankback" en caso de errores en la red. Sin embargo se pueden configurar trayectorias redundantes. 46 Simulador de Tráfico ATM con Garantía de Servicio 9.1.3.2. Señalización y enrutamiento PNNI El protocolo PNNI provee de mecanismos escalables de enrutamiento basados en la QoS de ATM y VCCs conmutador-a-conmutador interoperables. Para conseguir esto la especificación PNNI actúa en dos vertientes, señalización y enrutamiento. 9.1.3.2.1. Rasgos de la señalización PNNI La señalización PNNI es una extensión de la señalización UNI para su uso en enlaces NNI. La peticiones de señalización UNI, transportadas en el mismo canal virtual (VCI = 5), son mapeadas en señalización NNI en el primer conmutador origen de una comunicación. La señalización NNI es remapeada de nuevo a señalización UNI en el último conmutador destino. Entre los rasgos característicos de la señalización PNNI se encuentran los siguientes: •soporta UNI 3.1-incluyendo conexiones p-p y p-mp •soporta UNI 4.0-con las siguientes capacidades: •parámetros individuales de QoS •señalización ABR •Negociación de parámetros de tráfico •CoS •ATM anycast 9.1.3.2.2. Rasgos del enrutamiento PNNI El componente de enrutamiento del protocolo PNNI especifica cómo las peticiones de señalización y sus subsecuentes conexiones de datos se enrutan a través de una red ATM. Entre los rasgos característicos del enrutamiento PNNI se encuentran los siguientes: •Protocolo con conocimiento de la topología mediante mensajes intercambiados por los elementos de la red a través de mecanismos de inundación. •Configuración automática. •Encaminamiento dinámico. Reacciona al estado de la topología. •"Source routing". El conmutador ATM origen de una comunicación calcula por completo la ruta en el establecimiento de conexiones a partir de su conocimiento de la topología actual. Esta ruta la comunica a los demás conmutadores de la trayectoria elegida incluyéndola en el mensaje de establecimiento por lo que éstos no deberán recalcularse. •Selección de la ruta que satisfaga los parámetros de QoS requeridos por la conexión. •Soporta redes PNNI jerárquicas. • Soporta "crankback". 47 Simulador de Tráfico ATM con Garantía de Servicio 9.1.4. CAC “Connection Admission Control” Hasta este momento hemos visto cuál es el proceso de establecimiento de una conexión, los mensajes se intercambian los elementos que intervienen en el este proceso y las diversas formas de elección de la ruta para dicha conexión. Sin embargo aún no hemos expuesto qué mecanismo es el que se encarga de aceptar o rechazar una nueva conexión. Este mecanismo es el CAC "connection admission control". Por lo tanto la función del CAC es la de decidir si podemos incluir una nueva conexión sobre la base de los recursos que demanda el usuario y los que tenemos disponibles. Se utiliza, pues, como mecanismo preventivo de control de congestión. El CAC se halla implementado en los nodos de conmutación de la red ATM. Como hemos descrito anteriormente, cuando un terminal m1 empieza una conexión contra otro terminal m2 , m1 debe enviar un pedido de conexión (ESTABLECIMIENTO), al controlador de tráfico del nodo ATM. El pedido de conexión indicará información tal como el ID del destino, el QoS requerido y los parámetros de tráfico que definen las características de generación de la conexión. El nodo ATM estima el QoS de los parámetros de tráfico y permite que m1 establezca la conexión sólo cuando esta nueva conexión no degrade el QoS de ningún terminal. Los algoritmos que realizan el control de admisión no están especificados en ningún estándar. En lugar de ello se deja al fabricante implementar el mecanismo que crea oportuno de acuerdo con el producto que quiera ofrecer. A continuación mencionaremos una clasificación de tipos de algoritmos CAC creados hasta el momento. 9.1.4.1. Asignación no estadística “Peak Bandwidth Allocation” En este tipo de algoritmos la nueva conexión se acepta si la suma de todas las tasas de pico más la tasa de pico de la nueva conexión es menor que la capacidad del enlace. Es fácil de implementar, solamente necesitaremos conocer la tasa de pico de la nueva conexión. Sin embargo, debido a que el tráfico generalmente se genera a ráfagas, los puertos de salida estarán infrautilizados. 9.1.4.2. Asignación estadística Asignamos una capacidad por fuente inferior a la tasa de pico. La suma de todas las tasas de pico puede ser superior a la capacidad de la fuente. Para ello necesitamos conocer el régimen de llegadas de las fuentes. Es computacionalemente costoso pero sin embargo hace buen uso de los puertos de salida. 9.1.4.3. Basado en medidas Realiza una monitorización de los flujos tomando cierta cantidad de medidas como la tasa de pico, utilización o el tamaño de ráfaga. Estima el CLR o el ancho de banda efectivo en función de descriptores de tráfico y las medidas tomadas. 48 Simulador de Tráfico ATM con Garantía de Servicio 9.1.5. Tablas de enrutamiento de VCCs Los diseñadores de ATM quisieron evitar dedicar demasiado tiempo de cómputo en los conmutadores a determinar la manera de obtener la línea de salida para una célula a partir de su información de circuito virtual. Por ello diseñaron la capa ATM para hacer posible un enrutamiento eficiente. En la capa ATM los conmutadores, para enrutar eficientemente las células de datos que llegan a un conmutador hacia el puerto de salida adecuado, almacena unas tablas internas de enrutamiento llamadas tablas VCCs. Estas tablas se rellenan para cada conexión en el momento en el que ésta se establece. Posteriormente, durante el tiempo que dure el circuito virtual, cada conmutador enviará las células siempre por el mismo camino usando la tabla VCCs. No se puede asignar dentro de un mismo conmutador el mismo par VCI/VCI a dos conexiones activas en un mismo instante. Esta forma de enrutamiento se diferencia de la usada por los conmutadores de paquetes en que en aquellos la ruta de destino se calcula individualmente para cada paquete, de este modo la ruta a seguir podría cambiar entre un paquete y el siguiente. Por contra, en la conmutación de células, cada una de las células pertenecientes a una misma conexión siguen todas la misma ruta. Una tabla VCC en un conmutador podría presentar la siguiente forma: DESDE HACIA Puerto VPI VCI Puerto VPI VCI 5 33 7 3 3 1 1 3 * 2 7 * 2 7 3 4 9 7 Tabla 9.1: Tabla VCC genérica. Según esta tabla de ejemplo, todo tráfico que llegue al conmutador por el enlace 5 con VPI = 33 y VCI = 7 serán dirigidas al enlace 3 con VPI = 3 y VCI = 1. Si queremos que el conmutador soporte conexiones p-mp será necesario que para cada terna Puerto/VPI/VCI pueda haber más de una terna de destino. Por ejemplo: 49 Simulador de Tráfico ATM con Garantía de Servicio DESDE HACIA Puerto VPI VCI Puerto VPI VCI 5 33 7 3 3 1 4 1 3 5 2 1 1 3 * 2 7 * 2 7 3 4 9 7 Tabla 9.2: TablaVCC genérica con conexiones p-mp Como hemos visto en este ejemplo el conmutador cambia los valores de VPI y VCI de salida con respecto a los de entrada. Los conmutadores que cambian ambos valores se denominan conmutadores VC en contraposición a los conmutadores VP que tan solo modifican el valor de VPI dejando el VCI intacto. Los conmutadores VC aplican un mayor nivel de complejidad, ya que manejan atributos como el nivel de errores, calidad de servicio, ancho de banda o servicios relacionados con la tarificación. Lo normal es que los conmutadores que estén sólo conectados a otros conmutadores sean conmutadores VP mientras que los conmutadores VC serán los que se encuentren conectados directamente por algunos de sus puertos a un terminal. 9.2. Funciones y algoritmos de gestión de conexiones de “simSwitch” Una vez presentados los mecanismos que utiliza ATM para la señalización enrutamiento y la gestión de conexiones, seguidamente pasaremos a explicar cuáles serán los mecanismos que utilizará nuestra simulación para realizar todas estas labores. Seguiremos un orden análogo al de los anteriores puntos por lo que primeramente nos centraremos en la señalización, continuaremos describiendo el protocolo de establecimiento y liberación de conexiones, seguiremos profundizando en el método de enrutamiento elegido y finalmente, tras presentar el algoritmo CAC implementado, acabaremos con el método de contrucción y mantenimiento de las tablas VCC. 9.2.1. Señalización en la simulación La señalización en "simSwitch" está basada en la especificación UNI 3.0. Se ha optado por ésta principalmente por el hecho de que las especificaciones posteriores están basadas en ella y son muy similares en cuanto a la señalización. Otra razón es que, como veremos en el apartado de enrutamiento, hemos escogido el protocolo de enrutamiento IISP diseñado para trabajar sobre UNI en cualquier enlace de la red, ya sea entre conmutadores o entre un elemento final y un conmutador. Por último la señalización UNI 3.0 es la más simple y fácil de entender con lo que, además de proveer al simulador de un método de señalización realista, no oscurecemos el código 50 Simulador de Tráfico ATM con Garantía de Servicio con algoritmos y protocolos complicados de implementar y entender. 9.2.1.1. Mensajes de señalización En la especificación original los mensajes de señalización se empaquetan en PDUs AAL. Nosotros, debido a la mayor simplicidad de nuestra implementación, los mensajes de señalización los reduciremos a una sola célula por mensaje. Los elementos de la red reconocerán a una célula como "célula de señalización" si al examinar el par VPI/VCI comprueban que pertenece al canal de señalización, el 0/5. Este canal será un circuito virtual permanente en cada enlace y por lo tanto no será necesario su establecimiento previo a la hora de mandar mensajes de señalización. Un tipo de mensaje se diferenciará de otros mediante un "Id de mensaje" presente en el payload de la célula de señalización. 9.2.1.2. Tipos de mensajes Los mensajes de señalización que se intercambiarán los elementos de la red entre sí y la información que contendrá cada célula quedan reflejados en la siguiente tabla: Id Nombre Significado Parámetros 0 SETUP 1 CALL PROCEEDING 2 CONECT 3 CONECT ACKNOWLEDGE 4 RELEASE 5 RELEASE COMPLETE 6 ADD PARTY Esta función del protocolo permite a un usuario pedir VPI/VCI el establecimiento de una conexión a un cierto destino. Dir. Origen Dir. Destino PCR ToS grado GoS Mandado de un usuario a la red o de la red a un VPI/VCI usuario para indicar que la el establecimiento de conexión solicitado está siendo iniciado. El usuario manda este mensaje a la red y la red VPI/VCI usuario para indicar la aceptación de la conexión. La red manda este mensaje a un usuario o un usuario a VPI/VCI la red para indicar se ha recibido el mensaje CONNECT. Un usuario manda este mensaje a la red o la red a un VPI/VCI usuario para pedir la finalización de una conexión establecida p-p o p-mp. La red manda este mensaje a un usuario o un usuario a VPI/VCI la red para confirmar la liberación de la conexión. También es utilizado por la red o por un usuario para rechazar una solicitud de conexión. Un usuario manda este mensaje a la red o la red lo VPI/VCI manda a un usuario para añadir un nuevo receptor a Dir Origen una conexión en conexiones p-mp. Es equivalente al Dir Destino mensaje SETUP. PCR ToS grado GoS 51 Simulador de Tráfico ATM con Garantía de Servicio 7 ADD PARTY La red manda este mensaje a un usuario o un usuario a VPI/VCI ACKNOWLEDGE la red para indicar la aceptación del mensaje anterior. Tabla 9.3: Tipos de mensajes de señalización. Se fijará el lector en que no hemos introducido ningún mensaje de rechazo de conexiones. Esto es debido a que en nuestro simulador ninguna conexión es rechazada. Lo hemos dispuesto para poder forzar situaciones de congestión a voluntad en los conmutadores de la red. Todas aquellas conexiones que según el CAC no debieran ser aceptadas son, por tanto, admitidas sin reservas. De la misma forma cualquier sumidero aceptará los parámetros de conexión que le proponga una fuente. La única excepción a esta regla se produce cuando una fuente intenta establecer una conexión mediante SETUP o ADD PARTY con un sumidero destino no existente. En tal caso la red responde a la fuente con un mensaje RELEASE COMPLETED. Seguidamente pasamos a explicar más detenidamente cuáles son las funciones de los parámetros de las conexiones. - - - VPI/VCI --> El par de valores VCI/VPI con el que los datos enviados de la conexión llegarán al elemento en cuestión. En las células SETUP y ADD PARTY se utiliza para inicializar los valores de las tablas VPI/VCI. En las demás células se sirven para localizar la conexión a la que van dirigidas dentro de un elemento.. Dir Origen, Dir Destino --> Las direcciones únicas del extremo origen y el extremo destino de una conexión. Utilizados como índices en las tablas de enrutamiento de cada conmutador para decidir el puerto de salida de un mensaje de señalización. PCR --> PCR de la conexión solicitante. Usado para la adjudicación de pesos en las colas del algoritmo WFQA en los conmutadores y como parámetro para el CAC. ToS --> Tipo de servicio que se solicita al extremo receptor. Puede ser ordenado o no ordenado. Grado GoS --> Grado de garantía de servicio solicitado. Si su valor es cero la conexión no solicita GoS. Seguidamente expondremos un ejemplo de establecimiento y liberación de conexiones en diagramas temporales para conexiones p-p y p-mp. En el ejemplo p-p vemos como el router A intenta establecer una conexión con el router B a través de dos conmutadores. Se muestra también la interface que actúa en cada lado de la comunicación. 52 Simulador de Tráfico ATM con Garantía de Servicio SETUP SETUP CALL PROCEEDING SETUP CALL PROCEEDING CALL PROCEEDING t CONECT CONECT CONECT ACK CONECT CONECT ACK CONECT ACK ROUTER A CONMUTADOR A CONMUTADOR B ROUTER B Figura 9.2: Cronograma del proceso de establecimiento de conexión con éxito. SETUP t RELEASE COMPLETE ROUTER A CONMUTADOR A CONMUTADOR B ROUTER B Figura 9.3: Cronograma del proceso de establecimiento de conexión sin éxito. RELEASE RELEASE t RELEASE COMPLETE RELEASE RELEASE COMPLETE RELEASE COMPLETE ROUTER A CONMUTADOR A CONMUTADOR B Figura 9.4: Cronograma del proceso de liberación de conexión. 53 ROUTER B Simulador de Tráfico ATM con Garantía de Servicio ADD PARTY ADD PARTY ADD PARTY t ADD PARTY ACK ADD PARTY ACK ADD PARTY ACK ROUTER A CONMUTADOR A CONMUTADOR C ROUTER C Figura 9.5: Cronograma del proceso de adición de un nuevo destino en conexiones p-mp con éxito. ADD PARTY t RELEASE COMPLETE ROUTER A CONMUTADOR A CONMUTADOR B ROUTER B Figura 9.6: Cronograma del proceso de adición de un nuevo destino en conexiones p-mp sin éxito. 9.2.1.3. Estados de llamada en conexiones. Debido a que muchas llamadas pueden existir simultáneamente en el UNI, y a que cada llamada puede estar en diferentes estados, se debe definir sin ambigüedades el estado de la interface. Los posibles estados, con sus significados para la interface N y la U son los siguientes: - NULL (0): No hay llamada - CALL INITIATED (1): U: Se ha mandado un mensaje SETUP y se está a la espera de la confirmación. N: Se ha recibido un mensaje SETUP pero aun no se ha confirmado - OUTGOING CALL PROCEEDING (3): U: Se ha recibido confirmación del mensaje SETUP. N: Se ha mandado confirmación al mensaje SETUP recibido. -CALL PRESENT (6): U: Se ha recibido un mensaje SETUP que aun no se ha confirmado. N: Se he enviado un mensaje SETUP que aún no ha sido confirmado. 54 Simulador de Tráfico ATM con Garantía de Servicio -CONNECT REQUEST (8): U: Se ha confirmado un mensaje SETUP recibido. N: Se ha recibido confirmación de un mensaje SETUP enviado - INCOMING CALL PROCEEDING (9): U: Se ha aceptado una petición de conexión con un mensaje CONNECTION. N: Se ha recibido un mensaje CONECCTION aceptando una petición de conexión. - ACTIVE (10): U: Se ha recibido confirmación al mensaje CONNECTION en el extremo receptor de la petición original de conexión. En el caso del emisor, éste pasa al estado ACTIVE cuando envía un mensaje de confirmación de conexión. N: Se ha mandado confirmación al mensaje CONNECTION al extremo receptor de la petición original de conexión o se ha mandado un mensaje CONNECTION al origen de la petición de conexión. - RELEASE REQUEST (11): U: Se manda un mensaje RELEASE de petición de liberación de la conexión aún no confirmado. N: Se recibe un mensaje RELEASE antes de su confirmación. - RELEASE INDICATION (12) U: Se ha recibido un mensaje RELEASE y aún no se ha confirmado N: Se ha mandado un mensaje RELEASE no confirmado aún. Es de importancia diferenciar entre el lado de usuario o el lado de red ya que, como veremos más tarde, según el protocolo de enrutamiento que hemos elegido, el IISP, un conmutador puede arbitrariamente tomar el papel de usuario o red en cada extremo de un enlace. Existen dos estados más asociados con las conexiones p-mp. Estos estados tienen el mismo significado en el lado del usuario o de la red y son los siguientes: - ADD PARTY INITATED (P1): Se ha mandado un mensaje ADD PARTY. - ADD PARTY RECIVED (P2): Se ha recibido un mensaje ADD PARTY. Toda fuente se debe comprometer a no mandar células de datos hasta que no haya establecido la conexión con todos los sumideros de una comunicación p-mp. Debido a que muchas llamadas pueden existir simultáneamente en el UNI, y a que cada llamada puede estar en diferentes estados, se debe definir sin ambigüedades el estado del interface. Los posibles estados, con sus significados para la interface N y la U son los siguientes: - NULL (0): No hay llamada - CALL INITIATED (1): U: Se ha mandado un mensaje SETUP y se está a la espera de la confirmación. N: Se ha recibido un mensaje SETUP pero aun no se ha confirmado - OUTGOING CALL PROCEEDING (3): U: Se ha recibido confirmación del mensaje SETUP. N: Se ha mandado confirmación al mensaje SETUP recibido. -CALL PRESENT (6): U: Se ha recibido un mensaje SETUP que aun no se ha confirmado. N: Se he enviado un mensaje SETUP que aún no ha sido confirmado. -CONNECT REQUEST (8): U: Se ha confirmado un mensaje SETUP recibido. N: Se ha recibido confirmación de un mensaje SETUP enviado - INCOMING CALL PROCEEDING (9): U: Se ha aceptado una petición de conexión con un mensaje CONNECTION. N: Se ha recibido un mensaje CONECCTION aceptando una petición de conexión. 55 Simulador de Tráfico ATM con Garantía de Servicio - ACTIVE (10): U: Se ha recibido confirmación al mensaje CONNECTION en el extremo receptor de la petición original de conexión. En el caso del emisor, éste pasa al estado ACTIVE cuando recibe un mensaje de confirmación de conexión. N: Se ha mandado confirmación al mensaje CONNECTION al extremo receptor de la petición original de conexión o se ha mandado un mensaje CONNECTION al origen de la petición de conexión. - RELEASE REQUEST (11): U: Se manda un mensaje RELEASE de petición de liberación de la conexión aún no confirmado. N: Se recibe un mensaje RELEASE antes de su confirmación. - RELEASE INDICATION (12) U: Se ha recibido un mensaje RELEASE y aún no se ha confirmado N: Se ha mandado un mensaje RELEASE no confirmado aún. Es de importancia diferenciar entre el lado de usuario o el lado de red ya que, como veremos más tarde, según el protocolo de enrutamiento que hemos elegido, el IISP, un conmutador puede arbitrariamente tomar el papel de usuario o red en cada extremo de un enlace. Existen dos estados más asociados con las conexiones p-mp. Estos estados tienen el mismo significado en el lado del usuario o de la red y son los siguientes: - ADD PARTY INITATED (P1): Se ha mandado un mensaje ADD PARTY. - ADD PARTY RECIVED (P2): Se ha recibido un mensaje ADD PARTY. Toda fuente se debe comprometer a no mandar células de datos hasta que no haya establecido la conexión con todos los sumideros de una comunicación p-mp. 9.2.1.4. Diagrama de estados de una conexión Seguidamente mostramos el diagrama de estados para las interfaces de usuario y de red. Cada conexión iniciada, en curso o liberándose se encuentra en uno de estos estados. El diagrama a) muestra los estados en la interface de usuario de un elemento que inicia la conexión. El diagrama b) muestra los estados en la interface de usuario pero para un elemento receptor de la petición de conexión. En el c) se muestra el iniciador en la interface N y por último, en el d) se muestra la parte receptora en la interface N. Los textos de los arcos se leen de la siguiente forma: RECIVE EL MENSAJE x/ ENVÍA EL MENSAJE y Si en alguno de las dos partes aparece un signo de multiplicación “*“ querrá decir que se trata de una comunicación entre interfaces. En el caso de que el asterisco aparezca en la primera parte (esto es, antes de “/”) se tratará de una notificación recibida de la otra interface. Si por el contrario el asterisco aparece en la segunda parte (esto es, tras “/”) indicará que se notifica a la otra interface el mensaje recibido. Por ejemplo, un arco con un texto “*/SETUP” indicará que se ha recibido de la interface de entrada una notificación de llegada de un mensaje de señalización SETUP que provocará que esta interface, la de salida, envíe un mensaje SETUP por donde corresponda. 56 Simulador de Tráfico ATM con Garantía de Servicio Figura 9.7: Diagrama de estados en una fuente Figura 9.8: Diagrama de estados en un sumidero 57 Simulador de Tráfico ATM con Garantía de Servicio Figura 9.9: Diagrama de estados en la interface de entrada en de un conmutador Figura 9.10: Diagrama de estados en la interface de salida en de un conmutado 58 Simulador de Tráfico ATM con Garantía de Servicio 9.2.1.5. Acciones a realizar en cada estado Dependiendo del estado en el que se encuentre una conexión y de los mensajes recibidos o enviados se deberán realizar diferentes acciones. En los siguientes puntos se describen esas acciones para cada estado e interface. - U0.- Una conexión se encuentra en este estado si ha finalizado o está a la espera de activarse. Una fuente con una conexión en este estado deberá comprobar si ha llegado el momento de activarla. Si es así construirá un mensaje SETUP con los datos de la conexión y lo mandará al conmutador al que esté conectado. Un sumidero con una conexión en este estado esperará a un mensaje SETUP tras el cual procederá a inicializar los elementos necesarios para el seguimiento de la conexión. - U1.- Una conexión se encuentra en este estado si está a la espera de recibir un mensaje CALL PROCEEDING o un mensaje RELEASE COMPLETE. Cuando se recibe un CALL PROCEEDING se obtiene el valor de VPI/VCI que nos servirá para diferenciar los mensajes dirigidos a esta conexión de los dirigidos a otras posibles conexiones. Una fuente con una conexión en este estado no iniciará el proceso de abrir ninguna otra conexión. El VPI/VCI seleccionado para esta conexión se obtendrá del mensaje CALL PROCEEDING. Cuando se recibe un RELEASE COMPLETE, la conexión se anula y por lo tanto no se mandará ninguna célula de información para ella. - U3.- Una conexión en este estado se encuentra a la espera de un mensaje CONNECTION confirmando la solicitud de conexión por parte del sumidero. - U6.- El sumidero destino construirá un mensaje CALL PROCEEDING y lo mandará de vuelta. - U8.- El sumidero construirá un mensaje de aceptación de la conexión CONNECTION. - U9.- El sumidero se pone a la espera de recibir la confirmación CONNECTION ACK. La fuente debe enviar un mensaje CONNECTION ACK - U10.- En este estado se diferencia entre el comportamiento de una fuente y un sumidero. Si la comunicación es p-p la fuente empezará el proceso de envío y recepción de datos y células RM. Si se trata de una conexión p-mp se deberá enviar tantos ADD PARTY como destinos diferentes tenga. Una vez añadidos todos estos destinos comenzará el envío de datos. Cuando sea el momento de cerrar la conexión (haya agotado su tiempo de simulación) se mandará un mensaje RELEASE no mandando más células de datos. El sumidero se podrá a la espera de recibir datos o células RM para esta conexión y las procesará como sea conveniente. También esperará un mensaje RELEASE que le ordene liberar la conexión. Cuando ésta se recibe deja de esperar más células de datos de esa conexión - U11.- La fuente, una vez mandado el mensaje de liberación de la conexión, se pondrá a la espera de recibir la confirmación con el mensaje RELEASE COMPLETE. 59 Simulador de Tráfico ATM con Garantía de Servicio - U12.- El sumidero construirá y mandará un mensaje de confirmación RELEASE COMPLETE y destruirá la conexión. Para las interfaces N distinguiremos entre la interface N de entrada y la de salida - N0.- En la interface de entrada un conmutador se encuentra a la espera de recibir una solicitud de conexión SETUP. Al recibirla se pasa al estado siguiente. En la interface de salida el conmutador se encuentra a la espera de que la interface de entrada le comunique que ha recibido una señal SETUP. Entones comprueba las tablas de enrutamiento, se actualizan las tablas VPI/VCI y finalmente se propaga la señal SETUP por la salida seleccionada, y pasa al estado siguiente. - N1.- El la interface de entrada se comprueba la existencia del destino. Si el destino existe se aplica el algoritmo CAC, se comprueba los valores VPI/VCI de entrada y los modifica en caso necesario y se devuelve un mensaje CALL PROCEEDING con el valor adjudicado de VPI/VCI y se actualiza la tabla VPI/VCI. Igualmente comunica a la interface de salida la recepción de un mensaje SETUP haciéndole cambiar de estado (de N0 a N6). Si por el contrario el sumidero no existe se responde a la fuente con un mensaje RELEASE COMPLETE y no se realizan más acciones. Es importante indicar que sólo será posible el envío de este mensaje en el primer conmutador al que llegue el mensaje SETUP - N3.- En este estado la interface de entrada espera a que la interface de salida le comunique que se ha recibido una aceptación de conexión, mensaje CONNECTION, tras lo cual propagará ese mensaje a los elementos precedentes. - N6.- En este estado la interface de salida está esperando una confirmación mediante el mensaje CALL PROCEEDING. - N8.- La interfaz de salida se encuentra esperando un mensaje de conexión aceptada CONNECTION. Al recibirlo le comunica a la interface de entrada el hecho para que propague en sentido descendente este mensaje. - N9.- La interfaz de salida confirma el anterior mensaje con CONNECTION ACK. - N10.- La interface de entrada se pone a la espera de recibir un mensaje CONNECTION ACK tras lo cual esperará recibir las células de datos de la conexión y esperará el mensaje RELEASE. Una vez recibido le comunica este hecho a la interface de salida y pasa al siguiente estado. También puede recibir un mensaje ADD PARTY tras lo cual actuaría como en el estado N0 cambiando al estado P2 y notificándolo a la interfaz de salida. La interfaz de salida esperará a recibir células de datos que serán enviadas por el puerto de salida adecuado. Esta situación se mantendrá hasta que la interface de entrada le comunique que ha recibido un mensaje RELEASE para esta conexión. Entonces propagará este mensaje y pasará al siguiente estado. En el caso de conexiones p-mp el mensaje RELEASE se propagará por todas aquellas salidas que sean necesarias. - N11.- Se liberarán los recursos destinados a mantener esta conexión (colas de entrada, entrada/s en la tabla VPI/VCI, etc.). Por último mandará al origen un mensaje de confirmación RELEASE COMPLETED lo que indicará que la conexión ha sido liberada. - N12.- La interfaz de salida espera la confirmación de la liberación de la conexión 60 Simulador de Tráfico ATM con Garantía de Servicio mediante un mensaje RELEASE COMPLETED. - P1.- Si nos encontramos en la fuente se construye un mensaje ADD PARTY a partir de la información de la conexión. Se envía y se espera confirmación. Si por el contrario este estado se ejecuta en un conmutador, el mensaje se construye a partir del ADD PARTY recibido y se reenvía por donde corresponda según la tabla de enrutamiento. - P2.- Si nos encontramos en el sumidero debemos actuar como si hubiéramos recibido un mensaje SETUP con la diferencia de que tan sólo habrá que mandar de vuelta un mensaje ADD PARTY ACK pasando seguidamente al estado ACTIVO. Si nos encontramos en un conmutador el proceso es diferente. Si el mensaje no ha seguido el camino del SETUP inicial entonces se han de inicializar todas las estructuras como si hubiéramos recibido un mensaje SETUP. Posteriormente se comprueba la función CAC y se pasa a la interface de salida para ser reenviado. Si nos encontramos en un conmutador entonces el mensaje DROP PARTY ACKNOWLEDGE lo habremos recibido de la interface de salida. En este caso se deberán liberar los recursos adjudicados a este destino de la conexión y reexpedir el mensaje por el puerto de entrada que corresponda. 9.2.2. Direccionamiento en la simulación Las funciones de direccionamiento en nuestro simulador están simplificadas hasta tal punto que cada elemento de una topología queda unívocamente identificado mediante un único número entero, que hará las veces de dirección ATM. Este identificador se inicializa en el momento de crear un elemento de red. 9.2.3. Enrutamiento en la simulación El protocolo de enrutamiento elegido para la simulación es el IISP descrito en uno de los anteriores apartados. Nuestra elección se debe a que es un protocolo simple, con poca complejidad y adecuado a nuestros propósitos ya que al ser sus tablas de enrutamiento estáticas nos permite más fácilmente forzar rutas específicas a determinadas conexiones. Como vimos, las peticiones de señalización son encaminadas entre conmutadores usando tablas de enrutamiento preconfiguradas en cada conmutador. Esta preconfiguración la realizaremos antes de que cualquier fuente inicie ninguna petición de conexión. En este apartado describiremos qué forma tendrán las tablas de enrutamiento, cómo se utilizarán y qué algoritmos de enrutamiento damos la posibilidad utilizar en nuestra implementación de este protocolo. 9.2.3.1. Tablas de enrutamiento: Cada conmutador de nuestra red almacena una tabla de enrutamiento que deberá estar creada e inicializada con los datos de enrutamiento antes de que alguna petición de conexión 61 Simulador de Tráfico ATM con Garantía de Servicio llegue. Las tablas de enrutamiento del algoritmo IISP presentan la siguiente estructura: Dir Destino 1 Dir Destino 2 .................. Dir Destino n Dir Origen 1 PuertoSalida PuertoSalida .................. PuertoSalida Dir Origen 2 PuertoSalida PuertoSalida .................. PuertoSalida ................... Dir Origen n ……………… PuertoSalida ……………… PuertoSalida .................. .................. ……………… PuertoSalida Tabla 9.4: Tablas de enrutamiento IISP Vista la forma de estas tablas se deduce que cada conmutador debe tener conocimiento completo sobre la topología de la red. Como puede verse sólo se almacena el puerto de salida. Para obtener el puerto de entrada no es necesario acudir a las tablas de enrutamiento ya que esta información ya se almacenó cuando llegó la célula SETUP ó ADD PARTY en la señalización. 9.2.3.2. Inicialización de las tablas de enrutamiento Como hemos apuntado anteriormente, el algoritmo a utilizar para obtener las matrices de enrutamiento de cada conmutador deberá tener conocimiento de la topología completa de la red, por lo que este algoritmo se calculará una vez finalizado el proceso de diseño de la topología. Para el cálculo de enrutamiento utilizaremos el algoritmo de Floyd. Partimos de un grafo dirigido dado por su matriz de adyacencia y calculado directamente a partir de la topología de la red: G(i, j) = c Si hay un enlace de i a j con coste c e i != j. G(i, j) = INFINITO Si no hay tal enlace y e != j. G(i, i) = 0. Posteriormente se aplica el algoritmo y se obtienen la tabla C(i,j) (coste mínimo del camino entre los nodos i y j) y la tabla P(i,j) (nodo intermedio entre i y j en el camino de coste mínimo). El algoritmo es el siguiente: Algoritmo de Floyd. Proc floyd(G[1..n, 1..n], C[1..n, 1..n] , P[1..n, 1..n]); C:=G; P:=[0]; Para k=1 hasta n hacer Para i=1 hasta n hacer Para j=1 hasta n hacer Si C(i, k)+C(k, j) < C(i, j) entonces C(i, j) = C(i, k) + C(k, j) P(i, j) = k Fsi; Fpara; 62 Simulador de Tráfico ATM con Garantía de Servicio Fpara; Fpara; Fproc; Lo único que puede quedar un poco oscuro es el objetivo de la matriz P. Esta matriz es la que se utiliza para conocer el camino concreto. Para hacerlo se actúa así, si queremos conocer el camino mínimo entre i y j, calculamos las matrices C y P por el algoritmo anterior, a continuación tomamos P(i, j) = k. Esto significa que el camino mínimo que lleva de i a j pasa por k. Necesitamos conocer el camino mínimo de i a k y de k a j, pero como ya hemos calculado las matrices C y P, consultamos P(i, k) = r y P(k, j) =s. A continuación consultamos P(i, r), P(r, k), P(k, s) y P(s, j) ... etc. Si C(i, j) = INFINITO, no hay camino de i a j. Hemos propuesto dos criterios para la inicialización de costes en el grafo G. - La primera basada en la latencia. Los valores de G se rellenan con el delay introducido por el cable en un enlace. Una ruta será más costosa cuanto mayor sea el delay acumulado. Por lo tanto el algoritmo aplicado a este grafo nos dará el camino entre dos nodos i y j que presente la mínima latencia. - La segunda se basa en el número de enlaces que atravesará una conexión. G(i,j) inicialmente sólo contendrá los valores 1 ó 0. Contendrá un 1 si hay camino directo entre i y j y contendrá un 0 en caso contrario. Por lo tanto el algoritmo aplicado a este grafo nos dará el camino entre los nodos i y j que atraviese el menor número de enlaces. Una vez obtenida la matriz P, utilizaremos sus valores para rellenar la matriz de enrutamiento en cada uno de los conmutadores. 9.2.3.3. Utilización de una tabla de enrutamiento. Estas tablas sólo las utilizará el conmutador a la hora de dirigir las células de señalización SETUP y ADD PARTY y establecer VCs para las conexiones rellenado las tablas VCC. Cuando se ha de enrutar éstas células de señalización, se examina su payload donde se encuentran sus parámetros "Dir Origen" y "Dir Destino". Se utilizan estos dos parámetros como índices en la tabla de enrutamiento y se obtiene el valor del puerto deseado. El algoritmo en pseudocódigo es el siguiente: function getPuerto( Tabla_routing, SEN_CELL, dirección) return Integer begin return tabla_routing[getDirOrigen(SEN_CELL)] [getDirDestino(SEN_CELL)] end; 9.2.4. El algoritmo CAC en la simulación En nuestro simulador utilizaremos un algoritmo de asignación no estadística muy sencillo. Por las características especiales del simulador necesitamos que TODAS las solicitudes de conexión sean aceptadas. La única misión de este algoritmo es la de avisar al operador de que una determinada conexión puede degenerar el comportamiento de un conmutador pudiéndose 63 Simulador de Tráfico ATM con Garantía de Servicio llegar a producir congestiones. Teniendo en cuenta el papel secundario del CAC en nuestro simulador, la elección de un algoritmo CAC sencillo está completamente justificada. El algoritmo CAC lanzará una alarma de "conexión potencialmente congestionante" al operador cuando, al recibir una célula de señalización SETUP o ADD PARTY y comprobar su propuesta de PCR, comprueba que, añadida al PCR de las conexiones activas, supera la potencia de conmutación del conmutador o el ACR (Avaliable cell rate) de la portadora de salida del puerto correspondiente. El algoritmo en pseudocódigo es el siguiente: function compruebaCAC(puerto, SETUP, ABR_conmutacion, ABR_puerto) return alarma begin alarma = false; pcr = getPCR(SETUP) ; if ABR_conmutacion <= 0 or pcr > ABR_conmutacion then alarma = true; if ABR_puerto[puerto] <= 0 or pcr > ABR_puerto[puerto] then alarma = true; ABR_conmutacion = ABR_conmutacion - pcr; ABR_puerto[puerto] = ABR_puerto[puerto] - pcr; return alarma; end function; Como puede verse necesitamos también los valores del ABR de conmutación y ABR de salida. Pase lo que pase el ABR se reduce en una cantidad igual al PCR solicitado por la conexión. Cuando la conexión se cierra el ABR se aumentará en la misma cantidad que fue disminuido en la apertura. 9.2.5. Tablas de enrutamiento de VCCs en la simulación En nuestra simulación las tablas de enrutamiento están diseñadas exactamente como describimos en anteriores apartados. Cada conmutador almacenará una de estas tablas cuyos valores internos cambiarán dinámicamente durante el transcurso de la simulación en reacción a peticiones de señalización. Las tablas VCCs estarán indexadas por dos ternas de valores. La primera terna, la llamada "terna de entrada" contendrá primeramente el valor del puerto de entrada de una conexión seguido del VPI y del VCI adjudicado a esa conexión. La segunda terna, la "terna de salida" contendrá una lista de ternas, una por cada puerto de salida diferente en una conexión pmp. Para cada elemento de la lista aparecerá primeramente el valor del puerto de salida, y después el del VPI y del VCI con el que saldrán todas las células de la conexión en cuestión. Terna de Entrada Ternas de Salida Puerto VPI [0] Puerto VPI VCI ..... [n] ..... ... Puerto VPI ...... VCI VCI Tabla 9.5: Tabla VCC 64 Simulador de Tráfico ATM con Garantía de Servicio 9.2.5.1. Establecimiento de VCCs Cuando un conmutador recibe una petición de establecimiento de conexión mediante una célula de señalización SETUP, una vez ésta ha pasado el filtro del CAC, se debe crear una entrada en la tabla VPI/VCI para este nueva conexión. Los pasos a seguir son los siguientes: 1.- En la solicitud SETUP están presentes dos valores que son el par VPI/VCI solicitado. Debido a que en una fuente no se pueden programar dos conexiones con valores VPI/VCI idénticos, y a la forma de asignación de ese para en los conmutadores, a un conmutador no le pueden llegar por el mismo puerto de entrada dos solicitudes con VPI/VCI idénticos. 2.- El conmutador crea una nueva línea en la terna de entrada en la tabla VPI/VCI con los valores del puerto por el que entró la célula de señalización y el VPI/VCI adjudicados 3.- Posteriormente adjudica los dos valores del par VPI/VCI de la terna de salida siguiendo los siguientes criterios: - El VPI de salida será idéntico para todas las células de aquellas conexiones que compartan el mismo sumidero destino. Esto se hace así para facilitar el enrutamiento VP en los conmutadores intermedios. Para ello cada conmutador debe guardar un registro del VPI de salida utilizado para cada sumidero. Para simplificar esto, a este VPI se le adjudicará el valor de "Id Destino" presente en todas las células de señalización, consiguiendo así el requerimiento anterior. - El VCI de salida será diferente para cada conexión que comparta un puerto y un VPI de salida. De esta forma diferenciaremos unas conexiones de otras dirigidas al mismo sumidero. Para implementar esto deberemos mantener un registro de los VCI utilizados para cada VPI. El valor VPI adjudicado será más bajo que se encuentre libre en el registro, y lo marcaremos seguidamente como ocupado. 4.- Con los valores obtenidos del par VPI/VCI de salida y el puerto de salida se crea una terna de salida y se asocia a la terna de entrada obtenida. *.- En el caso de las conexiones p-mp, si a un conmutador le llega una célula ADD PARTY deberá comprobar el VPI/VCI y el puerto de entrada para ver si la conexión ha sido ya previamente restablecida en el conmutador. Si es así no deberá crear una nueva línea en la terna de entrada, en caso contrario procederá siguiendo los pasos 2 a 4. Si la terna de entrada ya estaba establecida entonces se obtendrá el puerto de salida y se comparará con el campo puerto de salida de la lista de ternas de salida. Si es igual a alguna de ellas querrá decir que ambas conexiones saldrán por el mismo puerto por lo que no será necesario añadir ninguna terna de salida a la/s ya presente/s. Si el puerto de salida no coincide con ninguno de la lista querrá decir que este conmutador debe mandar los mismos datos de esta conexión por dos o más puertos diferentes. En consecuencia deberá añadir una nueva terna a la lista de ternas de salida siguiendo los puntos 3 y 4. 65 Simulador de Tráfico ATM con Garantía de Servicio Pseudocódigo: procedure addVCC(SEN_CELL, puerto_entrada, puerto_salida) begin VPI/VCI_entrada = getVPI/VCI(SEN_CELL); if tipo(SEN_CELL) = SETUP or (tipo(SEN_CELL) = ADD PARTY and not conexionPresente(puerto_entrada, VPI/VCI_entrada) then begin VPI/VCI_adjudicado = getVPI/VCI_Libre(tablaVCC, VPI/VCI_entrada); terna_entrada = addTernaEntrada(tablaVCCs, puerto_entrada, VPI/VCI_adjudicado); VPI_salida = getDirDestino(SEN_CELL); VCI_salida = getVCILibre(puerto_salida, VPI_salida); addTernaSalida(terna_entrada, puerto_salida, VPI/VCI_salida); else begin terma_entrada = getTernaEntrada(tablaVCCs, puerto_entrada, VPI/VCI_entrada) if puertoSalidaNuevo(terna_entrada, puerto_salida, tablaVCC) then begin VPI_salida = getDirDestino(SEN_CELL); VCI_salida = getVCILibre(puerto_salida, VPI_salida); addTernaSalida(terna_entrada, puerto_salida, VPI/VCI_salida); end if end if end procedure; 9.2.5.2. Liberación de VCCs La liberación de conexiones se iniciará en el caso de que a un conmutador le llegue un mensaje de señalización RELEASE. Los pasos a seguir son los siguientes: 1.- Se comprueba si el VC está activo. Para ello examinamos la tabla VCCs y utilizamos el valor VPI/VCI y puerto de entrada como índice. 2.- Si está activo simplemente se borra de la tabla VCC la terna de entrada con su/s correspondiente/s terna/s de salida. Pseudocódigo procedure delVCC(SEN_CELL, puerto_entrada) begin VPI/VCI = getVPI/VCI(SEN_CELL); if conexionPresente(puerto_entrada, VPI/VCI) then begin terma_entrada = getTernaEntrada(tablaVCCs, puerto_entrada, VPI/VCI) delTernasSalida( tabla VCCs, terna_entrada); delTernaEntrada( tabla VCCs, puerto_entrada, VPI/VCI); end if; end procedure; 9.2.5.3. Uso de las tablas VCCs Cuando a algún conmutador llega una célula de datos, para conmutarla al puerto de salida 66 Simulador de Tráfico ATM con Garantía de Servicio adecuado con los valore VPI/VCI correctos debe consultar la tabla VCCs. Para ello necesitará los valores de la terna de entrada. Como resultado obtendrá una lista consistente en una ó más de ternas con la información necesaria para la conmutación. Pseudocódigo procedure getTernasSalida(puerto_entrada, VPI/VCI_entrada) return Cjto_ternas_salida begin terna_entrada = getTernaEntrada(tablaVCC, puerto_entrada, VPI/VCI_entrada); Cjto_ternas_salida = getTernasSalida(tablaVCC, terna_entrada); return Cjto_ternas_Salida; end procedure; 67 Simulador de Tráfico ATM con Garantía de Servicio 10. Funciones y procedimientos para la gestión del tráfico 10.1. Introducción En este apartado vamos a indicar los diferentes mecanismos que es posible utilizar en ATM para el control del tráfico y las congestiones. Las redes ATM reales pueden implementar una o una combinación de estas funciones con el fin de obtener los objetivos de QoS especificados en las conexiones. En nuestro simulador no hemos tenido en cuenta los parámetros de QoS. Las razones de ello son varias: • • • • • Por una parte no existen algoritmos estándar para la consecución de la QoS. Cada fabricante proporciona los parámetros negociados a una conexión mediante sus propios mecanismos propietarios. En segundo lugar, en el caso de que nos decidiéramos a implementar algún mecanismo de QoS, no compensaría la complejidad introducida con los beneficios obtenidos. No olvidemos que el objetivo principal del simulador es el de crear un entorno de red ATM relativamente realista e idóneo para comprobar el grado de GoS obtenido mediante la implantación en las VPN de conmutadores activos que soporten el protocolo TAP. Cuantos más algoritmos haya modificando el tráfico por su cuenta menos clara quedará la aportación del protocolo TAP a la mejora de la red. Un factor importante y relacionado con el anterior punto es el tiempo de cómputo. Nuestro propósito es el de crear un simulador que pueda realizar las simulaciones lo más cercanas posibles al tiempo real. La introducción de los parámetros de QoS en el simulador haría considerablemente más complejos los conmutadores por lo que afectaría negativamente al tiempo de simulación. Esto es así ya que cuanto más complejo sea un conmutador más tiempo llevará que realice sus operaciones y por lo tanto más lento hará el proceso de simulación. El protocolo TAP no está directamente relacionado con la QoS. Cierto es que los agentes controlan la mayoría de los aspectos de la múltiplexación de células en los conmutadores sin embargo no son los responsables directos de la ejecución de los algoritmos dedicados a la consecución de la QoS. Por último, uno de nuestros objetivos a la hora de crear el simulador es hacer el tráfico de la red lo más determinista posible para poder así crear situaciones de congestión en los conmutadores, observar los resultados y poder reproducirlos con posterioridad si fuese necesario. Un simulador con control de la QoS reduciría el grado de determinismo lo que impediría la fácil comparación de resultados entre varias simulaciones. En definitiva, dado que la GoS no está relacionada directamente con la QoS, y que la introducción del manejo de los parámetros de QoS tan solo oscurecería y complicaría nuestro simulador, para nuestros propósitos, de ahora en adelante supondremos que ninguna conexión va 68 Simulador de Tráfico ATM con Garantía de Servicio a requerir que la VPN satisfacer los requerimientos de QoS (CDV, CDT, CLR, etc). Por lo tanto no será necesaria la simulación de la negociación de tales parámetros ni su impacto en el tráfico. Volviendo al tema que nos ocupa en este apartado, describiremos las siguientes funciones para el control de tráfico y congestiones indicando para cada una de ellas si se ha implementado en nuestro simulador, de qué manera y por qué. Las funciones son las siguientes: • • • • • • • • • Connection Admisión Control (Control de admisión de conexiones) Usage Parameter Control (Control de parámetros de uso) Selective Cell Discarding (Descarte selectivo de células) Traffic Shaping (Modelado de tráfico) Explicit Forward Congestion Indication (Indicación explicita de congestión ascendente) Resource Magnagement using Virtual Paths (Gestión de recursos mediante el uso de VPs) Frame Discart (Descarte de marcos) Generic Flow Control (Control de flujo genérico) ABR Flow Control (Control de flujo ABR) 10.2. Connection Admisión Control La función del control de admisión de conexiones (CAC) se define como el conjunto de acciones tomadas por la red en el establecimiento de un SVC o por la gestión de la red durante el establecimiento de un PVC para determinar qué conexiones deben ser admitidas o rechazadas. En nuestro simulador implementamos una versión muy simple de esta función que utilizamos para comprobar qué conexiones podrían causar congestión. 10.3. Usage Parameter Control La función UPC es opcional en las redes reales. El control de los parámetros de uso (UPC) se define como el conjunto de acciones tomadas por la red para monitorizar y controlar el tráfico. Su propósito principal es proteger los recursos de la red de fallos de comportamiento maliciosos u accidentales que puedan afectar la QoS de otras conexiones establecidas mediante la detección de violaciones de los parámetros negociados y la toma de decisiones apropiadas. En el caso de nuestro simulador esta función no será necesaria por varios motivos: primeramente, como ya apuntamos al comienzo de este capítulo, nosotros no implementamos QoS. Además, dadas las características específicas de nuestra simulación, las fuentes no generan nunca tráfico a una velocidad mayor a la indicada en la conexión por lo que los “fallos” accidentales o maliciosos en los que una fuente utiliza más ancho de banda del adjudicado no se producen. 69 Simulador de Tráfico ATM con Garantía de Servicio 10.4. Selective Cell Discard El descarte selectivo es una función opcional en las redes ATM reales. Un elemento de red congestionado puede selectivamente descartar células que pueden encontrarse en una o ambas de las siguientes situaciones: a) No cumple las condiciones de la conexión b) Presenta su CLP = 1 El objetivo de esta función es el de proteger el CLP = 0 lo máximo posible. Esta función está parcialmente implementada en nuestro simulador. En lo que respecta al apartado a) todas las células no congestionadas llegan en el momento en el que tienen que llegar a los diversos elementos de la red por lo que siempre cumplirán las condiciones de la conexión. En lo que respecta al apartado b) en igualdades de condiciones con conexiones no privilegiadas, en un buffer que ha alcanzado su umbral no se almacenarán células con el CLP = 1, las cuales serán descartadas, mientras que las células con su CLP = 0 sí se almacenarán hasta que se llegue al límite de capacidad del buffer. 10.5. Traffic Shaping El moldeado de tráfico es un mecanismo que altera las características de tráfico de un flujo de células de una conexión para conseguir mejor eficiencia mientras que se consiguen los objetivos de QoS. Debido a que esta técnica va principalmente dirigida a la consecución de parámetros de QoS hemos decidido obviarla en nuestro simulador. 10.6. Explicit Forward Congestion Indication La aplicación de técnicas de indicación de congestión ascendente explícita (EFCI) es opcional para una red ATM. Un elemento de red en un inminente estado de congestión o ya en él puede establecer en EFCI en la cabecera de la célula para que esta indicación pueda ser examinada por los terminales sumideros de las conexiones. Por ejemplo, una fuente puede usar este indicador para implementar un protocolo que de forma adaptativa disminuye la velocidad de la conexión durante las congestiones o posibles congestiones inminentes. Un elemento de red que no esté en estado de congestión o en un estado de congestión inminente no modificará el valor de este indicador. Un estado de congestión inminente es aquel en el que el elemento de la red está operando alrededor de su capacidad máxima calculada. 70 Simulador de Tráfico ATM con Garantía de Servicio Este servicio ha sido desarrollado para categorías de servicio CBR, VBR y UBR. Como veremos posteriormente para ABR existe otro mecanismo de control de congestiones en los terminales el cual se encuentra implementado parcialmente en nuestro simulador. En el capítulo 12 presentamos las categorías de servicios que soportaría el simulador (ABR y UBR) y las razones de esta elección. Dado que la categoría UBR la incluimos para las conexiones a las que no queremos que se le aplique ningún mecanismo de prevención de congestiones, y que la ABR tiene el suyo propio, no creemos necesario incluir este mecanismo, el EFCI, en nuestro simulador. 10.7. Resource Management using Virtual Paths Los Virtual Paths son un concepto importante del control de tráfico y la gestión de recursos en las redes ATM. En relación con el control de tráfico, los VPCs se pueden utilizar para: • • • Simplificar el CAC; Implementar una forma de control de prioridades segmentando grupos de conexiones virtuales de acuerdo a su categoría de servicio. Conseguir una forma eficiente de distribuir mensajes para las operaciones de control de tráfico (por ejemplo indicar congestión en una red distribuyendo un mensaje simple para todos los VCCs de un VPC determinado); Los VPC también juegan un papel clave en la gestión de recursos. Mediante la reserva de capacidad para los VPC, el tiempo de establecimiento de VCCs se reduce. En definitiva, mediante el agrupado de VCCs en VPCs obtenemos dos niveles de abstracción; por una parte podemos abstraer el control de un gran número de conexiones con requerimientos similares al control de un solo VPC y por la otra podemos manejar las características los VCCs dentro de un VPC sin tener que preocuparnos de los cientos o miles de VCCs presentes en otros VPCs. 10.8. Frame Discard Si un elemento de la red necesita descartar células, en muchos casos es más efectivo un descarte a nivel de marcos que a nivel de células. Un marco en una unidad de protocolo AAL. La red detecta los marcos examinando el campo SDU-type en el payload de la célula de cabeza. El descarte de marcos puede ayudar a evitar el colapso por congestión e incrementar el goodput. Como se explica en el capítulo 15, los conmutadores activos de nuestro simulador contienen buffers de salida con mecanismos de control de congestión que evitan la fragmentación de PDUs. Uno de las acciones que realiza este mecanismo es el descarte de marcos que se prevé no cabrán enteros en el buffer. Por lo tanto se puede decir que en el simulador se implementa un procedimiento de descarte de marcos. 71 Simulador de Tráfico ATM con Garantía de Servicio 10.9. Generic Flow Control El campo GFC está presente sólo en las células entre un host y la red; es sobrescrito por el primer conmutador al que llega, por lo que no tiene un significado de terminal a terminal, y no se entrega al destino. Originalmente se pensó que este campo tendría alguna utilidad para el control de flujo o de prioridad entre los hosts y las redes, pero no hay valores definidos para él, y la red lo ignora. Por tanto el uso del campo GFC de las células en la interfaz UNI no se contempla en este documento. No hay valores definidos para el GFC y nuestro simulador, por tanto nunca es examinado. 10.10. ABR Flow Control En el servicio ABR, la fuente adapta su velocidad para adaptarse a las condiciones de la red. La información acerca del estado de la red como la disponibilidad de ancho de banda, estado de congestión y congestión inminente se comunica a la fuente mediante células de control especiales llamadas Resource Managemente Cells (células RM). Nuestro simulador soporta la categoría ABR junto con una versión simplificada del modelo de control de flujo ABR. Para ver la descripción de este modelo y ver el capítulo 3 dedicado a la implementación de las categorías de servicio ABR y UBR. 11. Categorías de servicio implementadas Para los propósitos de nuestro simulador hemos implementado las categorías de servicio ABR y UBR con limitaciones. Las razones de esta elección son varias: Primeramente por la naturaleza del tráfico que se va a simular ya que las categorías de servicio ABR y UBR son la propuesta estándar de ATM para soportar el tráfico de datos, que precisamente es el tipo de datos para el que está pensada la GoS. Por otra parte, mientras que ABR tiene la capacidad de reducir su ritmo de envío de tráfico mediante realimentación con células BRM si se producen congestiones en la red, la categoría UBR no hace promesas y no realimenta información sobre los congestionamientos. En nuestra simulación, en algunas ocasiones forzaremos a que en algún conmutador se produzca congestión para observar el comportamiento del protocolo TAP ante tales situaciones. Si tan solo utilizáramos la categoría de servicio ABR, al tener un sistema autorregulador de flujo ante congestiones, no podríamos estudiar de manera aislada los mecanismos activados por el protocolo TAP y su impacto en el entorno de la simulación. En el otro extremo, si tan solo implementáramos la categoría UBR, no podríamos comprobar el funcionamiento conjunto del protocolo TAP junto con los sistemas de realimentación de ABR y dar una medida del auténtico 72 Simulador de Tráfico ATM con Garantía de Servicio potencial de ambos mecanismos funcionando conjuntamente para la prevención de congestiones por un lado y la minimización de los prejuicios ocasionados por ellas por el otro. Otra razón para elegir aquellas dos categorías es que a pesar de que el protocolo TAP se propuso principalmente para la categoría UBR necesitamos una referencia con alguna otra categoría de servicio y sus formas de combatir o prevenir la congestión para comparar resultados y sacar conclusiones. Con una VPN simulada en la que pudiesen convivir conexiones tanto ABR como UBR tendríamos una base para poder crear gran cantidad de supuestos y situaciones que ajustasen a nuestros requerimientos y poder demostrar, en la medida de nuestras posibilidades, con casos prácticos, la viabilidad del protocolo TAP en una VPN real. Por otro lado, al prescindir de las otras dos categorías de servicio especificadas para ATM (CBR y VBR) no podremos comprobar el impacto de añadir conexiones que requieran una alta calidad de servicio de tiempo real en el comportamiento de la VPN ya que nuestra versión de ABR y UBR no requieren limitaciones en el retado ni en la variabilidad de retardo. Sin embargo, al estar la propuesta TAP dirigida al tráfico de datos sin requerimientos de tiempo real, no consideramos necesario la inclusión de las categorías antes citadas. 11.1. Las categorías de servicio ABR y UBR Estas categorías de servicio están pensadas, como apuntamos en la introducción al capítulo, para aplicaciones sin requerimientos de tiempo real. Se diferencian entre ellas en la naturaleza de los servicios proporcionados por la red y los mecanismos que se implementan en los sistemas terminales y la red para proporcionarlos. La elección de una categoría de servicio será específica para cada aplicación. 11.2. ABR-l En este apartado vamos a describir las características de esta categoría de servicio en nuestro simulador. Como avisamos en el apartado anterior, se han suprimido todos los mecanismos derivados de la introducción de la QoS y otros muchos han sido simplificados. Con el fin de diferenciar la categoría de servicio que nosotros implementamos con la especificada por la ITU-T, a la nuestra la denominamos ABR-l (ABR little) 11.2.1. Modelo de servicio detallado para ABR-l Los siguientes puntos resumen algunas propiedades del servicio ABR-l: • • El objetivo del servicio ABR-l es proveer rápido acceso al ancho de banda no usado por la red hasta el límite de PCR, siempre que la red tenga ancho de banda disponible. Debe ser aplicable tanto a VCCs como a VPCs. 73 Simulador de Tráfico ATM con Garantía de Servicio • • • • • El MCR se negocia independientemente para cada dirección en una conexión bidireccional ABR-l. Una fuente puede que esté obligada a enviar a una velocidad menor que MCR cuando se está negociando una MCR > 0. La velocidad de envío de una fuente en una conexión nunca será menor que MCR. El MCR negociado variará entre cero y el mayor valor soportado por la red. Este valor máximo puede ser igualmente cero. Si la fuente no indica un MCR, se supondrá el valor por defecto que es cero. A cada conexión se le asignará el valor máximo de MCR que el ancho de banda de la red pueda soportar por estricto orden temporal de llegada de peticiones de conexión. Hemos querido que sea así, en contrapartida a la asignación justa de recursos de la red que se aplica en redes ATM reales, para proporcionarnos la posibilidad de provocar congestiones en elementos específicos de la red. Aunque la red se compromete a soportar el MCR de cada fuente, puede que alguna reciba indicaciones de reducir esta velocidad bajo el MCR. Si alguna fuente recibe la indicación de bajar la velocidad por debajo de su MCR lo que debe hacer es reducirla hasta el MCR. Si una fuente está transmitiendo al MCR y recibe indicaciones de bajar la velocidad, la fuente no necesitará hacer ningún cambio. Durante el establecimiento de conexiones para una conexión con un MCR = 0, el CAC no bloqueará dicha conexión por causa del ancho de banda reservado para otras conexiones. Realmente el CAC en nuestro simulador únicamente avisa si una conexión tiene probabilidad de provocar congestiones sin tomar ninguna decisión. 11.2.2. Modelo de control de flujo para ABR-l El control de flujo ABR sucede entre la fuente y el sumidero de una conexión. Las fuentes y destinos se encuentran conectadas mediante conexiones bidireccionales. En aras de la simplicidad en nuestro simulador los flujos de datos serán unidireccionales, de la fuente al sumidero, mientras que solo las células RM y las de señalización asociada a la conexión circularán en sentido descendente. La dirección ascendente es la que va desde la Fuente hasta el sumidero mientras que la descendente es en sentido contrario. Para el flujo de información ascendente existe un bucle de control de dos flujos de células RM, uno ascendente y otro descendente. La fuente generará células RM ascendentes que darán la vuelta al llegar al sumidero y volverán a su origen (FRM si son ascendentes o BRM si son descendentes) Las BRM llevan información de realimentación suministrada por los conmutadores de la red. En una red ATM real un elemento de red puede: • • • Insertar directamente información de realimentación en las células RM cuando pasa en la dirección ascendente o descendente. Informar indirectamente a la fuente acerca de una congestión estableciendo el bit EFCI en la cabecera de las células de datos en la dirección ascendente del flujo de información. En este caso el sumidero actualizará la BRM basándose en esta información de congestión. Generar BRMs. En nuestra simulación, para el control de congestiones utilizamos el primer y el tercer método. Como indicamos en el capítulo 2 no utilizaremos el control de flujo basado en EFCI. Emplearemos el primer método para el control de congestiones normalizado de ABR-l. Además 74 Simulador de Tráfico ATM con Garantía de Servicio el método utilizado para dar a conocer la situación en la que se detecta la pérdida de una trama congestionada con el fin de solicitar retransmisiones será el tercero. 11.2.3. Parámetros de servicio ABR-l En esta sección presentamos los parámetros utilizados en el simulador para implementar al control de flujo ABR-l. En el servicio ABR real existen algunos parámetros más pero han sido suprimidos por no ser necesarios en nuestro nivel de simulación Parámetro PCR MCR ICR RIF RDF ACR Descripción La velocidad de célula pico, Peak Cell Rate, es la velocidad que la fuente nunca excederá. La velocidad mínima de célula, Minimum Cell Rate, es la velocidad a la que la fuente le está siempre permitido enviar La Velocidad de Célula Inicial, Inital Cell Rate, es la velocidad a la que la fuente envía inicialmente. El Factor de Incremento de Velocidad, Rate Increase Factor, controla el aumento de velocidad que la fuente puede aplicar tras recibir una célula RM El Factor de Decremento de Velocidad, Rate Decrease Factor, controla el decremento de la velocidad de transmisión. La Velocidad de Célula Permitida, Allowed Cell Rate, es la velocidad actual a la que la fuente se le está permitido enviar. Unidades y rango Células/seg Céluas/seg Células/seg Potencia de dos, desde 1/32768 hasta 1 Potencia de dos Células/segundo Tabla 11.1: Parámetros de servicio ABR-l Los parámetros señalados en negrita se negocian durante el establecimiento de la conexión. Si no se especifica algún parámetro se sustituye por un valor por defecto. 11.2.4. Estructura de las células RM La siguiente tabla muestra los campos y su posición en el formato de célula RM. 75 Simulador de Tráfico ATM con Garantía de Servicio Tabla 11.2: Campos de una célula RM. En nuestra simulación no utilizamos todos los campos anteriores. Como se explicó en el capítulo 10, los bits del 21 al 51 se utilizan para las retransmisiones locales. Seguidamente los parámetros utilizados para la implementación del control de flujo ABR-l. • • • • Header: Los cinco primeros bytes de una célula RM corresponden a la cabecera estándar de una célula ATM con PTI = 110 (binario), y CLP = 1. DIR: indica la dirección del flujo RM. Si es ascendente DIR = 0 y si es descendente DIR = 1. Cuando la célula llega al destino DIR cambia de 0 a 1. CI: Cuando una fuente detecta una BRM con este bit a 1 entonces decrementará su ACR. NI: Este bit se utiliza para indicar a una fuente que no aumente su ACR. Puede ser utilizado por un conmutador para indicar congestiones inminentes. 11.2.5. Comportamiento de la fuente 1. El valor de ACR nunca excederá el valor de PCR ni será menor que MCR. 2. Antes de que una fuente envíe su primera célula después del establecimiento de una conexión establecerá ACR a ICR. 3. Se enviará una FRM cada 32 células de datos. En un servicio ABR real la cadencia de envíos de células FRM depende de diversos parámetros como Mrm y Nrm. Hemos considerado una cadencia de células RM fija para simplificar la implementación. 4. Cuando una fuente recibe una célula BRM con el bit CI = 1 entonces la fuente reducirá su ACR por lo menos en ACR * RDF, a no ser que de esta reducción resulte un valor menor que MCR en cuyo caso se establecería ABR = MCR. Si en la célula BRM CI = 0 y NI = 0 entonces la fuente debe incrementar ACR en no más del RIF * PCR, a un valor no mayor que PCR. Si NI = 1 entonces la fuente no incrementará ACR. 76 Simulador de Tráfico ATM con Garantía de Servicio 11.2.6. Comportamiento del sumidero En nuestro servicio ABR-l el sumidero actuará únicamente como “pared” donde rebotarán las células FRM emitidas por la fuente. 1. Cuando recibe una célula FRM el sumidero debe transmitir la célula en sentido contrario para devolverla a la fuente. Cambiará el bit DIR de ascendente a descendente. 2. En nuestro ABR-l, por la misma razón que en punto anterior, un sumidero no podrá generar células BRM. 11.2.7. Comportamiento de los conmutadores Nuestros conmutadores implementan un método de control de flujo basado en los campos CI y NI. 1. Un conmutador puede generar una célula BRM a alguna fuente cuando detecta que alguno de sus puntos de encolamiento está a punto de experimentar una congestión (con lo que generará una BRM con el bit NI = 1) o cuando detecta una congestión (generará una BRM con el CI = 1) La velocidad máxima de creación de estas células no sobrepasará las 10 células / s. El bit BN = 1 y DIR = 1 2. Cuando a un conmutador llega una RM ya sea ascendente o descendente, seguirá la política descrita en el punto 1 para los bits CI y NI y posteriormente la enviará por donde corresponda. 11.2.8. Algoritmos en pseudocódigo Seguidamente presentamos el algoritmo utilizado en la fuente y el sumidero de una comunicación ABR-l. • Inicialización por conexión ACR = ICR Time_to_send = 32 • Pseudocódigo de envío en la fuente if now >= time_to_send then send RM(DIR=forward, CI=0, NI=0, CLP=1) now = 0; end if; | Si es el momento de enviar | Enviamos RM now es un contador que almacena el número de células de datos que se han enviado. Cuando el valor llega a time_to_send, indica que es el momento de insertar una célula RM en el tráfico. 77 Simulador de Tráfico ATM con Garantía de Servicio • Pseudocódigo de recepción en la fuente If receive RM(DIR = backward, CI, NI, BN) then If CI=1 then ACR = ACR – ACR*RDF; ACR = max(MCR, ACR); Else if NI = 0 then ACR = ACR + RIF*PCR; ACR = min (ACR, PCR); End if End if • | Ajustamos ACR | Si congestión | Disminuimos | Si no inminente | Aumentamos Pseudocódigo de recepción en el sumidero If receive RM(DIR= forward, CI, NI, BN) then | Acción de rebote Send RM(DIR=backward, CI, NI); End if; 11.3. UBR-l Como hicimos con ABR, creando nuestra propia versión ABR-l, a la adaptación de la clase de servicio UBR la llamaremos en adelante UBR-l. En esta categoría de servicio la fuente de la comunicación emite a una tasa constante de células dada por PCR. Los conmutadores aceptan todas las células UBR-l y, si sobra capacidad, también se entregan. Si ocurren congestionamientos, se descartan las células UBR-l sin realimentación a la fuente y sin esperar que ésta reduzca su velocidad. La categoría UBR es razonable para aplicaciones que no tienen restricciones de entrega y quieren llevar ellas mismas su propio control de errores y de flujo. Proponemos como posible utilización de las fuentes UBRl en nuestro simulador la de focos generadores de congestiones. 78 Simulador de Tráfico ATM con Garantía de Servicio SIMULACIONES 12. Simulaciones En este módulo vamos a exponer los resultados obtenidos en la simulación de diferentes topologías con diversas conexiones. Como objetivo principal nos proponemos demostrar los beneficios resultantes de introducir conmutadores AcTM en redes ATM. Estos beneficios serán consecuencia de las retransmisiones locales entre conmutadores AcTM en contraposición a las retransmisiones extremo a extremo propias de protocolos de capas superiores como, por ejemplo, el TCP/IP. En una red con AcTMs, al congestionar una trama en un conmutador AcTM, éste enviará una petición de retransmisión de dicha trama congestionada en la trayectoria inversa a la seguida por ella en una célula RM. Un conmutador AcTM que reciba una petición de retransmisión deberá buscar en su memoria DMTE la trama solicitada. Si está presente se retransmitirá hacia el solicitante, en caso contrario la petición se propagará hacia conmutadores anteriores. En la realización de este proceso aparentemente sencillo intervienen multitud de factores y elementos. Además, el usuario, a la hora de configurar la red y las conexiones, puede intervenir en algunos de aquellos factores y elementos alterando parámetros configurables. En los siguientes puntos exponemos algunos de estos factores y elementos con sus consecuencias previstas en el tráfico: • • • • • • Ubicación de AcTMs: En una topología mixta donde coexistan conmutadores activos y no activos debería ser importante la colocación de los AcTMs. Se intuye que cuanto más cerca estén los conmutadores activos entre si, mayor será el beneficio de las retransmisiones locales. Delays: por la misma razón anterior el delays entre conmutadores activos es importante e influyente ya que provocarán mayor lentitud en las retransmisiones. Tamaños de memoria: Es un parámetro configurable muy importante por una razón muy sencilla, cuanto mayor sea la memoria disponible en el buffer o DMTE en los conmutadores menor será la posibilidad de congestión y mayor la de retransmisión local. GoS: El parámetro de garantía de servicio en una conexión privilegiada tendrá mucha importancia a la hora de la realización de las retransmisiones locales ya que cuanto mayor sea éste mayor será la probabilidad de que aquéllas puedan ser realizadas con éxito. Algoritmos: Los algoritmos predominantes que pueden alterar el comportamiento del tráfico son el EPDR y el WFQA. El principal de ellos es el EPDR. Mediante la alteración del valor del umbral el usuario debería ser capaz de configurar el buffer de un conmutador AcTM para que se comporte de manera óptima según el tráfico predominante. El WFQA tendrá más relevancia cuanto más diferentes sean las velocidades de salida contratada para las fuentes ya que este algoritmo da prioridad a las conexiones procedentes de fuentes más rápidas. Tamaños de trama EAAL: Debería tener influencia directa sobre el comportamiento del algoritmo EPDR. Cuanto mayor sean las trama menores posibilidades habrá de que ésta quepa en el búfer según los requisitos de EPDR. 79 Simulador de Tráfico ATM con Garantía de Servicio En posteriores apartados nos dedicaremos a comprobar y ratificar o corregir las afirmaciones hechas en los anteriores puntos. Para ello expondremos los resultados obtenidos mediante la realización de múltiples simulaciones mediante el paquete software desarrollado para este proyecto. Todos los archivos obtenidos (.top, .fis, .dgs, .cfg) en la realización de estas simulaciones están almacenados en el CD adjunto a este documento para posibilitar así la verificación de los resultados obtenidos. 12.1. La Topología Base Para poder comparar los resultados obtenidos en las diferentes simulaciones éstas deben realizarse sobre topologías similares. Partiremos pues de una topología común que modificaremos ligeramente para observar las consecuencias de dichas modificaciones. La topología elegida es la siguiente: Fig 22.1: Topología de base. Los elementos que intervienen en ella son los siguientes: • Conmutadores: Partimos de una red cuyos conmutadores son es su totalidad activos. En un posterior apartado estudiaremos qué ocurriría con topologías mixtas. • Fuentes: Hemos creado cuatro fuentes ATM para crear tráfico de fondo (nativo ATM), una fuente EAAL que creará tráfico con requerimientos de GoS y una fuente AAL sin requerimientos de GoS. • Sumideros: Existen dos sumideros para recibir el tráfico de fondo y un sumidero por cada fuente AAL y EAAL. Cada uno recibirá el tráfico correspondiente a su nombre. 80 Simulador de Tráfico ATM con Garantía de Servicio Esta topología está pensada para crear situaciones de congestión en los conmutadores CA_6 y CA_7. Esto se consigue gracias al tráfico creado por las fuentes F_ATM_x. Estas fuentes envían al conmutador al que están conectados tráficos a ráfagas en forma de células ATM a una velocidad superior a la que el conmutador es capaz de sacarlo del buffer. Lo que se pretende es que le búfer se llene y se vacíe alternativamente para poder comprobar el comportamiento del tráfico de tramas en distintos valores de llenado de búfer. Por cada uno de los dos conmutadores potencialmente congestionables circularán las tramas creadas por las fuentes AAL y EAAL de manera que el tráfico EAAL atravesará CA_6 y el tráfico AAL atravesará el CA_7. La gráfica de llenado de búfer de los conmutadores CA_6 y CA_7 es la siguiente: Gráfica 22.2: Gráfica de variación de llenado del buffer en relación al tiempo. Como alternativa podríamos optar por conexiones ABR adaptativas cuyo tráfico podría ser similar en lo referente a los picos y los valles. Sin embargo este tipo de tráfico podría oscurecer los resultados obtenidos debido a su misma variabilidad con las condiciones del búfer. Lo que buscamos en un tráfico de fondo constante y fijo donde poder comparar distintos factores variables. El delay de todos los cables ha sido ajustado a 2-4ms de manera que podamos establecer un valor de tick de 100ns lo que aumentará la velocidad de simulación al tiempo de que el decremento del realismo es suficientemente pequeño como para que los resultados obtenidos sean representativos. Las velocidades de portadora han sido establecidas en 107 células/segundo (alrededor de unos 4.2 Gbps). Como excepción nos encontramos con la portadora que llega hasta los sumideros ATM. Con el fin de que el llenado de los búferes fuera más fácil se ha establecido este valor a 4.5x106 (aproximadamente 1.9 Gbps). Se realizarán todas las simulaciones a una duración máxima de 4.3 milisegundos simulados. Consideramos que es tiempo suficiente como para obtener resultados representativos teniendo en cuenta el tráfico de fondo generado. 81 Simulador de Tráfico ATM con Garantía de Servicio 12.2. Comportamiento del tráfico de tramas con relación al umbral. En este apartado vamos a fijarnos primeramente en el efecto del umbral en el tráfico de tramas. Para ello hemos realizado múltiples simulaciones para distintos valores de umbral y distintos valores de tamaños de trama. Nuestro propósito es comprobar primeramente que el tráfico EAAL mejora con respecto al AAL en el sentido de que llegan más tramas correctas EAAL al sumidero destino que con AAL evitando así las retransmisiones de protocolos superiores al TAP como, por ejemplo, TCP/IP. Así mismo queremos también demostrar que el valor del umbral debe ser establecido en relación al tamaño medio de las tramas EAAL que circulan por un conmutador en congestión. Las conexiones AAL y EAAL que intervendrán en la topología presentan la siguiente configuración: Conexion Nombre: conEAAL Destinos: S_EAAL_1 VPI VCI: 1 1 Inicio: 0.0 Duracion: 4.0 TipoTrafico: EAAL Tamaño: 16 GoS: 9 TipoCos: UBR PCR: 366792.44 Conexion Nombre: conAAL Destinos: S_AAL_1 VPI VCI: 1 1 Inicio: 0.0 Duracion: 4.0 TipoTrafico: AAL Tamaño: 16 TipoCos: UBR PCR: 366792.44 Cuadro 22.1: Conexiones de tramas programadas. Es necesario señalar que se ha provisto a las conexiones EAAL de un tamaño suficiente de GoS para suministrar todas las retransmisiones que sean necesarias. Así mismo la memoria DMTE es suficientemente grande como para contener las tramas solicitadas en el grado GoS. En posteriores apartados veremos el efecto de estos valores sobre el tráfico. Primeramente nos centraremos sobre el tráfico EAAL y veremos el número de tramas que llegan correctamente al sumidero S_EAAL_1 que es el destino de las tramas mandadas por la fuente F_EAAL_1. 82 Simulador de Tráfico ATM con Garantía de Servicio 90 80 70 60 50 40 30 20 10 0 Tramas recibidas Tamaño trama (células) 64 32 16 70% 80% 64 90% 95% 99% 100% Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% 100% 64 21 21 21 23 22 17 32 43 43 44 44 45 34 16 80 84 84 84 86 73 Gráfica 22.2: Comparación de las tramas EAAL llegadas correctamente al sumidero S_EAAL_1. De esta gráfica deducimos varias cosas: 1- 2- La primera de ellas es que con valores de umbral inferiores a 100% (donde no actuará éste y por lo tanto no habrán solicitudes de retransmisión) todas las tramas enviadas llegarán a su destino correctamente. La fluctuación que se observa en los valores se debe a las tramas in-flight, es decir, a las tramas que se encuentran en los cables y no han llegado a un conmutador. Este hecho se ha deducido estudiando el fichero FIS de cada una de las simulaciones Cuando no actúan las retransmisiones, es decir, cuando el valor del umbral está al 100% y EPDR no actúa, hay tramas que se pierden debido a las congestiones y que deberán ser recuperadas por protocolos superiores. En la gráfica 4 se demuestra cómo aun sin actuar el EPDR el tráfico mejora considerablemente con tramas EAAL con respecto a las AAL. En la siguiente gráfica observamos los mismos valores anteriores pero traducidos a número de células que llegan al sumidero S_ EAAL_1. De esta forma observaremos más fácilmente el porcentaje de información que llega a dicho sumidero. 83 Simulador de Tráfico ATM con Garantía de Servicio 1600 1400 1200 1000 Bytes recibidos 800 64 600 32 400 16 200 0 70% 80% 90% 95% 16 32 64 99% 100% Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% 100% 64 1344 1344 1344 1472 1408 1088 32 1376 1376 1408 1408 1440 1024 16 1280 1344 1344 1344 1376 1168 Gráfica 22.3: Comparación de los bytes totales llegados correctamente al sumidero S_EAAL_1. En esta gráfica podemos observar que para mayor longitud de trama se observa más información in-flight observándose las fluctuaciones más elevadas en porcentajes elevados del umbral. Esto es consecuencia del tamaño de la trama, cuanto más grande sea la trama mayor información contendrá y más células se encontrarán in-flight. Observamos de nuevo el menor número de información recibida por el sumidero cuando no actúa el algoritmo EPDR. En la anterior gráfica hemos visto como el tráfico se degrada cuando el algoritmo EPDR no actúa en un conmutador activo que despacha tramas EAAL. En la gráfica que a continuación mostramos comparamos el rendimiento de esta conexión EAAL con la conexión AAL que circula paralela a ella. La conexión AAL atraviesa por elementos idénticos a la EAAL y con tráfico de fondo también idéntico. Además su configuración es igual a la EAAL con la salvedad, claro está, de que no tiene GoS. 84 Simulador de Tráfico ATM con Garantía de Servicio 80 Tamaño trama (células) 70 60 64 50 Tramas recibidas 32 40 16 30 20 10 16 0 64 EAAL EAAL AAL AAL Correctas Corruptas Correctas Corruptas Tipo de trama y corrección a su llegada al sumidero. EAAL Correctas EAAL Corruptas AAL Correctas AAL Corruptas 64 17 0 7 15 32 34 0 28 14 16 73 0 68 16 Gráfica 22.4: Tramas EAAL y AAL llegadas correctas y corruptas a los sumideros S_EAAL_1 y S_AAL_1 respectivamente con el umbral al 100%. Esta gráfica es muy representativa. Se puede observar cómo a pesar de no actuar el sistema de control del búfer ni el sistema de retransmisiones, el tráfico EAAL se ve mejorado sensiblemente con respecto al AAL en el sentido de que las tramas corruptas que circulan por la red son nulas. Esto es debido a que el conmutador CA_9 desecha todas las tramas no correctas procedentes de conexiones EAAL. Esta labor la realiza el agente CoSa en los conmutadores activos. Como consecuencia, mientras que las tramas AAL corruptas siguen circulando por la red ocupando ancho de banda de forma innecesaria, las tramas corruptas de conexiones EAAL desaparecerán en el siguiente conmutador activo por el que vayan a cruzar. Además se puede ver que las tramas recibidas correctamente con tráfico EAAL son superiores a las recibidas con tráfico AAL. Esto no es debido a las retransmisiones ya que con el umbral al 100% un conmutador no realiza peticiones de retransmisión. El motivo de esta mejora es debido al agente CoSa junto con la forma del tráfico de fondo. Éste agente retiene las tramas EAAL hasta que están completas antes de enviarlas a que sean conmutadas. En un tráfico de fondo a ráfagas, como el diseñado para esta topología, el hecho de inyectar la trama entera al buffer provoca que sea más probable que todas las células de la trama sufran la misma suerte. Por lo tanto, como el búfer está menos tiempo lleno que semi-lleno congestionarán menos tramas. En el caso de las tramas AAL las células pertenecientes a éstas son conmutadas e introducidas en el 85 Simulador de Tráfico ATM con Garantía de Servicio búfer al mismo ritmo al que llegan, sin reensamblado. Por tanto, al tardar más tiempo una trama en ser conmutada, hay más probabilidades de que coincida su almacenamiento en el búfer con una etapa de congestión de éste. En anteriores párrafos hemos visto cómo el nivel del umbral no es decisivo a la hora del número de tramas que llegan a un sumidero destino, a excepción de un umbral al 100% por razones ya explicadas. Sin embargo hemos apuntado el hecho de que se producen congestiones y que se pierden células pertenecientes a tramas. En posteriores gráficas veremos en qué influye el umbral en la existencia de congestiones y en las peticiones de retransmisión de tramas. 25000 20000 15000 Tam. trama Células descartadas 10000 64 32 5000 16 0 70% 80% 16 90% 64 95% 99% Tamaño del umbral (con relación al tamaño del buffer) 100% 70% 80% 90% 95% 99% 100% 64 8896 4376 2177 1689 4586 256 32 15700 8446 3130 1839 3686 697 16 20756 11914 4420 2061 1038 661 Gráfica 22.5: Comparación de las células descartadas en el conmutador CA_9 en función del tamaño de trama. En la anterior gráfica se muestran las células que se descartan en el conmutador CA_9 como consecuencia de descartes de células realizados por el EPDR o por congestiones. Vemos cómo a medida que aumentamos el porcentaje del umbral disminuyen el número de células descartadas pero sólo hasta un cierto valor. En la gráfica se observa cómo en el porcentaje del 99% en un búfer de 1000 células el número de células descartadas vuelve a crecer. Hay varias razones para este comportamiento: 1- Según el comportamiento del EPDR si al ir a conmutar la primera célula de una trama EAAL se observa que el nivel de llenado del búfer ha sobrepasado al umbral, esta célula 86 Simulador de Tráfico ATM con Garantía de Servicio se descarta, junto con las células pertenecientes a la misma trama que se conmuten con posterioridad. Por lo tanto, a menor nivel de umbral es más probable que se descarte una trama. 2- El hecho del repunte de tramas descartadas en un umbral con porcentaje al 99% lo explicaremos mejor a partir de la siguiente gráfica: Gráfica 22.6: Comparación de los niveles de llenado del búfer del conmutador CA_6 en umbrales al 95% y al 99%. En la gráfica se ve cómo para valores elevados de llenado del buffer se producen muchas más congestiones con el búfer al 99% que con el búfer al 95%. Analizando el FIS vemos que esto se debe concretamente a que se intenta introducir una trama en el búfer que no va a caber. Según el algoritmo EPDR, cuando se conmuta la primera célula de una trama se comprueba primeramente si cabe según el umbral, si es así se introduce, si no se descarta junto con las células pertenecientes a la misma trama que aparezcan a continuación. El problema surge cuando el espacio entre el umbral y el búfer está muy cercano al tamaño de trama. En este caso será más probable que la trama comience a introducirse por debajo del umbral, que lo sobrepase y que finalmente haya que descartar alguna de sus células al no caber físicamente el búfer. El hecho de que se descarten menos células (con un umbral al 99%) a medida que disminuimos el tamaño de trama corrobora nuestra explicación. Los hechos descritos anteriormente pueden verse en la gráfica de retransmisiones solicitadas que vemos a continuación: 87 Simulador de Tráfico ATM con Garantía de Servicio Tamaño trama (células) 1400 1200 1000 64 800 Retrans. Solicitadas 32 600 16 400 200 0 70% 80% 90% 64 95% 99% 100% Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% 100% 64 128 68 24 17 78 0 32 468 241 76 36 111 0 16 1232 689 231 86 26 0 Gráfica 22.7: Comparación de las retransmisiones solicitadas por el conmutador CA_6 al conmutador CA_4. En esta gráfica anterior se ve más claramente el efecto del umbral sobre el descarte de tramas. Las diferencias tan grandes de descartes entre tamaños de tramas se deben a que se envían más tramas de 16 células que de 32 y que de 64; sin embargo los bytes mandados por la fuente F_EAAL_1 son los mismos. Así mismo se ve que se descartan más tramas de 32 que de 64 células con el umbral al 99%. Este hecho se debe a que las retransmisiones de tramas de 32 células son más rápidas al tenerse que enviar menor número de células. 12.3. Influencia del EPDR en la fragmentación Un hecho importante y nocivo para las redes que pretende evitar el EPDR es la fragmentación de tramas, es decir, se pretende evitar que continúen tramas EAAL a las que se les ha congestionado alguna célula y por lo tanto ha tenido que ser descartada. En este apartado pretendemos estudiar cómo afecta el umbral al número de tramas fragmentadas que, a pesar del EPDR, continúan hacia el sumidero destino. Para estudiar este hecho hemos de modificar la 88 Simulador de Tráfico ATM con Garantía de Servicio topología base para evitar que el último conmutador, el agente CoSa del CA_9, elimine aquellas tramas que detecta fragmentadas; por ello hemos sustituido este conmutador por un conmutador no activo, el CNA_1 que comparte la misma configuración en los elementos comunes. La nueva topología se muestra en la figura 22.8. Figura 22.8: Topología mixta con conmutadores no activos finales. Para estudiar el efecto de la fragmentación nos concentraremos en simulaciones creadas sobre tramas de tamaño fijo de 32 células. Como elementos cambiantes tendremos el porcentaje del umbral. Estudiaremos la fragmentación de las EAAL en contraste con las conexiones AAL las cuales no se beneficiarán directamente de los mecanismos del EPDR. Podemos ver en la gráfica 22.9 los resultados obtenidos. Observamos que las tramas AAL se fragmentan a un ritmo constante independientemente del valor del umbral. Esto es lógico si tenemos en cuenta que el algoritmo EPDR no actúa sobre conexiones AAL sino únicamente sobre las conexiones EAAL por lo que el valor del umbral para las primeras no tiene ninguna influencia. Por otro lado siempre llegan más tramas correctas que incorrectas siendo las segundas aproximadamente el 43% de las tramas totales recibidas por el sumidero. En cuanto a la fragmentación de las tramas EAAL hemos obtenido una gráfica muy parecida a anteriores gráficas. Al igual que con las células descartadas y las peticiones de retransmisiones, las tramas fragmentadas descienden a medida que aumenta el umbral, a excepción del fenómeno ya conocido del repunte en el porcentaje al 99%. La explicación se debe a que cuando por acción del umbral se descarta una trama, si la célula EOM de dicha trama cabe en el búfer, ésta se introduce aunque se haya descartado todas las células de información de la trama. Sin embargo el repunte no aparece tan pronunciado como en anteriores gráficos. Esto es debido a la misma circunstancia anterior, a que le EOM sólo se introduce en el caso de que haya 89 Simulador de Tráfico ATM con Garantía de Servicio espacio en el buffer. Por eso mismo es mucho menos probable en un búfer al 99% (casi al 100%) de su capacidad quepa la célula EOM. 450 400 Tramas recibidas Tipo Trama 350 300 250 200 150 100 50 0 AAL Corruptas AAL Correctas EAAL Correctas EAALCorrup tas EAAL Correctas 70% 80% 90% 95% AAL Corruptas 99% 100% Tam año del um bral (con relación al tam año del buffer) 70% 80% 90% 95% 99% 100% AAL Corruptas 14 14 14 14 14 14 AAL Correctas 28 28 28 28 28 28 EAAL Correctas 43 43 43 43 42 34 EAALCorruptas 440 220 69 31 64 8 Gráfica 22.9: Proporción entre las tramas llegadas correcta e incorrectamente al sumidero S_EAAL_1 para tramas de 32 células con distintos valores de umbral. Para finalizar este apartado vamos a estudiar el efecto de los conmutadores activos, para un umbral al 100% en conexiones EAAL y AAL. En la gráfica 22.10 se pueden observar los resultados de este caso. De esta gráfica se obtienen dos conclusiones: 12- Las conexiones EAAL mejoran con respecto a las AAL, aun sin el mecanismo de retransmisiones. Sin la actuación del EPDR se pierden muchas más tramas completas que con conexiones AAL. Este hecho destaca más con conexiones de 64 células. La explicación, que tiene que ver con al agente CoSa junto con la forma del tráfico de fondo, se dio ya en el anterior punto. 90 Simulador de Tráfico ATM con Garantía de Servicio 90 Tamaño trama (células) 80 70 Tramas recibidas 60 64 50 32 40 16 30 20 10 0 EAAL Bien EAAL Mal 64 AAL Bien AAL Mal Total EAAL Total AAL Tipo de trama y corrección a su llegada al sumidero. EAAL Bien EAAL Mal AAL Bien AAL Mal Total EAAL Total AAL 64 17 2 7 15 19 22 32 34 8 28 14 42 42 16 73 10 68 16 83 84 Gráfica 22.10: Diferencia entre tramas correcta e incorrectamente llegadas según el tipo de conexión con un umbral al 100%. 12.4. Influencia del tamaño del búfer del conmutador congestionado En este punto estudiaremos la influencia del tamaño del búfer sobre las conexiones EAAL en congestión. Partiremos de la topología descrita en la figura 22.1 y estudiaremos algunas simulaciones con distintos tamaños de búfer y de umbral. El tamaño de trama lo hacemos esta vez constante al valor de 32 células. Para cada valor diferente de capacidad de búfer se ha modificado el tráfico de fondo para que el patrón de llenado sea igual al mostrado en la gráfica 22.2. Para ello se aumentando o disminuido, según sea el caso, la velocidad de envío del tráfico ATM de fondo así como velocidad de portadora de salida del puerto al que está conectado el sumidero ATM. A priori parece obvio que con valores mayores de búfer el tráfico, tanto de células ATM como de tramas AAL y EAAL, se verá favorecido y no tan afectado por las temidas congestiones. En la gráfica 22.11 se pueden observar los datos obtenidos en las simulaciones. 91 Simulador de Tráfico ATM con Garantía de Servicio 600 Tamaño del búfer 500 400 Retrans. solicitadas 500 300 1.000 2.000 200 4.000 100 2.000 0 70% 80% 90% 95% 99% 100% 500 Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% 100% 500 451 205 58 43 136 0 1.000 468 241 76 37 111 0 2.000 504 280 74 22 6 0 4.000 545 313 71 24 2 0 Gráfica 22.11: Retransmisiones solicitadas con distintos valores de búfer(con tráfico de fondo revisado) y de umbral para tramas de 32 células. Vemos que el efecto repunte en el umbral al 99% disminuye a medida que aumentamos el tamaño del búfer hasta que llegamos a un punto que desaparece. Sin embargo es de prever que si subimos el umbral por encima del 99% el efecto repunte volverá a aparecer. Por tanto llegamos a la conclusión de que hay que encontrar un equilibro entre el tamaño del búfer y el valor del umbral teniendo en cuenta el tamaño medio de trama. Para el algoritmo EPDR estos parecen ser los factores más importantes. 12.5. Influencia del grado de GoS de las conexiones privilegiadas. En este apartado estudiaremos la influencia del grado de GoS en el rendimiento de las conexiones EAAL. Recordemos que el grado de GoS es un parámetro que se establece para las conexiones EAAL y que se negocia con los conmutadores activos durante el transcurso del 92 Simulador de Tráfico ATM con Garantía de Servicio proceso de establecimiento de conexiones. Este parámetro representa el número de tramas EAAL que se pide a los conmutadores guarden en su memoria DMTE para poder servir peticiones de retransmisión. En un principio se puede pensar que cuanto mayor sea le valor de la DMTE mejor será el rendimiento de la conexión. Veremos con la siguiente gráfica si eso es cierto. Las simulaciones en las que se basa esta gráfica han sido realizadas sobre las tramas que más retransmisiones provocan en el conmutador CA_6, las de 16 células. La topología de la que partimos es idéntica a la presentada en la figura 1. Vamos a estudiar el número de retransmisiones no servidas para distintos grados de GoS para la conexión EAAL en función del valor del umbral. Por retransmisiones no servidas entendemos aquellas que pide el conmutador CA_6 y que no pueden servir ni el conmutador CA_4 ni el CA_1 por no existir ya copia de la trama en la DMTE. Este hecho sucede cuando la trama requerida ha sido sustituida por una más reciente al no haber espacio libre en la DMTE. En la gráfica 22.12 se presentan los resultados obtenidos. 40 Grado de GoS 35 30 Retrans. no servidas. 25 9 20 4 15 3 10 2 1 5 1 3 0 70% 80% 90% 95% 9 99% Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% 9 0 0 0 0 0 4 0 0 0 0 0 3 2 0 0 0 0 2 18 1 0 0 0 1 38 16 0 0 0 Gráfica 22.12: Número de retransmisiones no servidas en relación con el umbral para distintos valores de GoS. 93 Simulador de Tráfico ATM con Garantía de Servicio Vemos en esta gráfica cómo el número de tramas no servidas desciende rápidamente a medida que aumentamos el grado de GoS. Todas estas tramas no servidas se perderán y tendrán que ser retransmitidas por los protocolos superiores del modelo ATM si se las quiere recuperar. También se muestra cómo llega un momento que aunque aumentemos el grado de GoS no mejora el rendimiento ya que se sirven todas aquellas peticiones de retransmisión que se solicitan mientras que éstas están ocupando espacio en la DMTE de manera innecesaria. Por tanto hay que llegar a un compromiso entre las congestiones esperadas que se produzcan para una conexión y el grado de GoS solicitado sin aumentar éste de manera innecesaria. Vemos también cómo sólo se pierden tramas por retransmisiones no servidas en porcentajes de umbral del 70% y de 80%. El descenso tan brusco se debe a que se pierden menos tramas y por tanto se transmiten menos peticiones de retransmisión. Esto provoca que no aumente el tráfico EAAL con retransmisiones y, consecuentemente, que no se produzcan congestiones por este tráfico añadido, un hecho éste que hay que evitar a la hora de diseñar una red con conmutadores activos. Así pues hemos visto que un exceso de peticiones de retransmisión puede provocar un aumento exponencial en el tráfico existente entre dos conmutadores. Una forma de solucionar este hecho perjudicial podría ser la de distanciar los conmutadores activos entre si. Cuanto mayor sea la distancia entre dos conmutadores activos más tiempo pasará desde una congestión y su consecuente petición de retransmisión hasta el momento en el que esta petición es atendida y servida. Esto sería beneficioso para el tráfico en el sentido de que habría dado tiempo para que actuaran en los conmutadores los mecanismos de prevención y evitación de congestión y, por tanto, bajase el nivel de llenado del búfer antes de que llegara la trama congestionada. En las siguientes gráficas vamos a estudiar la anterior hipótesis. Para ello hemos construido una topología mixta en la que el conmutador anterior al conmutador congestionado lo hemos sustituido por un conmutador no activo por lo que la petición de retransmisión la tendrá que servir el primer conmutador. La nueva topología, idéntica a la de la gráfica anterior salvo por la diferencia anteriormente indicada, se muestra en la figura 22.13. 94 Simulador de Tráfico ATM con Garantía de Servicio Figura 22.13: Topología mixta con retransmisiones de largo recorrido La gráfica 22.13 resultante de hacer la simulación de la topología anterior para diferentes tamaños de GoS y de umbral es un poco sorprendente. 95 Simulador de Tráfico ATM con Garantía de Servicio 40 Grado de GoS 35 30 Retrans. no servidas. 25 9 20 4 15 3 10 2 1 5 1 3 0 70% 80% 90% 95% 9 99% Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% 9 0 0 0 0 0 4 0 0 0 0 0 3 1 0 0 0 0 2 21 0 0 0 0 1 38 18 0 0 0 Gráfica 22.14: Número de retransmisiones no servidas en relación con el umbral para distintos valores de GoS. Vemos que no se altera de forma aparente el aspecto de la gráfica a parte de algún pequeño aumento para las tramas no servidas en GoS de 1 trama. Sin embargo si estudiamos la gráfica siguiente veremos que si que ha mejorado el tráfico por la red. En ella, la gráfica 22.15, hacemos una comparación de las peticiones de retransmisión para la topología mixta y la original para un GoS de 1 célula. Vemos que para umbrales pequeños las peticiones de retransmisión se reducen considerablemente mientras que, según la gráfica anterior, el número de tramas perdidas es idéntico. Por lo tanto deducimos que el alejamiento entre conmutadores activos ha provocado un aumento en el rendimiento de la red. Es de suponer que también habrá que llegar a un compromiso entre la separación de los conmutadores activos y la separación entre fuente y sumidero de una conexión EAAL ya que si la primera es demasiado cercana a la segunda los beneficios de las retransmisiones locales podrían resultar demasiado pequeños en comparación con los recursos empleados. También habrá que encontrar el equilibrio entre la separación de conmutadores activos y el grado de GoS porque llegará un momento en el que si aumentamos la separación será menos probable que la trama requerida para retransmisión se encuentre en la DMTE. 96 Simulador de Tráfico ATM con Garantía de Servicio 1200 1000 Tipo Topología 800 Peticiones Retrans. 600 Mixta 400 Norm al 200 0 70% Normal 80% 90% Mixta 95% 99% Tamaño del umbral (con relación al tamaño del buffer) 70% 80% 90% 95% 99% Mixta 769 456 176 74 18 Norm al 1005 583 321 86 27 Gráfica 22.15: Comparación de las peticiones de retransmisión para topologías mixta y normal con GoS de 1 trama. 12.6. Influencia del tamaño de la memoria DMTE Hemos visto en el punto anterior que cuanto mayor es el grado de GoS mayores posibilidades hay de que una trama EAAL descartada se encuentre almacenada en la DMTE de un conmutador anterior al que se le solicite la retransmisión de dicha trama. También hemos visto que llega un momento que un grado de GoS determinado es suficiente para servir todas las retransmisiones por lo que aunque aumentemos el grado de GoS no mejora el rendimiento de una conexión. Teniendo en cuenta el párrafo anterior, a la hora de elegir el tamaño de la DMTE se ha de hacer de manera que en ésta memoria haya suficiente espacio para todas aquellas conexiones que soliciten GoS. Por otra parte, en la negociación de apertura de conexión, un AcTM debería modificar el valor de GoS requerido por una conexión para que éste no supere el que se considera suficiente según la configuración de la red. Este grado GoS suficiente se debe calcular en función del tamaño disponible de DMTE, de las conexiones que se estime que en un futuro pedirán GoS y del tamaño de trama y velocidad de estas conexiones. 97 Simulador de Tráfico ATM con Garantía de Servicio Por lo tanto el tamaño de la DMTE se debe escoger cuidadosamente para encontrar un equilibrio entre los recursos empleados en ella y el beneficio que aporta a las conexiones privilegiadas. 12.7. Influencia de la velocidad de salida de las fuentes EAAL En este apartado vamos a mostrar la influencia que ejerce la velocidad de salida de una conexión en un conmutador EAAL. Para ello escogeremos una configuración de la red que, según las gráficas mostradas hasta el momento, consideramos óptima. En esta configuración el conmutador CA_6 tendrá un tamaño de búfer de 1000 células y un umbral al 95%. La conexión EAAL tendrá una GoS de dos tramas siendo ésta de un tamaño de 32 células. Con esta configuración a la velocidad de salida de anteriores pruebas, la conexión provocaría congestiones en el conmutador CA_6. Todas las tramas perdodas en estas congestiones serán recuperadas y servidas por en conmutador CA_4 por lo que no se perderá ninguna trama. Se van a probar cuatro diferentes velocidades de salida. A partir de esta configuración observaremos qué efectos provocará en la red el aumento o disminución de la velocidad de envío de la conexión privilegiada. Las gráficas obtenidas son las siguientes: 35000 30000 25000 20000 Células descartadas 15000 10000 5000 0 v*0.1 v v*10 Velocidad de salida EAAL (v = 366792.45 células/seg) Células Descartadas v*100 v*0.1 v v*10 v*100 100 1829 28940 31750 Gráfica 22.16: Comparación de las células descartadas en el conmutador CA_6 para diferentes velocidades de salida en la fuente EAAL. 98 Simulador de Tráfico ATM con Garantía de Servicio 900 800 700 600 500 400 300 200 100 0 Restrans. Solicitadas v*0.1 v v*10 Velocidad de salida EAAL (v = 366792.45 células/seg) Retransm isiones Solicitadas v*100 v*0.1 v v*10 v*100 1 37 719 802 Gráfica 22.17: Comparación de las peticiones de retransmisión que realiza el conmutador CA_6 para diferentes velocidades de salida en la fuente EAAL. 450 400 350 300 250 200 150 100 50 0 Tramas correctas. v*0.1 v v*10 Velocidad de salida EAAL (v = 366792.45 células/seg) Tram as Recibidas v*100 v*0.1 v v*10 v*100 4 44 382 437 Gráfica 22.18: Comparación de las tramas correctas llegadas al sumidero para diferentes velocidades de salida en la fuente EAAL. 99 Simulador de Tráfico ATM con Garantía de Servicio En estas gráficas vemos cómo se produce un aumento significativo en las células descartadas así como en las peticiones de retrasmisión de v*10 con respecto a v. Este aumento es lógico si se tiene en cuenta que las tramas enviadas con v*10 son aproximadamente diez veces más que las enviadas con v. Sin embargo este aumento no es tan significativo si comparamos v*10 con v*100. Esto se debe a dos razones: 1- 2- Las velocidades de portadora de salida de los conmutadores son todas de 10 7 células/segundo por lo que la velocidad de salida de los conmutadores limita la velocidad de salida de la fuente. La segunda razón y la más importante se puede explicar mejor si tenemos en cuenta la siguiente gráfica: 300 250 Restrans. no Servidas 200 150 100 50 0 v*0.1 v v*10 Velocidad de salida EAAL (v = 366792.45 células/seg) Retransm isiones no Servidas v*100 v*0.1 v v*10 v*100 0 0 277 54 Gráfica 22.19: Comparación de las peticiones de retransmisión no servidas por el conmutador CA_4 para diferentes velocidades de salida en la fuente EAAL. En la anterior gráfica puede verse un hecho muy significativo: con v*100 se retransmiten menos tramas que para v*10 mientras que vimos en la gráfica 22.17 que para v*100 se producen más solicitudes. Esto se debe a que las retransmisiones se realizan cuando el conmutador no tiene tráfico normal para enviar. De esta forma una velocidad de envío de la fuente cercana a la velocidad de la portadora de los conmutadores provoca que no haya espacio temporal para enviar las tramas a retransmitir. De las anteriores gráficas sacamos se deduce que hay que limitar la velocidad de salida de las fuentes de manera que el conmutador que se prevé sirva las retransmisiones tenga suficiente tiempo libre (tiempo OFF) para servirlas. Si no se cumple lo anterior las retransmisiones que se pueden servir localmente disminuyen de forma significativa y por tanto los conmutadores AcTMs pierden gran parte de sus ventajas. 100 Simulador de Tráfico ATM con Garantía de Servicio 13. Conclusiones Hemos demostrado en este módulo con multitud de datos cómo la inclusión de conmutadores activos que realicen retransmisiones locales e implementen el EPDR mejora el rendimiento de una red ATM con congestiones en alguno de sus conmutadores. Entonces, estudiadas las gráficas de anteriores puntos, como conclusiones principales a este módulo podemos sacar las siguientes: 1- ATM mejora con la inclusión de AcTMs. 2- El rendimiento de una red con AcTMs varía considerablemente en relación a una buena elección de sus parámetros configurables. 3- Hay dos grupos de parámetros principales y que guardan estrecha relación entre si y que deberían ser configurados teniendo una visión global de sus relaciones: a. Tamaño de búfer en un AcTM, proporción del umbral y tamaño medio de trama EAAL. b. Grado de GoS, distancia temporal entre AcTMs y velocidad de envío de tramas. 4- Encontrar un equilibrio entre todos los parámetros configurables puede ser una labor sumamente complicada aunque puede verse facilitada en la medida en que sea predecible el tráfico circulante por la red. 13.1. Trabajos futuros En este módulo hemos realizado gran cantidad de pruebas y simulaciones sobre distintas topologías, conexiones y configuraciones de conmutadores. Posteriormente hemos analizado los resultados obtenidos y, a partir de ellos, hemos obtenido diversas conclusiones. Debido principalmente a que queda fuera del ámbito de este proyecto, no hemos querido profundizar más en el análisis de los resultados y, como ha podido verse, las conclusiones aportadas son de carácter general y esquemático. Esto deja la puerta abierta a futuros trabajos que se centren en el estudio estadístico de los resultados obtenidos y la creación de fórmulas matemáticas para la elección de los parámetros configurables que intervienen en la arquitectura TAP y/o que influyen en su comportamiento. Por otra parte, en lo referente al simulador en si, aún hay mucho que hacer en relación a tres puntos importantes: 1- Mejorar el realismo: La red ATM que nosotros hemos conseguido está simplificada en diversos aspectos, como por ejemplo en la QoS. Como trabajos futuros se propone la implementación completa de los aspectos simplificados y la inclusión de aquellos suprimidos con lo que se mejoraría el realismo global de las simulaciones. 2- Mejorar la rapidez: Uno de los problemas mayores a los que se enfrenta el usuario del paquete SimSwitch es a la gran cantidad de recursos que necesita la realización de simulaciones y la obtención y clasificación de resultados y en consecuencia la lentitud en estos dos procesos cuando los recursos de que se disponen son limitados. Para el primer 101 Simulador de Tráfico ATM con Garantía de Servicio problema se ha propuesto la posibilidad de modificación del valor del tick mediante el que es posible obtener una mayor velocidad a costa del realismo. Para futuros trabajos queda pendiente la obtención de un rendimiento mayor en el proceso de generación de los archivos “.dgs” ya sea mediante la depuración y modificación de algoritmos o un cambio en la filosofía de generación 3- Mejorar herramientas de estudio: El analizador que ofrecemos en el paquete está pensado para ofrecer al usuario resultados concretos para distintos seguimientos y gráficas de variación con el tiempo de dichos resultados. Como trabajo futuro de propone la creación de herramientas para el estudio detallado de los valores obtenidos como la obtención de variables estadísticas, por ejemplo. Este ha sido un proyecto con grandes retos y metas elevadas en el que hemos tenido que sacrificar ciertos aspectos en aras de hacerlo abordable como proyecto fin de carrera. Sin embargo, como tal, consideramos que los resultados obtenidos superan nuestras expectativas y podemos decir con orgullo que estamos completamente satisfechos del trabajo realizado y del resultado obtenido. 102 Simulador de Tráfico ATM con Garantía de Servicio BIBLIOGRAFÍA Libros • • • • • • • • Andel, R., Huber, M. N., Schörder, S., “ATM Networks Concepts, Protocols. Applocationes (2ª Ed.)” Addison-Wesley, 1998 J. M. Pitss “Introduction to ATM. Design and Performance”, Ed. Wiley, 1997 M. de Prycker “Asynchronous Transfer Mode. Solutions for Broadband ISDN (3ª Ed.),” Ed. Prentice Hall, 1995 Froufe, A. “Java 2; Manual de Usuario y Turorial”, Ed. Ra-Ma, 2000. Stallings W. “Comunicaciones y Redes de Computadores” Sexta edición. Ed. PrenticeHall, 2000. Alberto León-García. “Redes de Comunicación”. Ed. Mc Graw Hill. 2002 Tanenbaum, A.S. “Redes de Computadoras” 3ª edición. Ed Prentice-Hall, 1997. Caballero, J.M. “Redes de Banda Ancha” Ed. Marcombosa, 1997. Artículos • • • • • • • • • • • • • • • González, J.L. “Protocolo Activo para Transmisiones Garantizadas sobre una Arquitectura Distribuida y Multiagente en Redes ATM”. Tesis Doctoral UPC, 2001. “ATM User-Network Intrerface (UNI) Signalling Specification Version 4.0” ATM Forum Technical Comunitee, ATM Forum Document af-sgt-0061, 1996 “ATM User Network Interface 3.1 specification”, ATM Forum, 1994 “Private Network-Network Interface Specification Version 1.0” ATM Forum Document af-pnni-0055.000, 1996 Lucen Technologies, “AXP 800: Guía de configuración ATM” versión 8.0, 2001 Datenkomunikation und Netzwerke “ATM PNNI Routing”, Proin, 2001. Golmie, N., Mouveaux, F., Hester, L., Saintillan, Y., Koenig, A., Su, D. “The NIST ATM/HFC Network Simulator; Operation and Programming Guide” version 4.0. U.S. Department od Commerce, 1998. Calatrava, E., Esparza, O: “Algoritmos de Control de Admisión” Encaminament i Gestió de Recursos amb QoS en les Xarxes de Banda Amplia, 2002. “Auto-Configuration of PVCs”, ATM Forum, af-nm-0122.000, 1999. González-Sánchez, J.L., Domingo-Pascual, J.D.: “Protocol for Reliable Transfer in ATM Networks with Active Switches” González-Sánchez, J.L., Domingo-Pascual, J.D.: “Survey on Protocols for ATM Networks” “Remote Monitoring MIB Extensions for ATM Networks”, ATM Forum, AF-NMTEST-0080.000, 1997. “Traffic Management Specification Version 4.0”, ATM Forum, af-tm-0056.000, 1996 The VINT Proyect “The ns Manual” Fall-Varadham, 2002 Ushbeck, C. “Topologías de Banda Ancha BISDN/ATM” Complementos Electrónicos, 1999. 103