Ethernet en tiempo real: (RETHER, EtheReal) Domingo Ortega Pérez de Villar Ethernet en tiempo real 2 Índice 1 Invitación 2 Introducción 3 Ethernet 4 Modificaciones 4.1 Modificaciones que no alteran la compatibilidad 4.1.1 Homogéneas 4.1.2 RETHER 4.1.2.1 Introducción 4.1.2.2 Cambio a modo RETHER 4.1.2.3 Algoritmo 4.1.2.4 Cambio a modo CSMA 4.1.2.5 RETHER multisegmento 4.1.3 Heterogéneas 4.1.4 EtheReal 4.1.4.1 Introducción 4.1.4.2 Establecimiento de la conexión 4.1.4.3 Gestión de los recursos 4.1.4.4 Limitaciones 4.1.4.5 Requerimientos 4.1.4.6 Conmutación de paquetes 4.1.4.7 Conclusiones EtheReal 5 Conclusiones 6 Referencias Ethernet en tiempo real 3 1 - Invitación Hoy en día tanto la industria como los usuarios particulares demandan servicios que requieren de una mínima calidad de servicio y que lleguen sin mas retraso que el inevitable al destino. Hasta ahora dichos servicios los ofrecían protocolos como TTP(TDMA based), timed-token protocol, Token bus(IEEE 802.4), Token Ring(IEEE 802.5), mientras que los protocolos basados en Ethernet no daban ninguna garantía de cumplir con unos tiempos límites determinados. Sin embargo, pese a la característica no determinista de Ethernet, se han conseguido cumplir con los requerimientos de tiempo demandados. A continuación pasaré a enfocar las distintas posibilidades. 2 - Introducción Actualmente el uso de Ethernet para las redes de área local es la solución más extendida. El abaratamiento de los conmutadores y de los hubs, ha provocado que se produzca la interconexión de segmentos Ethernet entre otras redes locales Ethernet. De este modo y por su gran popularidad se ha conseguido que se abaraten mucho los costes de los componentes para formar redes Ethernet. Debido a estas características se ha provocado que el uso de Ethernet como solución para la creación de redes de área local sea la opción mas extendida. Sin embargo, no todo han sido ventajas para quienes hubieren elegido Ethernet como solución. Aplicaciones como teleconferencias, ..., así como servicios de carácter industrial, requieren de una comunicación en tiempo real. Éste es un problema para Ethernet ya que éste es, intrínsecamente, un protocolo no determinista. No es posible establecer un límite máximo de tiempo a la hora de transmitir un mensaje desde un punto a otro. Paquetes transmitidos desde un origen a un destino pueden producir colisiones entre ellos. El protocolo de control de acceso al medio(MAC) de Ethernet, CSMA/CD (Carrier Sense Multiple Acces con Collision Detection), permite dichas colisiones. Estas colisiones hace imposible determinar de antemano cualquier retraso que se pueda producir al enviar paquetes de un nodo a otro. Sin embargo, y aprovechando que está tan extendido su uso, se han desarrollado variaciones del protocolo en algunos casos y se ha considerado el uso de hardware especial en otros, para poder satisfacer las necesidades de las aplicaciones que requieren cumplir unos límites de tiempo en la retransmisión de los paquetes(radio, televisión, redes de sensores en entornos industriales, ...). Cogiendo como base el sistema de capas del modelo OSI, se necesitan un esfuerzo conjunto de todas las capas para satisfacer las condiciones de comunicación en tiempo real. Ethernet en tiempo real 4 La capa de aplicación: no sólo la red debe garantizar una rápida respuesta para cumplir con las condiciones de tiempo real, también lo debe de hacer la aplicación pertinente sirviendo una respuesta en un tiempo acotado según las necesidades propias de la aplicación. La capa de transporte: TCP y UDP, al ser los más extendidos, es dónde se han concentrado la mayor parte delos esfuerzos para cumplir con las necesidades. La capa de red: en donde más se ha trabajado es en el protocolo IP al ser la solución más extendida. También se ha trabajado con las políticas de enrutamiento de paquetes en los routers para garantizar que se cumplan unas condiciones de prioridad sobre otros paquetes que no tengan las mismas restricciones de tiempo. Con respecto a la capa de enlace de datos(Data link): para sobreponerse al indeterminismo que supone Ethernet, se han propuesto una serie de soluciones para el control de acceso al medio. Algunas pueden coexistir con los nodos Ethernet estandard, algunas son capaces de usar el mismo hardware pero son incompatibles con el protocolo actual, y otras son compatibles pero no garantizan nada en entornos en donde no todos de los nodos implementen las mismas modificaciones. 3 - Ethernet En Ethernet todo nodo antes de transmitir, al hacer uso de CSMA/CD, monitorea el medio para comprobar posibles colisiones. Cuando la red está poco cargada, el tiempo de espera para transmitir es mínimo. Cuando la carga de la red aumenta, el mecanismo que hace uso de números aleatorios para comprobar cuando puede tener una acceso, se va adaptando suavemente acorde a la carga existente. Una red es capaz de operar con un ratio de utilización cercano al 100% cuando los paquetes son lo suficientemente grandes, incluso con un gran número de nodos. Con paquetes más pequeños el ratio de utilización decrece. Cuando el medio no está muy cargado el control de acceso al medio se comporta generalmente de manera justa ofreciendo un tiempo de espera pequeño. En caso contrario, cuando hay mucho tráfico, deja de comportarse de una manera justa produciendo efecto captura(el nodo que sea capaz de procesar y preparar la trama a enviar en un tiempo inferior al del hueco entre tramas será el que cada vez irá incrementando su capacidad para acceder al medio decrementando la del resto). Los conmutadores Ethernet, en teoría, gestionan hasta ocho niveles de prioridad de tráfico. Sin embargo, en la práctica sólo trabajan con cuatro. Aun así, muchos sólo disponen de tres colas para gestionar el tráfico: “Best-effort”, “real time” y “management”. De modo que no es suficiente para Ethernet en tiempo real 5 lograr una planificación adecuada que cumpla con las necesidades de las aplicaciones que sí que requieran una mejor gestión en la transmisión para garantizar la entrega de paquetes en un tiempo acotado. 4 - Modificaciones Se han definido tres enfoques sobre modificaciones con respecto del estándar para aproximarnos a la comunicación en tiempo real que buscamos. Estos posibles enfoques son: la supresión de colisiones, reducir su número y la resolución de colisiones de una manera determinista. Partiendo del protocolo original, existen dos tipos de modificaciones: las que necesitan que las mismas modificaciones se produzcan en todos los dispositivos(soluciones homogéneas) y las que no hacen falta que se lleven a cabo en todos los dispositivos(soluciones heterogéneas). Este último grupo sería aquel en el que podrían coexistir con los productos habituales estándar. → Modificaciones que alteran la compatibilidad → Modificaciones que no alteran la compatibilidad ∟→ Homogéneas (RHETER) ∟→ Heterogéneas (EtheReal) 4.1 - Modificaciones que no alteran la compatibilidad Se distinguen dos grupos entre las modificaciones que no alteran la compatibilidad, las homogéneas, que como he mencionado antes se deben aplicar las mismas modificaciones a todos los nodos de la red, y las heterogéneas, que no hace falta que se apliquen a todos los nodos. 4.1.1 - Homogéneas Una solución vendría dada mediante la contención del tráfico de manera que se controlo el tráfico y que en lugar de enviar tráfico a ráfagas, regular el tráfico de manera que se vaya liberando de manera continua de forma moderada(traffic smooth). Con este tipo de tráfico, en el que los mensajes llegan a una frecuencia constante, es más difícil sufrir colisiones que con un tráfico a base de ráfagas. En time-triggered applications(aplicaciones que se activan de manera periódica), el Ethernet en tiempo real 6 tráfico de tiempo real generado se produce de una manera regulada, de modo que es adecuado. Sin embargo, el tráfico sin los requerimientos de tiempo real, se produce a modo de ráfagas. Este tráfico al llegar, y antes de pasar a la capa de enlace de datos(data link), debe ser 'suavizado' atrasándolo en periodos de tiempo mayores. Cuando se produce una ráfaga, los mensajes deben ser almacenados en una cola y enviados uno tras otro a una frecuencia menor que la tasa de llegada que soporte la red. Esta técnica de suavizado de ráfagas hace uso de la técnica del token bucket(cuba). La cuba tiene un número fijo de créditos y un periodo de rellenado. Por cada periodo de relleno, se añaden créditos a la cuba. Si el total de créditos excede el tamaño total de la cuba, se descarta el excedente Cuando se envían paquetes, se sustraen de la cuba tantos créditos como el tamaño total de los paquetes enviados. Y sólo se envía mientras queden créditos en la cuba. Si ya no hay créditos, se aguantan los paquetes hasta que haya un número de créditos suficiente para llevar a cabo la acción. El reatime traffic no requiere ningún tipo de control en este sentido y es enviado tan pronto como llega. 4.1.2 - RETHER 4.1.2.1 - Introducción Otro ejemplo es el protocolo RETHER. La única modificación que se requiere es reemplazar el controlador de Ethernet por el de RETHER en cada dispositivo de la red. Sin embargo, es capaz de garantizar los requerimientos de comunicación de aplicaciones multimedia sin tener que modificar el hardware existente. Cuando una aplicación solicita ancho de banda, se lo garantiza si es posible mientras esté activa dicha aplicación. Los estudios del grupo de investigación de los desarrolladores de RETHER demuestran que es posible reservar hasta el 60% de la capacidad de la red para comunicación en tiempo real(RT: Real-Time) sin deteriorar el rendimiento de las aplicaciones sin ese requerimiento(NRT: Non-Real-Time). 4.1.2.2 - Cambio a modo RETHER La red opera usando Ethernet tal como se define el protocolo originalmente (CSMA/CD) hasta que se produce una petición para garantizar tráfico en tiempo real. Cuando eso sucede, cambia a modo token-bus (con el que puede garantizar una comunicación en tiempo real). Ethernet en tiempo real 7 Cuando se está en modo token-bus, el tiempo se divide en ciclos de un periodo. Se asume que el tráfico en tiempo real es periódico. En cada ciclo, el acceso al canal tanto el tráfico RT como el NRT, está controlado mediante un token. Un nodo que solicite transmitir tráfico RT, pasará a inscribirse en el grupo RT. En este grupo estarán presentes todos aquellos nodos con necesidad de enviar información RT. En cada ciclo, primero se usará el canal para enviar tráfico en tiempo real y lo que quede del ciclo se dejará para el resto de tráfico. De este modo, todos los nodos a los que se les permitió entrar en el grupo de nodos RT consiguen transmitir información. Sin embargo no se puede decir lo mismo de los nodos que quisieran enviar tráfico NRT, pues no tienen garantizado un tiempo. Cuando un nodo realiza una petición de real-time traffic, y todavía se está en modo CSMA, este nodo se convierte en iniciador. Lo que hace es, mediante broadcast, indicar al resto de nodos de la red que cambien al modo RETHER. Si más de un nodo intenta ser el iniciador al mismo tiempo, se da al nodo con una ID menor, las mayor prioridad. El resto entonces espera a que se complete la transmisión que mantiene en el buffer de salida y entonces envían un acknowledgement al iniciador. En cuanto el iniciador recolecta todos los acknowledgements, crea el token y lo pone en circulación. 4.1.2.3 - Algoritmo La información que debe contener el token será: el tiempo total que tarda el token en dar única vuelta(Timed-token Rotation Time: TRT), así como también el tiempo que le queda en cada momento para completarla, que será el tiempo residual(Residual Time: RT), la lista de todos los nodos con requerimientos para real-time traffic, y todos los nodos que están activos en la red. El token visitara tanto a los nodos con requerimientos RT como a los que transmitan tráfico NRT. Cada nodo podrá disponer del token durante un periodo de tiempo específico(Token Holding time: THT). Durante este tiempo el nodo que posea el token podrá enviar el tipo de tráfico que le corresponda. Cada proceso que necesite enviar real-time traffic especificará tanto el ancho de banda como la cantidad de información que necesite enviar por cada TRT. De esta manera, se calcularan los correspondientes THT de cada nodo. Ethernet en tiempo real 8 Datos por TRT S /W Overhead t token ancho de banda Ethernet Datos por TRT THT NRT = S /W Overhead t token ancho de banda Ethernet THT RT = 1 2 (1)se calcula solo una vez, cuando se hace la petición de reserva, mientras que (2) se calcula cada vez que el token visita el nodo NRT(non-real-time traffic) basado en el tamaño del mensaje que quiere enviar. Cuando a un nodo perteneciente al grupo NRT necesite pasar al grupo RT, él mismo calculara si es posible hacerlo garantizando sus necesidades así como mantener garantizadas las de aquellos otros nodos que ya pertenecían al grupo. Se calcula de la siguiente manera: ∑ THT RT THT RT T NRT ≤TRT iRT set i nuevo De modo que si la suma de todos los anteriores THT RT , junto con el THT RT nuevo y el THT NRT son menores que el Timed-token Rotation Time, esa transmisión será aceptada y por tanto el nodo admitido en el grupo RT(para dicha conexión). Es posible tener múltiples conexiones de entrada/salida por nodo, visitando el token tantas veces el mismo nodo como haga falta y según el tipo de conexión RT o NRT. Por ejemplo, dado el siguiente segmento, la asignación de tiempo disponible para enviar cada uno de los nodos quedaría de la siguiente manera: El token visitará primeramente a los nodos RT(aquellos que requieran real-time traffic). Cada uno de estos nodos envía una unidad de tráfico real-time y decrementa el tiempo residual en THT RT . El tiempo sobrante, el token visita los nodos NRT siguiendo una planificación Round-Robin comenzando desde el siguiente nodo al último que visitó en el ciclo anterior. Cada nodo que visita el token, calcula si tiene suficiente tiempo para enviar datos. En el caso de que tenga suficiente Ethernet en tiempo real 9 tiempo, envía igual que hemos dicho antes. Decrementa el tiempo residual que marca el token en THT NRT y transfiere el token al vecino. En caso de que no tenga tiempo para enviar, él mismo se anota en el token como el siguiente nodo a visitar una vez hayan transmitido los nodos pertenecientes al grupo RT. Entonces, dicho nodo envía el token al primer nodo del grupo RT. Este nodo inicializa el tiempo residual que almacena el token a TRT(Timed-Token Rotation Time). De este modo, todos los nodos pertenecientes al grupo RT (con necesidades de real-time traffic) tienen prioridad sobre el resto de nodos pertenecientes al grupo NRT(sin necesidad de real-time traffic). 4.1.2.4 - Cambio a modo CSMA Una vez los nodos pertenecientes a RT transmiten todo el tráfico deseado, en posesión del token, se extraen del grupo RT y se añaden al grupo NRT en el token. En caso de ser el último token en el grupo RT y haber cumplido ya con la transmisión de sus datos, manda un mensaje en broadcast a todos los nodos indicando el cambio de nuevo al modo CSMA.. 4.1.2.5 - RETHER Multisegmento Pero RETHER no se limita sólo a un segmento, se puede extender a varios segmentos. Será necesario por tanto, una conexión en tiempo real entre nodos pertenecientes a distintos segmentos. De esta manera, a los que están conectados cada uno de los nodos. Sin embargo, ésto trae varios problemas, como que ahora es mas difícil garantizar la latencia ya que las conexiones real-time en cada uno de los segmentos son completamente diferentes. Por esta razón, serán necesarios buffers para almacenar la información temporalmente retenida debido a las diferencias entre cada segmento. Otro problema que se presenta es el tiempo de establecimiento de la conexión donde en el peor de los casos cada segmento debería cambiar de modo CSMA a modo RETHER. 4.1.3 - Heterogéneas Soluciones heterogéneas serán aquellas en las que no haga falta que todos los dispositivos Ethernet en tiempo real 10 implementen las mismas modificaciones para garantizar una comunicación en tiempo real. Como ejemplo de solución heterogénea presentaré EtheReal. 4.1.4 - EtheReal 4.1.4.1 - Introducción Un ejemplo de solución heterogénea, donde no todos los dispositivos de la red deben implementar las mismas modificaciones para garantizar comunicación en tiempo real, sería EtheReal. EtheReal garantiza ancho de banda basado en conexión a las aplicaciones que requieran de comunicación en tiempo real usando los controladores y adaptadores normales de Ethernet. La clave de EtheReal se encuentra en el uso de los conmutadores para garantizar conexiones que requieran de comunicación en tiempo real. Las modificaciones en las que se basa EtheReal pueden ser implementadas en software, de manera que no hace falta ningún requerimiento hardware especial. A los usuarios, simplemente se les instalan librerías que serán capaces de establecer dichas conexiones desde el origen hasta el destino sin involucrar los kernel de ningún nodo. En el diseño de EtheReal se asume lo siguiente: ● Los nodos están conectados a los conmutadores EtheReal mediante conexiones punto a punto. De esta manera se elimina la mayor fuente de indeterminismo debida al protocolo de acceso al medio CSMA/CD. ● Todo el ancho de banda requerido por un nodo, tanto real-time como non-real-time, será menor que el total del ancho de banda de la red. Así se elimina la mayor fuente de problemas para garantizar un comportamiento adecuado para las aplicaciones con requerimientos de comunicación en tiempo real, que se considera que está producida por aplicaciones que ejecutan el resto de los nodos. ● Se soportaran dos tipos de servicios sobre la red: conexiones en tiempo real con tasa de transferencia variable, las cuales requerirán de un proceso de setup, y conexiones sin requerimientos real-time con las cuales no será necesaria ninguna fase de setup, y por lo tanto, no tendrán ninguna garantía. ● Los nodos deberán soportar los protocolos TCP/UDP e IP. 4.1.4.2 - Establecimiento de la conexión Uno de los propósitos al establecer la conexión entre nodos y conmutadores era no tener que añadir Ethernet en tiempo real 11 al kernel ninguna capacidad especial para soportar el establecimiento de estas conexiones con las características que acarrean. Los identificadores de cada conexión deberán, por tanto, quedar embebidos en las cabeceras de la capa de enlace, ya que los conmutadores trabajarán en esa capa. Lo que han tenido que desarrollar era una forma de introducir identificadores de conexión en las cabeceras ethernet de modo que conserve la semántica propia de ethernet y no tenga que modificar ni el kernel del cliente como el del servidor. Se asume que el sistema operativo de los nodos soporta los protocolos UDP/IP así como el ARP. Cuando una aplicación solicita establecer una conexión en tiempo real, manda una petición de reserva al real-time communication Daemon (RTCD)-en el mismo nodo-, que es un proceso que se ejecuta a nivel de usuario. El RTCD será el encargado de establecer la conexión así como del “teardown”. En la solicitud de conexión se incluye la Ip del nodo destino, el puerto, y la calidad de servicio que se desea obtener. RTCD solicita la reserva al conmutador EtheReal al cual está conectado el nodo que quiere establecer la conexión. Lo hará a través de paquetes UDP. El paquete incluirá la IP del nodo destino, los parámetros de calidad de servicio, y un identificador único de dos bytes para la conexión EtheReal entre el nodo origen y el conmutador al que está conectado. Está solicitud será redirigida de un conmutador a otro hasta alcanzar el conmutador al cual está conectado el nodo destino, de forma que sólo cambiarán los dos bytes que sirven para identificar la conexión EtheReal entre conmutador y conmutador. Una vez en el último conmutador, ya no es necesario que se redirija la reserva al nodo de destino, ya que es el conmutador conectado a él el que le garantizará la conexión. De este modo, este último conmutador, usará ya la dirección del nodo de destino. Si la petición de establecimiento para la conexión real-time es aceptada por todos y cada uno de los conmutadores a través de los que se conectan origen y destino, el ultimo conmutador enviara a Ethernet en tiempo real 12 través de un paquete UDP un “succes” que recibirá el RTCD en el origen. El RTCD crea una dirección proxy IP y otra Ethernet para la conexión en tiempo real añadiendo el prefijo 1.1 para IP y FF.FF.FF.FF para Ethernet. También, añadirá en la cache ARP del nodo origen una entrada ARP que transforma la dirección proxy IP en la dirección Ethernet de 6 bytes. El nodo de origen entonces para comenzar a transferir a través de la conexión en tiempo real, creará sockets UDP con la dirección proxy IP. Cuando la capa IP del nodo reciba paquetes UDP de la aplicación en tiempo real, mirará en la cache ARP para asociar la dirección de destino del paquete IP 147.156.21.33 con la dirección Ethernet FF.FF.FF.FF.05.04 a través de la cual se hará la transmisión. Cuando cualquiera de los conmutadores EtheReal reciben paquetes con una dirección de destino del tipo FF.FF.FF.FF.XX.YY, él ya sabrá de que se trata de una conexión en tiempo real y en lugar de interpretarla como una dirección Ethernet, sabe que XX.YY representan el ID de la conexión en tiempo real. Cuando esto ocurra, dicho conmutador se encargará de cambiar la dirección de destino cambiando XX.YY con el identificador de la conexión de dicho conmutador con el siguiente en la cadena hasta llegar al conmutador directamente conectado con el nodo destino. Este último conmutador cambiará el campo destino del paquete ethernet por la dirección ethernet del nodo destino. Una vez establecida la conexión, la comunicación se hará usando UDP como protocolo de transporte. Ethernet en tiempo real 13 4.1.4.3 - Gestión de los recursos Dada la naturaleza de las conexiones en tiempo real, se debe reservar y garantizar los recursos necesarios según los solicito el origen y con el propósito de mantener una calidad de servicio. Por cada conmutador a través del cual se establece la conexión será necesario hacer esta reserva. Cada conmutador cuando recibe la petición de establecimiento de conexión comprueba sus recursos disponibles. Deberá comprobar si dispone del ancho de banda necesario en la interfaz por la que se desea establecer la conexión. Deberá comprobar si dispone de la capacidad de procesamiento necesaria para mantener un rendimiento deseado y cumplir con los requerimientos solicitados, y un buffer lo suficientemente grande para almacenar las paquetes ante una posible diferencia en la capacidad de entrada y de salida. El envío de paquetes en tiempo real está regulado de manera que se intenta enviar continuamente una tasa constante de tráfico. De este modo, si se reciben muchos paquetes de golpe, se irán almacenando porque se enviarán a una tasa constante y no a ráfagas irregulares. Si está en capacidad de garantizar una conexión bien con el siguiente conmutador o bien con el nodo destino con las requerimientos solicitados, entonces aceptará la conexión. Si por el contrario no está en disposición de garantizar los recursos necesarios, rechaza el establecimiento y se lo comunica al nodo de origen. 4.1.4.4 - Limitaciones Uno de los problemas vendría dado al colisionar paquetes cuando ambos, origen y destino intentan acceder el uno al otro. Pero esto se resuelve cuando ambos lados soportan full-duplex en una topología punto a punto. Otro problema con el que se encuentra EtheReal está relacionado con la QoS sobre la conexión RT. Mientras un nodo está transmitiendo su tráfico NRT, y comienza una transmisión en tiempo real (RT), es posible que los buffers del nodo se llenen en el kernel. Esto supondría un agravio importante de tiempo para las conexiones en tiempo real. De este modo el problema se recoge en cómo priorizar los paquetes en el mismo nodo, dependiendo de su naturaleza, sin acceder al kernel. Los conmutadores EtheReal controlan la tasa de transferencia TCP de los nodos que a él se conectan. Cuando un nodo se excede en la cantidad de tráfico de salida-cuyo máximo tiene asignado-, el conmutador EtheReal descarta los paquetes. Esto provoca que se llamen a los procedimientos de control de congestión para conexiones TCP. El ancho de banda TCP/UDP asignado a cada nodo es la diferencia entre el total de ancho de banda Ethernet en tiempo real 14 para ese enlace y el total de ancho de banda asignado para las conexiones en tiempo real en dicho nodo. De este modo, asegura que las conexiones en tiempo real que se originan desde dicho nodo obtengan su parte del ancho de banda así como de buffer suficiente para controlar la correcta transferencia. 4.1.4.5 - Requerimientos Qué requerimientos tiene el protocolo EtheReal. EtheReal está diseñado para poder funcionar en nodos que soporten distintos sistemas operativos. De modo que es independiente de la plataforma de los nodos. Cada nodo deberá soportar dos componentes software para hacer funcionar EtheReal. Una es el RTCD (Real-Time Communication Daemon). Éste implementará el establecimiento de la conexión que anteriormente he explicado, y el tear-down. El RTCD comprobará periódicamente si la aplicación en tiempo real está todavía en ejecución. En caso de no estarlo, las conexiones en tiempo real que tiene asociada dicha aplicación son liberadas. La otra es el RTTR (Real-Time data Transmission/Reception), que es una librería que implementa el traffic shaping usando un algoritmo de “leaky bucket”. Este algoritmo lo que hace es suavizar el tráfico saliente. EtheReal suprime las colisiones, pero tampoco construye una solución determinista al problema. Si todos los nodos al principio del periodo enviaran tráfico al mismo tiempo y a la máxima velocidad, el enlace de red entre el último conmutador y el controlador se saturaría. Si los buffers en los conmutadores no son lo suficientemente grandes para almacenar temporalmente el exceso de tráfico, se corre el riesgo de que el buffer rebose con la consiguiente pérdida de frames. Sin embargo, si suponemos que los buffer son lo suficientemente grandes para que esto no ocurra, podría ser posible para aplicaciones críticas en tiempo real. Una manera de evitar este problema es el uso de "traffic shaping” que lleva a cabo el RTTR. La única particularidad que debe soportar el Sistema Operativo es la necesidad de añadir y eliminar entradas ARP para enlazar la dirección IP del proxy a la dirección Ethernet del proxy. Pero esto tampoco es un gran inconveniente ya que la mayaría de los sistemas operativos actuales implementan esta característica. Ethernet en tiempo real 15 4.1.4.6 - Conmutación de paquetes Los conmutadores EtheReal distinguen cinco tipos de paquetes: (1) paquetes con dirección broadcast como destino, (2)paquetes con destino al conmutador, (3) paquetes con direcciones de destino entre FF.FF.FF.FF.00.00 y FF.FF.FF.FF.0A, (4) paquetes con direcciones de destino en el rango FF.FF.FF.FF.**.** y que no pertenecen al grupo anterior, (5) paquetes con direcciones que no pertenecen a ninguno de los grupos anteriores. Para paquetes que pertenecen al primer grupo, los conmutadores EtheReal redirigen los paquetes en todas las interfaces excepto por aquella por la que ha llegado. Al segundo grupo pertenecen los paquetes que tienen como finalidad el uso de ARP. Los paquetes pertenecientes al grupo tres, son aquellos paquetes que utilizan los conmutadores para comunicarse entre si. Por ejemplo para el proceso de establecimiento de una nueva conexión. El cuarto grupo lo conforman los paquetes de los cuales los dos últimos bytes de la dirección des destino sirven como ID para los conmutadores EtheReal. Con este identificador, miran en sus tablas a ver a quien tienen que redirigir los paquetes. Cada conexión entre conmutadores EtheReal para cada comunicación en tiempo real tiene su propio identificador. El último grupo son todos aquellos paquetes cuya dirección de destino no pertenece a ninguno de los grupos anteriores. Esto es para paquetes NRT (sin ningún requerimiento de conexión en tiempo real). Para datos en tiempo real, solamente el conmutador conectado al nodo de origen necesitará manipular la cabecera IP para cambiar la dirección de destino del proxy por la dirección IP del destinatario. El resto de conmutadores por los que atravesará el paquete usaran únicamente la dirección de la cabecera Ethernet. Para garantizar el ancho de banda reservado para cada conexión RT se usa un algoritmo de planificación. EtheReal usa Round Robin cíclico. Cada cola dedicada a conexiones RT tendrá garantizado un cierto intervalo de tiempo para transmitir. En cada ciclo, el planificador visita primero todas las colas dedicadas a conexión en tiempo real en cada puerto de salida, y después visitará las colas para conexiones NRT. Una vez se pone a transmitir paquetes NRT, no volverá a las colas de RT hasta que no se acabe el ciclo (parecido a cómo lo hacía RETHER). Así evita que luego se produzcan ráfagas de tráfico en la red. Esta política de visitas ayuda a reducir la latencia media que tienen que soportar los paquetes NRT. Para evitar la inanición de los paquetes NRT y grandes intervalos de tiempo provocados por los protocolos de las capas superiores debido al retraso de paquetes grandes, la suma total del ancho de banda reservado para las conexiones en tiempo real no excederán de un determinado porcentaje del Ethernet en tiempo real 16 total del ancho de banda. Normalmente alrededor del 60%. 4.1.4.7 - Conclusiones EtheReal Por todo lo visto hasta ahora, EtheReal es único en dos aspectos: es el único capaz de garantizar realmente ancho de banda en lugar de otorgar distintos niveles de prioridad a los paquetes (DifServ) y, por estar diseñado para poder conectar dispositivos directamente, en el sentido de que es transparente tanto para el Sistema Operativo como para la interfaz de red (HW). 5 - Conclusiones En este desarrollo sólo he comentado un par de ejemplos sobre soluciones homogéneas y heterogéneas. Éstas, pertenecen al grupo de soluciones cuyas modificaciones sobre Ethernet no alteran la compatibilidad con el protocolo actual. Dentro de el conjunto desarrollado, la elección de soluciones homogéneas o heterogéneas dependerá totalmente del entorno dónde se requiera una comunicación en tiempo real. No son los mismos requerimientos en un entorno industrial que en un conjunto de oficinas, por lo que la elección de una solución u otra se debe ajustar a las necesidades reales. 6 - Referencias · efecto captura: http://www.rediris.es/rediris/boletin/49/enfoque3.html · EtheReal: EtheReal: A Host-Transparent Rea-Time Fast Ethernet Switch. Srinidhi Varadajan, Tzicker Chiueh · RETHER: Supporting Real-Time Traffic on Ethernet. Chitra Venkatramani, Tzi-cker Chiueh · RETHER: Design, Implementation, and Evaluation of a Software-based Real-Time Ethernet Protocol. Chitra Venkatramani, Tzi-cker Chiueh · Achievong Real-Time Communication over Ethernet with Adaptative Traffic Smoothing. SeokKyu Kweon, Kang G. Shin · Ethernet-Based Real-Time and Industrial Communications. Jean-Dominique Decotignie · http://www.ce.chalmers.se/edu/course/EDA420/Documents/Slides/Slides_9_4up.pdf · http://www.ce.chalmers.se/edu/course/EDA420/Documents/Slides/RTComm.pdf