Análisis y optimización de un algoritmo de encaminamiento para redes inalámbricas de sensores inteligentes. Enrique Giandoménico1, Roberto Martínez1, Javier Belmonte1, Rosa Corti1, Estela D’Agostino1 1 Facultad de Cs. Exactas, Ingeniería y Agrimensura (FCEIA), Universidad Nacional de Rosario (UNR) Av. Pellegrini 250 2000 Rosario , Argentina {giandome, romamar, belmonte, rcorti,estelad} @fceia.unr.edu.ar Resumen. Las redes inalámbricas de sensores inteligentes (RISI) son un tipo de redes Ad_Hoc. Nacieron gracias al avance extraordinario de la nanotecnología que permitió lograr costos adecuados, tamaño reducido, bajo consumo de potencia y procesamiento limitado. Estas redes carecen de infraestructura y están sometidas a fuertes restricciones de energía y de ancho de banda. Están compuestas por nodos sensores que colectan información del entorno y colaboran entre sí para transmitirla hasta la/las estaciones base (sink). En este trabajo se analiza y simula un algoritmo de encaminamiento tolerante a fallos en sus nodos y se proponen modificaciones para optimizar sus prestaciones. Palabras Clave: redes Ad-Hoc, redes sensores inalámbricas, encaminamiento, simulación 1 Introducción Las redes inalámbricas de sensores inteligentes (RISI) son un tipo de redes Ad_Hoc. Están compuestas de nodos, llamados nodos sensores, que pueden ser fijos o móviles, y que constituyen una red autoconfigurable sin la ayuda de ninguna infraestructura externa [1] Los nodos colaboran entre si para diseminar la información[2]. Estas redes se usan en aplicaciones muy variadas, entre las que podemos nombrar, supervisión ambiental, seguimiento de objetivos o alerta de situaciones críticas. Un algoritmo de encaminamiento determina el camino de un mensaje desde una fuente a un destino. Esta ruta debe responder a un objetivo planeado, como ser máximo tiempo de vida de la red, mínima tardanza en la entrega del mensaje, , mínima sobrecarga de la red, etc. Toda técnica de encaminamiento propuesta para trabajar en una red RISI debe ser eficiente en cuanto al gasto de energía, ya que generalmente los nodos sensores están alimentados a baterías y habitualmente se encuentran en lugares donde es difícil su reposición [3] [4]. La energía es utilizada por los nodos en tres funciones principales: sensado, procesamiento y comunicación. Se ha establecido que la transmisión consume la mayor parte de la energía disponible, así que se intenta minimizar la tarea de diseminación realizando todo el procesamiento local posible [5]. En este sentido se han desarrollado técnicas de agregación de datos que permiten un procesamiento distribuido en la red. La eficiencia y aplicabilidad de estas técnicas, dependen del problema a abordar, por lo que deben ser cuidadosamente elegidas y posiblemente adaptadas, teniendo siempre en cuenta el dominio de trabajo [6]. Por lo tanto, en la definición de un algoritmo de encaminamiento existen muchas condiciones que es necesario tener en cuenta. Entre ellas se puede mencionar: distribución de los nodos, heterogeneidad de los mismos, tolerancia a fallas, escalabilidad de la red, topologías cambiantes, medio de transmisión, conectividad, área de cobertura, agregación de datos y calidad de servicio, como se detalla en [2]. Un algoritmo de encaminamiento multisalto para dichas redes, que selecciona como ruta óptima, la de mínima cantidad de saltos, fue desarrollado por el Grupo de Trabajo de Redes Inalámbricas de Sensores Inteligentes (GRISI), perteneciente a la FCEIA/UNR. [7] [8]. En este algoritmo, se contempla que los nodos están sujetos a fallos por lo que la topología de la red es cambiante. Cuando esto ocurre, los nodos remanentes adaptan su comportamiento, encontrando rutas alternativas al Sink. Un nodo sensor está habitualmente constituido de 4 componentes básicos: [9] • Módulo de sensado y adecuación de señal • Modulo de potencia • Módulo de procesamiento de datos • Módulo de transmisión y recepción Los procesos de simulación, resultan una herramienta de calidad para el análisis y optimización de los algoritmos de encaminamientos. A partir de un simulador [10] desarrollado por el GRISI, se analizan el algoritmo propuesto y se proponen alternativas de mejoramiento. El artículo está organizado de la siguiente forma: la sección 2 describe el algoritmo de análisis, en la sección 3 se desarrolla el proceso de simulación a que es sometido el algoritmo. En base a los resultados obtenidos, en la sección 4 se proponen modificaciones y en la sección 5 se exponen las conclusiones y líneas futuras de trabajo. 2 Algoritmo propuesto El objetivo es lograr que un nodo cualquiera de la red pueda comunicar determinada información, que él posee, a un nodo especial perteneciente a la misma red llamado nodo sink. Contará para ello con la colaboración de los otros nodos que integran la red. La eficiencia del algoritmo puede calcularse utilizando diversas métricas, como ser, cantidad de mensajes enviados, energía consumida, o tiempo promedio de demora en la llegada de los mensajes. La red donde se aplicara el algoritmo tiene las siguientes características: 1. Red jerárquica de dos niveles. 2. Solo existirá un nodo (llamado Nodo Sink) al cual deberán llegar los mensajes que los otros nodos emitan. 3. Existirán además un número finito de nodos (Nodos) los cuales serán homogéneos en hardware y energía inicial. 4. Los nodos podrán dejar de funcionar, permanente o transitoriamente, sin que ello afecte al buen desempeño de la red. 5. Cada nodo se comunica con aquellos que geográficamente estén posicionados dentro de un círculo con centro en dicho nodo y radio igual al alcance del nodo. Cada nodo tendrá registrado cual es el vecino, dentro de su área de acción, al que debe enviarle los mensajes para que estos lleguen al nodo Sink. Dicho dato se conocerá como RutaAlSink Luego se explicará como cada nodo obtiene dicha información. Cuando un nodo desea, entonces, enviar un mensaje al Sink lo emite indicando que el nodo destino es RutaAlSink y almacenará dicho mensaje en una cola de mensajes esperando respuesta (CMER) Todos los nodos en el radio de acción del emisor recibirán el mensaje enviado y solo aquel que se identifique con el numero indicado como nodo destino reaccionará. Su reacción consiste en retrasmitir, a su vez, el mensaje indicando como nodo destino el que él tiene como RutaAlSink y almacenará en su propia CMER el mensaje retransmitido. Así sucederá repetidamente hasta que el mensaje original llegue al nodo SINK. El nodo sink tiene un comportamiento diferente al resto y en caso de recibir un mensaje, simplemente lo devolverá calificándolo como tipo Respuesta. Cada nodo, al recibir el mensaje tipo Respuesta, elimina de su CMER el elemento coincidente y retransmite hacia quien corresponda un nuevo mensaje tipo Respuesta Terminado este ciclo todas las ‘colas de mensajes esperando respuesta’ se vacían y el nodo, que recibió el mensaje tipo R, correspondiente a su D inicial, tiene la confirmación que el nodo Sink lo ha recibido pues este es el único nodo que puede generar un mensaje tipo Respuesta. Si transcurrido un tiempo prudencial, desde su emisión, un mensaje permanece en la cola CMER es porque en la red existe algún problema. El tiempo de expiración (Tex), fijado en forma paramétrica, es el lapso durante el cual un mensaje puede existir en las CMER de un nodo sin que se considere existen inconvenientes. Superado este tiempo se deberá intentar solucionar dichos inconvenientes Se establecen las siguientes pautas para cada nodo integrante de la red: 1. Periódicamente revisará su CMER en búsqueda de mensajes expirados. 2. Si existen, enviará a todos los nodos que le escuchan un mensaje tipo V a los efectos de conocer cual es su estado. 3. Todo nodo que recibe un mensaje tipo V contesta con un mensaje tipo B, si y solo si, considera que su RAS se encuentra despejada. Como solo es posible tomar decisiones una vez arribados todos los mensajes tipo B, el nodo que emite un mensaje tipo V inicia un periodo de espera. 4. A medida que llegan los mensajes tipo B, el nodo receptor realiza dos tareas: i.Si el nodo que es su actual RAS ha respondido con un mensaje tipo B, establece una marca “RAS ha contestado”. ii.De entre los otros nodos que han enviado mensajes tipo B identifica aquel que tiene el mínimo nivel, reteniendo su ID y su nivel. 5. Terminado el periodo de espera después de emitir el mensaje tipo V el nodo analiza la situación y actúa de la siguiente manera: i.Si esta presente la marca “RAS ha contestado”, no es necesario hacer nada. ii.Si la marca no está presente, se adopta como nueva RAS el ID identificado en el punto b del ítem anterior y se fija como nivel del nodo al nivel identificado más 1. Además, se recorre la CMER y se retransmiten todos los mensajes que allí se encuentran al nuevo nodo identificado como RAS, y se deja indicado en la cola que dichos mensajes han sido enviados al nuevo nodo en un nuevo tiempo. También se debe avisar, a todos los nodos que esperan respuesta de los mensajes que estaban en la CMER y fueron retransmitidos, un mensaje tipo T para que ellos a su vez actualicen los tiempos de sus propias CMER. En la Fig. 2 se muestra un esquema de las actividades del nodo descriptas. Td-v Tv-d Si no está “RutaAlSink ha - Revisa su CMER contestado”: - Envía mensajes tipo V - Procesa respuestas tipo B - Retransm. mensajes expirados - Actualiza CMER Envía mensaje tipo T Rinicia ciclo Fig. 2. Actividades de un nodo a lo largo del tiempo Utilizando el simulador referido oportunamente, se realizan las pruebas que se desarrollan en las siguientes secciones. 3 Simulación del algoritmo El proceso de simulación se desarrolló definiendo los siguientes parámetros: Tex: Tiempo de Expiración. Si un mensaje no recibe respuesta antes de este tiempo se lo considera expirado y por lo tanto se asume que existen problemas en la red. Td-v: Tiempo entre ciclo D y V. Es el tiempo que el nodo espera, luego de enviados los mensajes tipo V, para asegurar la llegada de todos los mensajes tipo B que le hayan sido enviados antes de iniciar el análisis de la situación. Tv-d: Tiempo entre ciclo V y D. Es el tiempo que el nodo espera, luego de realizado el análisis de la situación para iniciar un nuevo análisis de la CMER en búsqueda de mensajes expirados. Tip: Tiempo Demora Inicio Proceso. Para representar el hecho que cuando un nodo emite un mensaje a todos los que lo escuchan, los nodos receptores iniciaran el procesamiento del mismo asincrónicamente, se ha establecido que cada nodo, antes de procesar un mensaje recibido, espere un tiempo que, al azar, se establece entre un mínimo de 0 y un máximo de Tip. Te: Tiempo entre eventos. Mob: Máxima Ocupación de un Buffer: Como la cadencia de llegada de mensajes a un nodo es diferente de la cadencia de proceso de los mismos, se requiere de la existencia de un buffer que independice ambos procesos. Como coexisten mensajes de datos (D y R) y de control (V, B, T) cada nodo dispondrá de dos buffer. Uno menos prioritario para almacenar los mensajes de datos y el otro, más prioritario para los mensajes de control. La variable Mob representa el máximo de mensajes de datos almacenados en un momento determinado entre la totalidad de los nodos. Moc: Representa el máximo de mensajes de datos almacenados en una cola tipo D, en un momento determinado, entre la totalidad de los nodos. Ns: numera secuencialmente las distintas simulaciones realizadas. Se modeló una red de 25 nodos, con una topología tipo malla. Se generó una simulación de 999 mensajes (salvo un nodo todos emiten 40 mensajes) distribuidos en forma aleatoria, en cuanto al nodo que lo emite, pero todos distanciados en el tiempo en un valor fijo. 3.1 Simulaciones Primer Caso (sin nodos fuera de servicio) En esta primera simulación se anularon los ciclos D y V de forma tal que no se emitieron mensajes tipo V, B, T. Es decir, el algoritmo no chequea la posibilidad de inconvenientes en la red que impidan a un mensaje alcanzar al nodo sink. Por lo tanto todos los mensajes reciben su respuesta. La cantidad total de mensajes emitidos fue de 5914. Esto es debido a que la comunicación es multisalto y no directa al sink. . Se realizaron a continuación distintos procesos variando la frecuencia con la que se producen los eventos. En el primer caso transcurren 60 milisegundos entre cada evento (Te) y se procesan 1000 eventos distribuidos a razón de 40 eventos por nodo. Se realizaron tres corridas cuyos resultados se muestran en la Tabla 1. En las tres pruebas, la cantidad de mensajes emitidos fue de 5914, el total de mensajes recibidos de 6913 y los mensajes arribados al nodo sink fue de 999. El parámetro T-96% indica el tiempo requerido para el arribo del 96 % de los mensajes, en forma análoga, pero para el 100 % lo indica el parámetro T-100% Tabla 1 . Resultados obtenidos del simulador Ns 1 2 3 Te [ms] 60 300 600 Tip [ms] 20 20 20 T-96% [ms] 50 50 50 T-100% [ms] 100 50 50 Mob Moc 2 1 1 2 1 1 El tiempo entre mensajes no afecta significativamente la demora promedio de llegada al nodo sink y la utilización máxima, de los buffers y colas, tipo D, si la red no llega a saturarse. el primer caso se acerca a dicha situación y los valores comienzan a aumentar. Modificando el parámetro Te, aproximadamente el 60% de los mensajes llega con un tiempo de respuesta entre 0 y 15 ms, el 97% con tiempo de respuesta entre 15 y 31 y solo para el caso con 60 ms entre eventos hay unos pocos mensajes que tienen un tiempo de respuesta mayor a 60 ms. Los valores obtenidos para tiempos entre eventos superiores a 300 ms no varían significativamente pero a medida que nos acercamos a la saturación de la red, por una alta tasa de mensajes procesados, los valores se reducen. Es decir, los mensajes llegan con más demora y es necesario admitir un tiempo de respuesta mayor para que se produzca la llegada de todos los mensajes. 3.2 Simulaciones Segundo Caso (con nodos fuera de servicio) Para analizar el comportamiento de la red habilitando la posibilidad que los nodos puedan quedar fuera de servicio se trabajó con la misma simulación definida anteriormente pero con estas modificaciones a) Los nodos 1, 9, 16 y 4 saldrán fuera de servicio luego de que la red haya generado aproximadamente 150, 300, 450 y 600 mensajes respectivamente. b) A partir del momento que un nodo queda fuera de servicio deja de emitir mensajes. Por lo tanto ahora la cantidad total de mensajes emitidos serán 898 pues el nodo 1 solo emite 12, el 4 solo 22, el 9 solo 3 y el 16 solo 21 Se realizaron dos grupos de corridas del simulador, cada uno con un valor diferente en el tiempo entre eventos (300 ms y 600 ms) En cada grupo se realizaron cinco corridas variando los parámetros significativos de la simulación según lo indicado en la Tabla 2. La demora promedio de los mensajes para alcanzar al nodo SINK, así como la cantidad de mensajes duplicados que arriban al mismo es creciente a medida que aumentan los valores de los parámetros y decreciente a medida que crece el tiempo entre eventos. Tabla 2. Resultados obtenidos de la simulación para el Caso II Ns Td-v [ms] Te = 300 ms 1 1000 2 2000 3 2000 Te =600 ms 4 1000 5 2000 6 2000 Tv-d [ms] Tex [ms] T-100% [ms] Msj.arribados al sink Mensajes emitidos Mensajes recibidos Mob 1500 2000 8500 2000 3700 10000 12300 16400 50050 904 903 908 7000 6925 7085 7866 7782 7917 5 6 7 1500 2000 8500 2000 3700 10000 9500 11800 45650 903 908 906 6962 7055 7017 7831 7915 7875 3 5 5 El total de mensajes emitidos y recibidos es poco sensible a la variación de los parámetros y frente a los 5.914 mensajes que eran necesarios, mientras todos los nodos se mantenían activos, el promedio aproximado de 7.000 indica una sobrecarga de 1086 mensajes. Como fueron 4 los nodos que se sacaron fuera de servicio se podrían estimar en 270 mensajes la sobrecarga por cada nodo que deja de funcionar. 4 4.1 Modificaciones al algoritmo Eliminación de los mensajes tipo T Observando el comportamiento de la red es evidente que la funcionalidad de los mensajes tipo T, que intentan actualizar el registro del tiempo que tienen los mensajes tipo D es muy baja. En general cada nodo revisa su cola antes que llegue el mensaje tipo T. Se realizan nuevamente las simulaciones, pero ahora eliminando la generación de mensajes tipo T. La tabla 3 muestra las diferencias obtenidas. Los valores mostrados son las diferencias obtenidas que resultan despreciables. Tabla 3. Diferencias encontradas entre el algoritmo en donde los nodos emiten mensajes tipo T y aquel en donde no lo hacen. Ns T-100% [ms] Te = 300 ms 1 -0,024 2 0,220 3 0,127 Te = 600 ms 4 -0,242 5 0,4700 6 0,049 4.2 Msj.arribados al sink Mensajes emitidos Mensajes recibidos Mob 0,001 0,003 0,006 -0,007 0,002 0,003 -0,006 0,002 0,001 -0,4 -0,167 0,429 -0,002 -0,004 0,001 -0,005 -0,017 -0,008 -0,004 -0,014 -0,008 -0,333 -0,400 0,500 El SINK es quien asume la responsabilidad de detectar inconvenientes. El algoritmo planteado hasta ahora busca rutas alternativas, cuando las RAS establecidas inicialmente, no están disponibles. Para ello implementa el concepto de tiempo de expiración de mensajes. Cuando existan mensajes expirados en la cola CMER el nodo intenta encontrar una RAS alternativa. Una forma distinta de dar solución a este problema es hacer que el nodo Sink restablezca la estructura de la red periódicamente realizando el mismo proceso que al inicio. Esta forma de trabajo implica un control centralizado desde la estación base. Si como resultado de dicho proceso algún nodo cambia su RAS se reenvían todos los mensajes que se encuentren en su cola CMER según su nueva ruta. El proceso implementado en el primer algoritmo es más complejo en sí mismo pero tiene la ventaja que solo se dispara cuando efectivamente hay inconvenientes en la red. Este segundo algoritmo dispara el proceso con determinada frecuencia independientemente de si la red presenta inconvenientes o no. Por lo tanto cuanto mayor sea la frecuencia de inconvenientes en la red más ventajas tendrá el segundo algoritmo. Como la reestructuración es un proceso de ajustes sucesivos, es conveniente una vez iniciada la misma, esperar cierto tiempo para que el proceso se estabilice y recién entonces cada nodo verifica si su RAS ha cambiado y, en ese caso, retransmite todos los mensajes que aún permanecen en su cola CMER. La Fig. 2 muestra la secuencia de sucesos propuestos. TRE TRM NODO SINK Lanza proceso para establecer la RutaAlSink de cada nodo CADA NODO Si cambió su RutaAlSink, retransmite los mensajes que están en su CMER Rinicia ciclo Fig. 2. Secuencia de sucesos propuestos. La Tabla 4, muestra los resultados obtenidos al simular la emisión de la misma secuencia de mensajes del caso anterior, y sobre la misma configuración de red pero ahora utilizando este nuevo algoritmo. Se fijaron como valores de prueba: TRE = Td-v + Tv-d + Tex ; TRM = TRE / 3 Tabla 4. Resultados de la simulación del algoritmo B Ns Td-v [ms] Te = 300 ms 1 2000 2 2000 3 2000 Te = 600 ms 4 2000 5 2000 6 2000 5 Tv-d [ms] Tex [ms] T-100% [ms] Ms. arribados al sink Mensajes emitidos Mensajes recibidos Mob 4500 8500 12500 6000 10000 14000 13250 31950 33100 898 899 901 8186 7583 7403 8830 8313 8167 6 10 20 4500 8500 12500 6000 10000 14000 14250 101500 38700 898 901 901 9328 8621 7996 9804 9190 8692 6 11 15 Conclusiones y trabajos futuros Con el algoritmo B, el tiempo requerido para la llegada del 96% de los mensajes al nodo Sink aumenta con el aumento de TRE. Producido un inconveniente en la red cuanto más se demore en detectarlo y corregirlo mayor será el tiempo insumido por los mensajes en arribar al nodo Sink. Lo mismo puede decirse acerca de la demora promedio de los mensajes en arribar al nodo Sink. En todos los casos llegan al nodo Sink los 898 mensajes emitidos, solo varía, y muy poco, la cantidad de mensajes duplicados que llegan al Sink. La cantidad total de mensajes emitidos, considerando los que fueron necesarios para rearmar la estructura, fue de entre 8.000 y 9.000 frente a los aproximadamente 7.000 que se requerían para el algoritmo B. Cuando la frecuencia con que se emiten los mensajes de datos disminuye se reduce el impacto de la variación de TRE. Esto se explica pues, al ser mayor la frecuencia de emisión de mensajes, cada vez que el algoritmo implementa nuevas RutaAlSink se encuentra con que más mensajes son los que se han visto demorados. Estos mensajes se retransmiten pero cuanto más sean, mayor será la sobrecarga generada sobre la estructura de la red. El algoritmo A no solo genera menor cantidad de mensajes de control sino que además obtiene una mejor recepción de mensajes en el tiempo. Si bien en ambos casos llegan al Sink la totalidad de los mensajes de datos emitidos, pues ningún nodo queda aislado como consecuencia de la salida de servicio de algunos de ellos, en el algoritmo A llegan más rápidamente. Es importante aclarar que este resultado solo es valido para la estructura de red estudiada y las condiciones de salida de servicio de los nodos indicada. Variaciones en estos valores podrán producir variaciones en los valores determinados. Considerando que la energía disponible en cada nodo no es renovable y que la misma disminuye con la emisión y recepción de cada mensaje, la salida fuera de servicio de los nodos es inevitable. Bajo esas condiciones, tener en cuenta solamente la cantidad de mensajes arribados al nodo SINK, para evaluar la performance de un algoritmo es una simplificación demasiado grande.. Se deberá entonces encontrar otras métricas que representen en mejor medida las prestaciones de la red, y en función de ellas analizar el comportamiento del algoritmo propuesto y nuevas modificaciones que lo perfeccionen. Referencias 1. Karl H.,Willig A. Protocols and Architectures for Wireless Sensor Networks. John Wiley & Sons. ISBN 0-470-09510-5, 2005. 2. Al-Karaki J. N., Kamal A. E. Routing techniques in wireless sensor networks: a survey. IEEE Wireless Communications, 2004. http://www.ee.iastate.edu/~kamal/Docs/kk04.pdf 3. Kravets R., Schwan K., Calvert K. Power-Aware Communication for Mobile Computers, Proc. MoMUC ’99, 1999. 4. Li L., Halpern J.: Minimum-energy mobile wireless networks revisited, IEEE International Conference on Communications ICC’01, Helsinki, Finland, 2001. 5. Krishnamachari B., Estrin D., Wicker S. Modelling Data-Centric Routing in Wireless Sensor Networks. Proc. IEEE Infocom 2002, June 2002. 6. Solis I. and Obraczka K. In-network aggregation trade-offs for data collection in wireless sensor networks. International Journal of Sensor Networks 2006, Vol. 1, No.3/4 pp. 200 – 212, 2006 7. D´Agostino E. , Giandoménico E., Corti R., Martinez R.: Ruteo en redes inalámbricas de sensores inteligentes, Universidad Nacional de Rosario, Reporte técnico, RT-ID-06/03, 2007. http://www.fceia.unr.edu.ar/secyt/rt/2006/rtid06_03.pdf 8. Estela D’Agostino, Enrique Giandoménico, Rosa Corti , Roberto Martínez y Javier Belmonte. Algoritmo de encaminamiento para redes inalámbricas de sensores inteligentes. 36° JAIIO-AST Simposio Argentino de Tecnología, Agosto 2007. 9. Akyildiz.I.F , Su W., Sankarasubramaniam Y., Cayirci E.: A survey on sensor networks, IEEE Communications Magazine, vol. 40, pp 102- 114, ISSN: 0163-6804, 2002. 10.Simulador para algoritmo de encaminamiento para redes inalámbricas de sensores inteligentes. http://www.dsi.fceia.unr.edu.ar/downloads/sensores/Simulador.zip