Protocolos para redes inalámbricas de sensores

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Protocolos para redes inalámbricas de sensores"

Transcripción

1 Protocolos para redes inalámbricas de sensores Tesis de Ingeniería en Informática Jimena Garbarino Directora Lic. Adriana Echeverría Universidad de Buenos Aires Facultad de Ingeniería 7 de noviembre de 2011

2 2

3 Agradecimientos A mi mamá Isabel Ubiedo y a mi papá Eduardo Antonio Garbarino. A Sergio. A mi directora de tesis, Lic. Adriana Echeverría. A toda mi familia, que hace tiempo que no los veo porque estaba estudiando. A mi hermana Florencia por insistir con que me reciba para reunirnos en una fiesta. A todos los que me dieron aliento y me ayudaron de distinta manera: Maxi, Julia, Ale, Mariano MP y Naranjita, Valeria, Marcela, Agustín. A los profesores que me inspiraron en los comienzos: Ing. Jorge Álvarez Juliá, Ing. Ricardo Sirne, Lic. Rina Lombardi, Ing. Osvaldo Clúa, Ing. Leopoldo Carranza. A mis primeros tres jefes. A todos mis otros compañeros de facultad o del trabajo, a los que perseguí por los pasillos o por con alguna pregunta, especialmente a los que me ayudaron a aprobar la última materia. 3

4 4

5 Índice general 1. Introducción Motivación Objetivos Organización Redes inalámbricas de sensores Introducción Topología Nodo sensor Cuestiones de diseño Tipos de aplicación Detección y reporte de eventos Recolección de datos y reporte periódico Consulta iniciada por sumidero Seguimiento Resumen Estándares de comunicación Bluetooth y Wi-Fi Estándar IEEE ZigBee WirelessHART Protocolos de red Problema del encaminamiento Encaminamiento jerárquico Características LEACH Encaminamiento geográfico Características Por coordenadas virtuales Encaminamiento centrado en los datos Características Energy-Aware Data-Centric Routing

6 ÍNDICE GENERAL 3.5. Diseminación de interés Características SPIN Consciencia de la energía Introducción Métricas de energía Flow Augmentation Diseño de la simulación con Omnet Qué es Omnet++? Introducción Conceptos de modelado Descripción de red Conceptos de simulación Ambiente de desarrollo Definición de un módulo simple Simulación Herramientas de análisis Diseño de la red MiXiM Modelo de dispositivo Topología Tamaño del terreno y densidad de nodos Modelo de despliegue Modelo de aplicación Resumen del diseño Métricas de evaluación Vida útil del sistema Eficiencia Uso de la energía Calidad de servicio Métricas no consideradas Métricas seleccionadas Implementación de módulos de red Definiciones Diseminación de interés con M-SPIN Características Especificaciones Complejidad M Detalles de implementación Pseudocódigo Consciencia de recursos con SAMF Características

7 ÍNDICE GENERAL Especificaciones Complejidad M Detalles de implementación Pseudocódigo Módulo de técnica mixta: EA-SPIN Diseño Especificaciones Complejidad M Detalles de implementación Pseudocódigo Resumen de módulos desarrollados Simulación y conclusiones Escenarios Resultados Complejidad M Métricas obtenidas Análisis de confiabilidad Consciencia de energía Experiencia con MiXiM 2.1 y Omnet Conclusiones Resumen de aportes del trabajo Trabajo futuro Apéndices 194 A. Glosario 197 B. Métricas 203 B.1. Recopilación de métricas B.2. Métricas de simulaciones específicas C. Modificaciones a MiXiM C.1. Energía de transmisión C.2. Total de mensajes C.3. Energía residual C.4. Sensibilidad Referencias 213 7

8 ÍNDICE GENERAL 8

9 Índice de figuras 2.1. Infraestructura de una red inalámbrica de sensores Componentes de hardware del nodo sensor Componentes de software del nodo sensor Pila genérica de protocolos del nodo sensor Nodo sensor MicaZ de MEMSIC Tipos de aplicación Estructura del paquete de capa física IEEE Superframe de IEEE CSMA ranurado Capas de protocolos de ZigBee Red ZigBee estrella Red ZigBee malla Pila de protocolos WirelessHART Malla WirelessHART Jerarquía virtual en una red de sensores Topología de red en LEACH Encaminamiento geográfico Encaminamiento geográfico en presencia de obstáculos Nodos perímetro Máquina de estados del nodo EAD De estado indefinido a estado hoja Ejemplo de agregación de datos camino al sumidero Implosión Superposición Negociación SPIN pasos 1 y Negociación SPIN pasos 3 y Negociación SPIN pasos 5 y Desempeño no óptimo de FA Vista de diseño de una red Omnet Diseño del nodo como módulo compuesto Perspectiva de Simulación de Omnet++ en Eclipse Configuración de ejecución en Omnet

10 ÍNDICE DE FIGURAS 4.5. Gráfico de secuencia en Omnet Navegador de vectores y escalares en Omnet Gráfico de barras en Omnet Potencia de transmisión del tranceptor TI CC Etapa de descubrimiento de distancia al sumidero Jerarquía de módulos de diseminación Escenario 1 - Latencia media en el sumidero Escenario 1 - Tasa de éxito Escenario 1 - Overhead Escenario 1 - Total de energía de transmisión Escenario 1 - Media y máxima de saltos Escenario 1 - Media y desviación de energía de transmisión Escenario 2 - Latencia media en el sumidero Escenario 2 - Tasa de éxito Escenario 2 - Overhead Escenario 2 - Total de energía de transmisión Escenario 2 - Media y máxima de saltos Escenario 2 - Media y desviación de energía de transmisión Escenario 3 - Latencia media en el sumidero Escenario 3 - Tasa de éxito Escenario 3 - Overhead Escenario 3 - Total de energía de transmisión Escenario 3 - Media y máxima de saltos Escenario 3 - Media y desviación de energía de transmisión Escenario 4 - Latencia media en el sumidero Escenario 4 - Tasa de éxito Escenario 4 - Overhead Escenario 4 - Total de energía de transmisión Escenario 4 - Media y máxima de saltos Escenario 4 - Media y desviación de energía de transmisión Escenario 1 - Total de energía vs. distancia al sumidero Escenario 2 - Total de energía vs. distancia al sumidero Escenario 3 - Total de energía vs. distancia al sumidero Escenario 4 - Total de energía vs. distancia al sumidero Escenario 2: Promedio de energía de transmisión por distancia Escenario 4: Promedio de energía de transmisión por distancia

11 Índice de cuadros 2.1. Funciones de la pila de protocolos WSN Resumen de tipos de aplicación y características Campos de la tabla de encaminamiento ZigBee Campos de la tabla de descubrimiento de ruta ZigBee Campos de la tabla de nodos vecinos ZigBee Módulos MiXiM utilizados Densidad mínima de nodos Resumen de la red a simular Métricas de M-SPIN Atributos de cada enlace SAMF Atributos de cada nodo SAMF Métricas de SAMF Contadores para el análisis de SPIN Módulos desarrollados Escenarios simulados Cantidad total de paquetes enviados en cada escenario Métricas de escenario Métricas de escenario Métricas de escenario Métricas de escenario Total de frames descartados por interferencia Consumo total de energía en transmisiones B.1. Métricas de evaluación de protocolos B.2. Otras métricas de desempeño B.3. Métricas de una revisión de criterios de evaluación B.4. Métricas de evaluación del protocolo SPIN B.5. Métricas de evaluación del protoclo PBR B.6. Métricas de evaluación del protocolo EAD

12 ÍNDICE DE CUADROS 12

13 Fragmentos de código 4.1. Modelo de protocolo de capa Definición de red Configuración del decider Actividades de capa física Configuración del nodo sumidero Dimensiones del terreno Paquete M-SPIN Paquete SAMF Paquete EA-SPIN C.1. Método getactivitytotal() C.2. Redefinición del módulo de rastreo C.3. Herencia pública de ImNotifiable para SimTracer C.4. Total de paquetes a partir de notificaciones C.5. SPIN publica paquetes envíados y de sobreescucha C.6. Grabación de la energía residual al finalizar C.7. Grabación del consumo por actividad C.8. Descarte por baja intensidad en Decider802154Narrow

14 FRAGMENTOS DE CÓDIGO 14

15 Algoritmos 1. Ciclo de evento M-SPIN Procesar paquete de aplicación M-SPIN Procesar paquete STARTUP M-SPIN Procesar paquete ADV de anuncio M-SPIN Procesar paquete REQ de pedido M-SPIN Procesar paquete DATA de datos M-SPIN Expira temporizador de repetición o supresión de pedido SAMF Procesar paquete de aplicación SAMF Procesar paquete INTEREST SAMF Procesar paquete DATA SAMF Recalcular restricciones de enlace SAMF Actualizar enlace en la tabla SAMF Obtener la mejor ruta a destino EA-SPIN Procesar paquete de aplicación EA-SPIN Procesar paquete STARTUP EA-SPIN Procesar paquete ADV de anuncio EA-SPIN Procesar paquete REQ de pedido EA-SPIN Procesar paquete DATA de datos EA-SPIN Expira temporizador pedido EA-SPIN Expira temporizador de repetición de anuncio

16 ALGORITMOS 16

17 Capítulo 1 Introducción 1.1. Motivación Una red inalámbrica de sensores, o Wireless Sensor Network, es una red de un gran número de pequeños dispositivos capaces de medir diferentes variables de ambiente en el que se encuentran, y de procesar y comunicar la información de manera inalámbrica [1][2]. Existen varios tipos de aplicaciones de esta tecnología. Por ejemplo, en defensa, la detección de ataque nuclear, biológico y químico. En medio ambiente, el monitoreo de microclimas, detección de fuego, detección de inundaciones, agricultura [3]. En salud, monitoreo de médicos y pacientes, y de información fisiológica. En el hogar, lectura automática de medidores, y automatización del hogar. Entre sus aplicaciones comerciales se encuentran el control de inventario, el seguimiento y detección de vehículos, el monitoreo de tráfico, el control del medio ambiente en oficinas y edificios industriales. Típicamente, la red de sensores será administrada por una entidad civil, comercial, industrial o del gobierno [4]. El modelo de red, en la mayoría de los casos, está compuesto por una estación base, que es un dispositivo con recursos de energía y cómputo no acotados, y un número de pequeños dispositivos homogéneos, los nodos sensores [5]. Un nodo sensor generalmente embebe capacidad de procesamiento y almacenamiento, y puede tener uno o más sensores acústicos, sísmicos, de radio, infrarrojos, ópticos, magnéticos, y químicos o biológicos. El nodo cuenta también con una unidad de comunicación inalámbrica, y una batería, y posiblemente es capaz de conocer su posición geográfica apoyándose en un GPS o en un algoritmo de posicionamiento. Invariablemente el nodo se encuentra restringido en energía, ancho de banda y en recursos en general [4]. Para 17

18 1.1. MOTIVACIÓN poder ser operados, los nodos necesitan un sistema operativo específico para redes de sensores. Típicamente, se tienen cinco subsistemas o componentes de software: el sistema operativo, controladores de sensor, procesadores de comunicación, controladores de comunicación y pequeñas aplicaciones de procesamiento de datos [4]. El estándar de comunicación adoptado en los últimos años por el mercado fue desarrollado por la ZigBee Alliance [4] y define una arquitectura de capas para la comunicación inalámbrica. Cada capa brinda un conjunto de servicios específicos a la capa superior. La capa física, responsable del manejo de la interfaz inalámbrica (frecuencia de operación, tipo de modulación, codificación) y la capa de enlace responsable del manejo de la comunicación con nodos vecinos (dentro del radio de un salto) están definidas por el estándar IEEE La capa de red, responsable del encaminamiento de paquetes dentro de la red de sensores, y cuya principal restricción de diseño es la eficiencia energética [4], soporta, en esta arquitectura, tres topologías: estrella, árbol y malla. Para definir el costo de una ruta, el algoritmo de encaminamiento utiliza una métrica de costo para comparar caminos alternativos. Para calcular el valor de la métrica para un determinado camino, se asocia un costo a cada enlace entre dos nodos, y se suma el costo de cada uno de los enlaces utilizados por el camino. El costo de cada enlace individual se define como una función que depende de la probabilidad de que el paquete sea entregado si se utiliza ese enlace. En el estándar se plantea que la cuestión de estimar o definir esta probabilidad es un problema de implementación, para el cual, los implementadores son libres de aplicar su ingenio [6]. El algoritmo es muy similar al algoritmo AODV (Ad hoc On-Demand Distance Vector) el cual no tiene consideraciones respecto de la optimización de la energía [7]. AODV es un protocolo para redes ad hoc donde los nodos se consideran móviles y se favorecen rutas que utilizan la menor cantidad de enlaces o saltos [8]. Aunque las redes inalámbricas de sensores tienen aspectos en común con las redes cableadas y ad hoc, tienen también características propias que plantean importantes desafíos de diseño. La densidad de nodos de la red y el área de cobertura pueden variar ampliamente, pudiendo ser instalada de manera no supervisada con una distribución de nodos al azar en terrenos inaccesibles [4][9]. La red debe organizarse a sí misma y preservar la energía, para perdurar su vida útil operando con limitadas reservas de batería. Dado que gran parte de la energía se emplea en la transmisión de paquetes de información en topologías multi-salto (multi-hop), numerosas técnicas para protocolos de red han sido estudiadas, con el objeto de mejorar la eficiencia en las comunicaciones en las redes inalámbricas de sensores. Se ha 18

19 CAPÍTULO 1. INTRODUCCIÓN identificado un conjunto de paradigmas que permite clasificar los protocolos según la estructura de red (plana o jerárquica), por el tipo de direccionamiento (basado en la ubicación geográfica), por la funcionalidad provista (que mantienen más de una ruta, basado en la calidad de servicio, que utilizan agregación de datos) [10], por utilizar modelos de flujo de red y/o por ser centrados en los datos (basados en consulta, basados en diseminación de información) [11]. Algunos protocolos que modelan el flujo de red incluyen, en su diseño, el objetivo de maximizar la vida de la red [12][13][14][15]. Pero existen varios puntos de vista para definir el tiempo de vida de la red, siempre influidos por el tipo de aplicación para el cual se diseña. Para algunos autores, se define como el tiempo hasta que se agota la batería del primer nodo [2][12]. Para otros, esta definición es muy restrictiva y puede flexibilizarse para extender aún más la vida útil de la red [13][14]. Una estrategia de maximización de la vida de la red consiste en seleccionar rutas no óptimas de manera de posponer la muerte de sus nodos, basando la selección en el conocimiento de diferentes métricas de energía de los nodos de la red [9][16]. Los algoritmos que utilizan este tipo de información para seleccionar la ruta son conscientes de la energía. Los protocolos que se centran en los datos encaminan datos por demanda, reaccionando a una consulta iniciada por la estación base [10]. Intentan ahorrar energía disminuyendo las tareas de mantenimiento de la red, por lo que sugieren una topología de red plana. El establecimiento de rutas es dinámico, utilizando diferentes estrategias para controlar el proceso de flooding o inundación de la red en la etapa de descubrimiento, y para diseminar el interés por un tipo de información [4][17][18] Objetivos Los objetivos generales de la tesis son el estudio de redes inalámbricas de sensores y paradigmas de encaminamiento de vanguardia, y la simulación y análisis de protocolos que utilizan técnicas de diseminación y consciencia de energía. En este marco se llevó a cabo el siguiente trabajo: estudio general de las redes inalámbricas de sensores estudio de los tipos de aplicación estudio de las principales paradigmas de vanguardia en encaminamiento, focalizando en las técnicas de diseminación y consciencia de la energía evaluación de Omnet++ como simulador para este tipo de red 19

20 1.3. ORGANIZACIÓN configuración de una red ejemplo, de un sumidero y muchos nodos que ejecutan una aplicación de tipo consulta, y una pila de protocolos IEEE , incluyendo al canal compartido en el modelo construcción de módulos de red para los protocolos SAMF, M-SPIN, y un módulo que combina las técnicas de ambos; construcción de módulos de utilidades de recolección de estadísticas y métricas no incluidas en la herramienta simulación de los tres protocolos a partir de varios escenarios de consulta comparación de su desempeño, análisis y observaciones sobre las técnicas seleccionadas 1.3. Organización En el capítulo 2 se presenta una introducción a las redes inalámbricas de sensores en términos generales, una clasificación y caracterización de los tipos de aplicación según su modelo de entrega de datos y una revisión de los estándares y tecnologías de comunicación adoptados para este tipo de red. El capítulo 3 introduce los problemas del encaminamiento y revisa los tres paradigmas más comúnmente utilizados en taxonomías de protocolos de red, ilustrando cada paradigma con la descripción de un protocolo de la familia. Luego, se describen las técnicas de diseminación y consciencia de energía, también con protocolos ejemplo. El cuarto capítulo trata de la herramienta de simulación Omnet++, describe el diseño de la red a simular y se enumeran las métricas a obtener para la evaluación de los protocolos. En el capítulo 5 se detalla la implementación los módulos de red para los protocolos M-SPIN, SAMF y un protocolo que combina las técnicas de ambos, sus especificaciones, análisis de complejidad y pseudocódigo. Finalmente, el capítulo 6 expone los resultados de las simulaciones y las conclusiones del trabajo. 20

21 Capítulo 2 Redes inalámbricas de sensores 2.1. Introducción Una red de sensores es una infraestructura compuesta por elementos de cómputo, medición y comunicación, que permiten al administrador instrumentar, observar y reaccionar a eventos y fenómenos en un ambiente específico [4]. Típicamente el administrador será una entidad civil, comercial, gubernamental o industrial. El ambiente puede ser un sistema espacio o sistema biológico, y existen variadas aplicaciones [19]: Medioambiental Algunos ejemplos son el seguimiento de aves, pequeños animales, insectos; monitoreo de condiciones ambientales que afectan cultivos y ganado; irrigación; macroinstrumentos para monitoreo a gran escala y exploración planetaria; detección química y biológica; agricultura de precisión; detección de incendios en bosques; investigación meteorológica o geofísica; detección de inundaciones; estudio de la contaminación. Medicina Provisión de interfaces para discapacitados, monitoreo integrado de pacientes, diagnóstico, administración de drogas en hospitales, telemonitoreo de información fisiológica. Hogar Automatización del hogar, administración local y remota de electrodomésticos, ambientes inteligentes. Comercial Monitoreo de fatiga de material, administración de inventario, cali- 21

22 2.1. INTRODUCCIÓN dad de producto, oficinas inteligentes, control ambiental de edificios, control robot en manufactura automatizada, juguetes interactivos, museos interactivos, control y automatización de procesos, monitoreo de área de desastre, diagnóstico de maquinaria, transporte, seguimiento de vehículos. Figura 2.1: Infraestructura de una red inalámbrica de sensores La infraestructura comprende los siguientes componentes básicos (figura 2.1 obtenida de [20]): 1. un conjunto de nodos sensores 2. una red de interconexión inalámbrica 3. un punto central de recolección de información o estación base 4. un conjunto de recursos para procesar la información recolectada Los sensores o nodos inalámbricos, a veces llamados motes, son dispositivos inteligentes multifuncionales y baratos, equipados con múltiples elementos de sensado. Existe tecnología de sensado para realizar mediciones de 22

23 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES campo eléctrico y magnético; de frecuencia; óptico, electro-ópticos e infrarrojos; radares; láseres; de posición/navegación; sísmicas y de ondas de presión; de medio ambiente (viento, humedad, calor). Este tipo de dispositivo posee recursos restringidos de energía, comunicación, memoria y capacidad de cómputo [4] Topología Dentro del área de sensado, los sensores se interconectan por medio enlaces inalámbricos multi-salto, de corta distancia y baja potencia de transmisión, para enviar información a estaciones recolectoras o de monitoreo. Típicamente se despliegan en grandes cantidades y con una distribución densa. Hay dos tipos de redes [21]: no estructuradas Comprende una colección de nodos densa, desplegados ad hoc, posiblemente al azar. Una vez desplegados, la red opera desatendida, monitoreando y reportando información. El mantenimiento, la administración de la conectividad y detección de fallas son difíciles por la gran cantidad de nodos. estructuradas Todos o algunos de los nodos son desplegados de manera pre-planificada, colocados en posiciones fijas. Tienen la ventaja de requerir una menor cantidad de nodos para lograr la cobertura del área, con un menor costo de administración y mantenimiento. Existen varias configuraciones de redes de sensores [22]. Un nodo fuente es una entidad en la red que puede proveer información, el nodo sensor. Por otro lado, un sumidero es la entidad que requiere la información. El sumidero puede pertenecer a la red de sensores (y es otro sensor), ser una entidad externa a la red o ser un gateway a otra red más grande, como Internet. Comúnmente, el sumidero o estación base es un dispositivo que posee recursos de energía y capacidad computacional no acotados [5]. El modelo de red típico comprende un sumidero y múltiples nodos fuente o sensores, pero en muchas aplicaciones se utilizan también múltiples sumideros. Dadas las limitaciones de alcance de radio, las redes inalámbricas de sensores en general son multi-salto, y los nodos sensores actúan como encaminadores, ahorrando la necesidad de dispositivos adicionales. El multi-salto permite superar problemas con distancias largas y obstáculos, y mejora la eficiencia de la comunicación. Asimismo, la topología de red puede ser plana o jerárquica, dependiendo de la aplicación y el tipo de encaminamiento que 23

24 2.1. INTRODUCCIÓN mejor se adecue a sus requerimientos. La movilidad en las redes de sensores puede aparecer en tres formas principales [22]: movilidad del nodo sensor La movilidad del nodo sensor depende de la aplicación. Por ejemplo, en el monitoreo medioambiental, los nodos son estacionarios. Sin embargo, en el monitoreo de ganado, el sensor está sujeto al animal y por lo tanto se mueve. Cuando hay movilidad, la red debe reorganizarse frecuentemente. movilidad del sumidero El aspecto importante es la movilidad de un sumidero que no es parte de la red, por ejemplo, un humano con un dispositivo personal solicita información mientras se desplaza dentro de un edificio inteligente. El sumidero móvil puede solicitar la información en un lugar de la red y luego moverse a otro lugar, y la red debe lograr que los datos lo alcancen. movilidad del evento En aplicaciones de seguimiento, los objetos o evento a seguir pueden ser móviles. En este escenario, es importante que los eventos sean cubiertos por una suficiente cantidad de sensores al mismo tiempo. A medida que el objeto se desplaza a través de la red, es acompañado por un área de actividad dentro de la misma. Los nodos que no detectan nada, alternan a estados de sueño hasta que se requieran transmisiones de la zona en que se encuentran Nodo sensor Hardware Un nodo sensor básico comprende los siguientes cuatro subsistemas de hardware[4][22] (ver figura 2.2 obtenida de [4]): Energía Suministro o infraestructura de energía para poder operar desde unas horas hasta meses o años. Lógica computacional y almacenamiento Para el procesamiento de datos, almacenamiento temporal, cifrado, modulación y transmisión. 24

25 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES Figura 2.2: Componentes de hardware del nodo sensor Software Sensor La interfaz entre el medioambiente y el nodo es el sensor. Puede ser de humedad, luz, flujo magnético, temperatura, etc. Comunicación Se requiere un dispositivo para poder enviar y recibir información a través de un canal inalámbrico. Los sensores generalmente operan con cinco subsistemas de software [4] (ver figura 2.3 obtenida de [4]): Sistema operativo El microcódigo o sistema operativo, también llamado middleware, es el microcódigo común del dispositivo, utilizado por todos los programas de alto nivel, residentes en el nodo. Usualmente, presentan una arquitectura que permite una rápida implementación con un tamaño mínimo de código. TinyOS es un ejemplo [23]. Controladores de sensores Módulos de software que administran funciones básicas de los tranceptores de sensores (sensor transceiver). Procesadores de comunicación Módulos que administran funciones de comunicación, encaminamiento, almacenamiento y reenvío de paquetes, mantenimiento de la topología de red, control de acceso al medio, cifrado, corrección de errores, etc. 25

26 2.1. INTRODUCCIÓN Figura 2.3: Componentes de software del nodo sensor Controladores de comunicación Módulos que administran las tareas de utilización del enlace de transmisión por radio, sincronización, codificación de señales, recuperación de errores, modulación. Mini-aplicaciones de proceso de datos Aplicaciones básicas soportadas a nivel nodo para procesamiento de datos en la red. Protocolos Los controladores y procesadores de comunicación, piezas de software que asisten a la interconexión entre nodos, son componentes arquitectónicos de mayor relevancia. Se ha realizado mucha investigación para desarrollar protocolos especialmente diseñados para las redes inalámbricas de sensores. En la figura 2.4 (obtenida de [4]) se ilustra un modelo de protocolos genérico que comúnmente es utilizado para describir el aparato de comunicación [4]. En la tabla 2.1 (obtenida también de [4]) se caracterizan brevemente las funciones de cada capa de la pila Cuestiones de diseño Para que las redes de sensores lleguen a ser verdaderamente omnipresentes se deben encontrar soluciones a problemas propios de diseño, entre ellos[4]: 26

27 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES Figura 2.4: Pila genérica de protocolos del nodo sensor Capas superiores Capa 4 Capa 3 Capa 2 Capa 1 Aplicaciones residentes en la red, procesamiento, agregación, procesamiento de consultas externas, y base de datos externa. Transporte, incluyendo diseminación y acumulación de datos, cache y almacenamiento. Red, administración dinámica de la topología y encaminamiento Enlace, administración del canal compartido, competencia por el canal, y acceso al medio, sincronización y localización Física, canal de comunicación, procesamiento de señales Cuadro 2.1: Funciones de la pila de protocolos WSN Restricciones de hardware Un sensor podría tener que caber en un módulo de unos pocos centímetros cúbicos de volumen. Los sensores podrían también tener que ser desechables, autónomos y adaptativos al ambiente. Se necesita lograr un empaque confiable a pesar de estas restricciones de hardware. La figura 2.5, obtenida de la hoja de datos del nodo MicaZ [24]), corresponde a un nodo de 58 mm de largo, 32 mm de ancho y 7 mm de altura, excluyendo la batería. 27

28 2.1. INTRODUCCIÓN Figura 2.5: Nodo sensor MicaZ de MEMSIC Consumo de energía La vida útil del sensor depende mucho de la duración de la batería, y en muchos casos es limitada y no se puede recargar. Por lo tanto, se deben diseñar algoritmos y protocolos conscientes de la energía. Se pueden definir tres dominios funcionales de consumo de energía: sensado, comunicación y procesamiento; todos requieren optimización para minimizar la utilización de energía. Costo Casi por definición, la red inalámbrica de sensores consiste de un gran conjunto de nodos sensores, por lo que el costo de cada unidad afecta críticamente el costo de la red. Ambiente Se espera que las redes de sensores operen de manera desatendida en lugares geográficos remotos, con grandes desafíos de administración, o densamente desplegados, o dentro del ambiente observado. Canales de transmisión Los medios de comunicación inalámbricos utilizados son restringidos en ancho de banda y desempeño en general. Para facilitar la operación global de estas redes, el canal seleccionado debe estar disponible en todo el mundo. Conectividad y topología Se necesitan protocolos ad hoc diseñados para soportar cambios de topología debido a la movilidad, disponibilidad de recursos, pérdidas de información, apagones, mal funcionamiento, interferencia, etc. Estándares Un conjunto de protocolos y estándares abiertos son necesarios para las 28

29 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES capas física, enlace, red y transporte. Históricamente, se han utilizado protocolos específicos de cada aplicación, con el efecto de retardar la comercialización a gran escala Tipos de aplicación Por la variedad de aplicaciones que pueden tener las WSNs, existe la necesidad de desarrollar protocolos específicos del tipo de aplicación, con el riesgo de desarrollar un protocolo diferente para cada aplicación [25]. Por ello es importante poder clasificar las aplicaciones, para diseñar soluciones de clase. Una clasificación no será exhaustiva, puesto que puede haber superposición de clases en algún aspecto, sin embargo, lo más importante es que permite organizar el diseño. En [26] se presenta una clasificación de nueve dimensiones taxonómicas, entre ellas: Vida útil Si bien existe una variedad de métricas relacionadas al consumo de energía, se propone que la medida fundamental debe estar relacionada con el concepto de vida útil de la red, es decir el tiempo que dura funcionando de manera operativa. Puede ser simple o de duración fija, compleja o de fases múltiples. Latencia La latencia, esto es, el tiempo que tarda en recibirse un paquete, es un requerimiento temporal cuantificable en las redes inalámbricas de sensores. Puede ser despreciable, moderada o estricta. Ancho de banda Abarca dos aspectos del patrón de tráfico. Se refiere al volumen de datos requerido y a la frecuencia de las transmisiones. Puede ser episódicobajo, episódico-alto, continuo-bajo o continuo-alto. En [25] se presenta una clasificación algo más simplificada y basada en los objetivos de la aplicación, los requerimientos de entrega de datos y el patrón de tráfico, definiendo cuatro tipos de aplicación descriptos en la siguientes secciones. Para cada tipo, se especifican los requerminetos de vida útil, latencia, ancho de banda y encaminamiento. Un clasificación similar se ha tratado en [27] Detección y reporte de eventos Patrón de tráfico: Episódico Latencia: Estricta 29

30 2.2. TIPOS DE APLICACIÓN Vida útil: Compleja El objetivo de este tipo de aplicación es la detección de un evento infrecuente, como pueden serlo la presencia de un intruso, una anomalía o falla mecánica, un incendio en un bosque. Una vez detectado, el evento debe ser prontamente reportado al sumidero. La aplicación instalada estará inactiva casi todo el tiempo, y se producirán ráfagas de actividad cuando un evento sea detectado. Este tipo de aplicación tiene dos problemas importantes. El primero es la necesidad de disminuir la tasa de falsas alarmas que puedan producirse, posiblemente utilizando el consenso de un grupo de nodos para detectar el evento, en lugar de un único nodo. El segundo problema, más importante aún, es el encaminamiento del evento al vuelo, hacia el sumidero. Por la infrecuencia de los eventos, el principio de diseño que predomina es el de minimizar el consumo de energía del resto de las actividades. Entonces, dado que se espera que el volumen de tráfico sea muy bajo, la equidad o las colisiones en el enlace no son muy importantes, pero la escucha ociosa y el intercambio de mensajes de control deben optimizarse. Direccionamiento y encaminamiento Para el encaminamiento en este tipo de aplicaciones, en [25] se destaca la necesidad de un mecanismo de direccionamiento especial, la construcción de rutas de manera reactiva y la utilización de un ciclo de servicio del tranceptor que permita el ahorro de energía. Un esquema de direcciones es necesario para el enlace y el encaminamiento, y para etiquetar los datos con información sobre el lugar donde fueron generados. Por la gran cantidad de nodos, no resulta conveniente utilizar una dirección para cada nodo, ya que se necesitaría un tamaño de dirección bastante grande. Además, los nodos en general se comunican sólo localmente (con los vecinos) o al sumidero, por lo que no se necesita direccionar de cualquier nodo a cualquier nodo. En aplicaciones de detección de eventos, es más adecuado utilizar encaminamiento reactivo, pues la transmisión de datos es infrecuente, y si se utiliza encaminamiento proactivo, el mantenimiento de rutas genera un costo innecesario. En general, una gran cantidad de energía es consumida en escucha ociosa. Como es raro que ocurra un evento, los nodos utilizan muy poca energía en transmitir realmente la información. Por ello, se busca que los nodos funcionen en modo ahorro de energía, apagando sus radios periódicamente en forma independiente o coordinada, ejecutando un ciclo domir-servir. Co- 30

31 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES mo la comunicación es multi-salto, es necesario que el nodo esté despierto periódicamente para reenviar datos de otros nodos, aunque no tenga información propia para transmitir Recolección de datos y reporte periódico Patrón de tráfico: Continuo Latencia: Despreciable Vida útil: Simple Esta clase incluye a las aplicaciones de monitoreo. Por ejemplo, el monitoreo de cultivos o ganado, o del ambiente (temperatura, humedad y luz) de un edificio. En estos casos, cada sensor produce una cantidad de información de manera periódica y constante que debe ser encaminada al sumidero. También, el sumidero podría requerir el cómputo distribuido de alguna función de las lecturas de los nodos sensores. Esta agregación de datos puede ser implementada utilizando una topología de red jerárquica o plana, en donde la comunicación es multi-salto y los nodos intermedios van agregando la información salto a salto. Direccionamiento y encaminamiento Para esta clase de aplicación, es importante que las rutas permitan optimizar la vida útil de la red [25]. Al haber un flujo constante de información, la mayor parte de la energía del nodo se gasta en la transmisión. Por ello es importante que las rutas sean seleccionadas de manera de maximizar la vida útil de la red. En este sentido, en distintos trabajos se ha comprobado que seleccionar la ruta que requiere menor energía total de transmisión, hace que se agote la batería de los nodos a lo largo del camino, pudiendo acortar el tiempo que la red funciona sin particionarse. Por ello, se buscan mecanismos para balancear la carga del encaminamiento entre los nodos. En redes de topología jerárquica de clúster, la cabecera de clúster recolecta datos de los nodos y los envía agregados al sumidero. Así, el gasto de energía en transmisión es mucho más alto en la cabecera que en los nodos, y para uniformizar el patrón de agotamiento de energía, el rol de cabecera puede rotarse. También, pueden utilizarse nodos con mejores capacidades para llevar a cabo las tareas de cabecera, simplificando las funciones en los nodos ordinarios, que ya no podrían cumplir también ese rol. Para transmitir a la cabecera, los nodos podrían utilizar comunicación multi-salto o de salto-único, y un esquema híbrido permite, nuevamente, agotar la energía de la red de manera más uniforme. 31

32 2.2. TIPOS DE APLICACIÓN Consulta iniciada por sumidero Patrón de tráfico: Episódico Latencia: Moderada Vida útil: Compleja En este escenario, el sumidero puede requerir consultar la medición de un conjunto de sensores en un determinado momento. Esto permite extraer información con diferentes grados de resolución, de diferentes regiones en el espacio. Desde el punto de vista del encaminamiento, se requiere poder enviar datos a un conjunto dinámico de nodos. Para poder consultar selectivamente un subconjunto de datos, el sumidero debe poder expresar el interés con algún esquema de metadatos de la información. La consulta se difunde a un grupo de nodos que buscarán coincidencias y eventualmente enviarán sus respuestas. Una funcionalidad adicional de las redes basadas en consulta puede ser la reprogramación de nodos, si la mayor parte del hardware puede ser controlado por software, las actividades de generación de datos del nodo pueden ser modificadas por el sumidero. Direccionamiento y encaminamiento En este tipo de aplicaciones, el esquema de direcciones debe permitir hacer broadcast a una región espacial en particular [25]. Típicamente, el sumidero requerirá consultar un subconjunto de nodos localizados en una región específica, en lugar de un nodo en particular, de lo que se deriva la necesidad de un mecanismo de direccionamiento especial que lo permita. Para poder difundir una consulta a un grupo de nodos, el encaminamiento debe poder soportar el broadcast limitado a una región, utilizando información de posición Seguimiento Patrón de tráfico: Episódico, Continuo Latencia: Estricta Vida útil: Compleja El seguimiento con redes inalámbricas de sensores tiene muchas aplicaciones en la vigilancia militar o de frontera, donde interesa rastrear el movimiento de objetos. En medio ambiente las aplicaciones incluyen el seguimiento de patrones de movimiento de pequeños animales. Esta clase de aplicaciones combinan características de las tres anteriores. Cuando se detecta un evento, debe ser prontamente reportado al sumidero. El sumidero puede iniciar consultas a la región en donde el evento fue detectado, para poder calcular la trayectoria del objeto. Una cuestión de 32

33 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES diseño importante es determinar un balance entre el costo de calcular rutas al vuelo o mantener alguna topología para facilitar el proceso de seguimiento. El posicionamiento tiene incidencias en dos niveles: el sensor debe determinar su propia posición, para luego colaborar en la localización del objetivo en varios momentos. El esquema de posicionamiento deberá balancear robustez y eficiencia, es decir, la exactitud de la posición al menor costo energético posible. Para el seguimiento se ha propuesto la utilización de clústeres dinámicos, formados por agrupaciones de nodos, según sus mediciones. Las cabeceras colaboran de manera de activar el clúster más próximo al objetivo para la recolección de datos. Direccionamiento y encaminamiento Para facilitar la detección del objetivo, nuevamente, la estrategia de encaminamiento deberá estar basada en la posición geográfica de los nodos, en lugar de sus identidades de hardware Resumen A continuación se resumen las características de cada clase de aplicación WSN presentada en [25], utilizando algunas de las dimensiones taxonómicas de [26]. Tipo de aplicación Vida útil Latencia Ancho de banda Detección y reporte de eventos Compleja Estricta Episódico Recolección de datos y reporte periódico Simple Baja Continuo Consulta iniciada por sumidero Compleja Moderada Episódico Seguimiento Compleja Estricta Episódico Cuadro 2.2: Resumen de tipos de aplicación y características Las figuras 2.6a y 2.6b corresponden a tipos de aplicaciones ofrecidas por una compañía real, y fueron obtenidas de su sitio web [3] Estándares de comunicación Bluetooth y Wi-Fi Los sistemas Bluetooth y Wi-Fi (IEEE ) son dos opciones muy populares y comercialmente disponibles cuya utilización en redes inalámbricas de sensores ha sido evaluada. 33

34 2.3. ESTÁNDARES DE COMUNICACIÓN (a) Detección de incendios en un bosque (b) Monitoreo de cultivos Figura 2.6: Tipos de aplicación Bluetooth es un sistema diseñado como una red inalámbrica de área personal, su principal aplicación es la conexión de dispositivos a una computadora personal. Se han hecho prototipos de redes de sensores basadas en Bluetooth, los nodos organizados en picoredes con un nodo maestro y un máximo de siete nodos esclavos activos. El maestro elije la secuencia de hopping que deben seguir los esclavos. Puede haber varios nodos esclavos en estado pasivo en la picored, el maestro interroga los nodos esclavos activos continuamente. Hay varios inconvenientes de la aplicación de Bluetooth a redes inalámbricas de sensores [22]: la necesidad de tener un nodo maestro constantemente, con el costo de interrogar sus esclavos la cantidad limitada de esclavos por picored que soporta para el caso de redes de sensores densas, se necesitaría un número enorme de nodos maestros un esclavo activo debe permanecer siempre encendido, ya que no puede predecir cuando será interrogado por el maestro un esclavo pasivo debe postularse con el maestro para cambiar a activo, y si ya hay siete nodos activos, será rechazado se requiere que cada nodo pueda asumir el rol de maestro o esclavo, agregando una complejidad considerable los rápidos saltos de frecuencia requieren una sincronización estricta entre los nodos de la picoreds En la familia de protocolos IEEE se especifican varios tipos de capa física que comparten un único protocolo de capa MAC (DCF). En 34

35 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES términos generales, el estándar de protocolos IEEE tiene los siguientes inconvenientes [22]: requiere que los nodos estén permanentemente escuchando el medio, ya que podrían tener que recibir un frame en cualquier momento los nodos deben sobre-escuchar paquetes RTS y CTS para ajustar sus temporizadores NAV adecuadamente si bien se proveen algunas funcionalidades de ahorro de energía, en general está orientado a altas tasas transmisión, y los tranceptores disponibles requieren una cantidad de energía que es órdenes de magnitud mayores que lo aceptable en aplicaciones de redes de sensores es un protocolo de salto-único para redes ad-hoc, cuando lo común en redes de sensores es el encaminamiento de salto-múltiple Estándar IEEE El estándar IEEE , finalizado en el 2003 por el Instituto de Ingenieros Eléctricos y Electrónicos, define la capa física y MAC para redes inalámbricas de área personal (WPAN ) de baja tasa de transmisión. A veces se confunde el estándar con ZigBee, otro estándar que agrega servicios de red, seguridad y aplicación, y está basado en los servicios ofrecidos por IEEE Los tipos de aplicación a los que está orientado el estándar comprenden las redes inalámbricas de sensores, la domótica, las redes hogareñas, la conexión de dispositivos a una computadora personal, seguridad, etc. La mayoría de estas aplicaciones requieren tasas de transmisión bajas a medias, retardos de transmisión moderados con requerimientos no muy estrictos, y es muy deseable la reducción al mínimo del consumo de energía en los nodos. Capa física El diseño de la capa física está dirigido por los requerimientos de bajo costo y eficiencia, de aplicaciones de control y monitoreo sensibles al costo y de baja tasa de transmisión [4]. Bajo el estándar , se pueden operar enlaces inalámbricos en tres bandas de frecuencias no licenciadas: 858 MHz, 902 a 928 MHz, y 2.4 GHz. Basados en estas frecuencias, se definen tres medios físicos: 1. DSSS (Direct Sequence Spread Spectrum) usando modulación BPSK en la banda 868 MHz a una tasa de 20 Kbps (único canal) 35

36 2.3. ESTÁNDARES DE COMUNICACIÓN 2. DSSS usando modulación BPSK en la banda de 915 MHz a una tasa de 40 Kbps (10 canales) 3. DSSS usando modulación O-QPSK en la banda 2.4 GHz a una tasa de 250 Kbps (16 canales) El estándar IEEE es una enmienda que especifica las siguientes alternativas adicionales de capa física (PHY) [28]: 1. Ultra-wide band (UWB) a frecuencias 3 a 5 GHz, 6 a 10 GHz, y < 1 GHz 2. CSS (Chirp Spread Spectrum) a 2450 MHz Figura 2.7: Estructura del paquete de capa física IEEE La estructura del frame IEEE , ilustrada en la figura 2.7 (obtenida de [4]), comprende los siguientes campos: 1. preámbulo: 32 bits que se utilizan para sincronización de símbolos 2. delimitador: 8 bits que se utilizan para sincronizar la recepción del frame 3. cabecera: 8 bits que especifican la longitud de la unidad de datos (PSDU, PHY Service Data Unit) 4. datos: hasta 127 bytes de datos Capa de acceso al medio Arquitectura de red El estándar distingue dos tipos de nodo [4]: 36

37 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES FFD (Full Function Device) dispositivo de funcionalidad completa, que puede operar como coordinador de la red PAN, coordinador a secas, o dispositivo RFD (Reduced Function Device) dispositivo de funcionalidad reducida, sólo opera como dispositivo Un dispositivo debe estar asociado a un nodo coordinador FFD formando una red de topología estrella. Los coordinadores pueden comunicarse punto a punto y varios coordinadores pueden formar una red PAN. La red se identifica con un identificador PAN de 16-bits y uno de sus coordinadores es designado como coordinador PAN. El coordinador: mantiene la lista de dispositivos asociados asigna direcciones cortas a sus dispositivos asociados en modo ranurado, transmite regularmente el beacon (mensaje baliza), anunciando el identificador de red PAN, y las ranuras reservadas intercambia frames de datos con dispositivos y con coordinadores Modo ranurado (beaconed mode) En modo ranurado, el coordinador de la red estrella organiza el acceso al canal y la transmisión de datos especificando un superframe. El superframe describe un ciclo de actividades que se repite en forma periódica. El coordinador arranca cada superframe transmitiendo el frame de señalización (beacon packet), que incluye la especificación del superframe, con la duración de cada actividad. Figura 2.8: Superframe de IEEE CSMA ranurado Como se observa en la figura 2.8 (obtenida de [4]), el superframe se divide en dos períodos, cuya duración es configurable: 37

38 2.3. ESTÁNDARES DE COMUNICACIÓN 1. Período activo Se divide en 16 ranuras de tiempo (de duración configurable), la primera ocupada en transmitir el frame de señalización, y las restantes se reparten en dos fases: CAP (Contention Access Period), el acceso es por competencia y GTSs (Guaranteed Time Slots), el acceso es exclusivo por ranuras de tiempo garantizadas. El coordinador debe estar activo durante la totalidad del período, y los dispositivos asociados están activos en las ranuras de tiempo GTS que le fueron asignadas. En la fase CAP el nodo también puede apagar el tranceptor si no tiene nada que transmitir o recibir. 2. Período inactivo Durante este período, todos los nodos incluyendo el coordinador pueden apagar el tranceptor y ponerse a dormir. Los nodos deberán despertar justo antes de la transmisión del frame de señalización para recibirlo. Los coordinadores hacen mucho más trabajo que los dispositivos, el protocolo está diseñado para una topología de sensores restringidos en energía que se comunican con nodos de energía no acotada. El coordinador asigna ranuras de tiempo garantizadas a los dispositivos que han enviado paquetes de solicitud durante la fase CAP. Una marca en la solicitud indica si el GTS es para transmitir al coordinador o para recibir datos del coordinador, y otro campo indica la cantidad de ranuras de tiempo contiguas que se desean reservar. La respuesta del coordinador ocurre en dos pasos. El primero es una confirmación inmediata de la recepción de la solicitud. Al recibir la confirmación, el dispositivo debe rastrear los beacons por un determinado tiempo. Cuando el coordinador tiene suficientes recursos para otorgar las ranuras solicitadas, inserta un descriptor GTS en el siguiente beacon. El descriptor contiene la dirección del nodo solicitante, y la cantidad y posición de las ranuras otorgadas dentro de la fase GTS. El dispositivo puede utilizar las ranuras asignadas cada vez que son anunciadas por el coordinador. Asimismo, las ranuras permanecen asignadas hasta que el dispositivo solicita su liberación con un frame de control especial, o el coordinador detecta que no han sido utilizadas durante una determinada cantidad de superframes y las cancela con un descriptor GTS que contiene una posición inválida. Si el coordinador no tiene los suficientes recursos, también transmite un descriptor GTS especificando una posición inválida y los recursos que sí están disponibles, pudiendo el dispositivo renegociar el GTS. La transmisión de información del dispositivo al coordinador ocurre en ranuras GTS, o en la fase CAP utilizando CSMA-CA ranurado. En la dirección opuesta, la transmisión de información del coordinador al dispositivo ocurre también en ranuras GTS, y si no se han reservado, se hace de la siguiente manera: 38

39 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES 1. el coordinador anuncia que tiene datos para un dispositivo incluyendo la dirección del dispositivo en el campo pending address field del frame beacon 2. cuando el dispositivo encuentra su dirección en el campo, envía una petición de datos durante la fase CAP 3. el coordinador responde con un acuse de recibo y luego envía el dato 4. cuando el dispositivo recibe el acuse, deja el tranceptor encendido y se prepara para la recepción del dato 5. al recibir los datos, el dispositivo responde con un acuse de recibo 6. si el dispositivo no recibe el acuse, repite la petición durante los siguientes superframes o apaga el tranceptor hasta el siguiente beacon Para la transmisión de datos del dispositivo al coordinador durante la fase CAP se usa el protocolo CSMA. Para evitar colisiones, no se utiliza el esquema RTS/CTS (Request To Send / Clear To Send), sino que usan retardos al azar. Las ranuras de tiempo de la fase CAP están a su vez subdivididas en ranuras más pequeñas, llamadas períodos de backoff. Un período de backoff dura lo mismo que la transmisión de 20 símbolos. El dispositivo que desea transmitir espera al comienzo del siguiente período de backoff y a partir de allí espera un número al azar (del intervalo [0, 2 BE 1]) de períodos siguientes. Luego, en cada período censa el medio (ejecutando la operación CCA, Clear Channel Assesment), durante dos períodos seguidos. Si las dos veces el canal está ocioso, ha ganado la competencia y comienza la transmisión de los datos. Si alguna de las veces que el dispositivo censa el medio el canal está ocupado, comienza el proceso nuevamente con la espera, eligiendo un número al azar de períodos de un intervalo mayor (incrementando el exponente BE). Si es necesario repetir el proceso más de una determinada cantidad de veces, el dispositivo descarta el frame y declara que se ha producido una falla. Modo no ranurado (nonbeaconed mode) En el modo no ranurado el coordinador no transmite frames beacon, ni hay fase GTS. Todos los paquetes de los dispositivos se transmiten utilizando CSMA-CA no ranurado, por lo que no hay sincronización con períodos de backoff, y sólo ejecuta una operación CCA antes de transmitir. Si el canal está ocioso, el dispositivo transmite los datos. Los dispositivos pueden seguir su propio programa de sueño, despertando para transmitir al coordinador o para recibir datos del coordinador. El dispositivo envía la solicitud de datos usando CSMA-CA no ranurado, y el coordinador responde el acuse 39

40 2.3. ESTÁNDARES DE COMUNICACIÓN de recibo inmediatamente. Luego, cuando el coordinador tiene datos para el dispositivo, los transmite usando CSMA-CA y el dispositivo responde el acuse inmediatamente. En este modo, el ciclo de recepción depende de la aplicación ZigBee ZigBee [29] es un estándar de comunicación orientado a aplicaciones cuyos requerimientos principales son bajas tasas de transmisión, bajo costo y larga duración de batería. Algunos sistemas para los que existen perfiles de aplicación definidos [30] son: Domótica Control remoto (home theatre, media center, etc) Monitoreo de consumo energético y de agua en el hogar Monitoreo de pacientes crónicos no agudos, salud personal y de la tercera edad Los estándares ZigBee son desarrollados por la organización ZigBee Alliance, conformada por cientos de compañías, y formada en el 2002 como una organización sin fines de lucro. Algunas empresas promotoras (con el nivel de participación más influyente y representación en el directorio) son Philips, Emerson y Texas Instruments. Las empresas participantes son numerosas, entre ellas se encuentran AT&T, Cisco, Huawei, Indesit, LG, Samsung, Siemens, Whirpool, Intel, GE. El estándar ZigBee está definido en capas de protocolos, basadas en el modelo de referencia OSI. Adoptando la capa física (PHY) y de acceso al medio (MAC) IEEE , define capas de servicios de red, aplicación y seguridad. La figura 2.9 (obtenida del estándar [6]) esquematiza las capas de la arquitectura ZigBee. Las características físicas de la red están determinadas por la capa física IEEE descripta en la sección Arquitectura de red Los roles de los nodos en ZigBee se corresponden con los del estándar IEEE , aunque tienen diferente denominación: Coordinador ZigBee (coordinator) (Coordinador PAN IEEE ) 40

41 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES Figura 2.9: Capas de protocolos de ZigBee Encaminador ZigBee (router) (Coordinador IEEE ) Dispositivo Final ZigBee (end device) (Dispositivo IEEE ) Se soportan las topologías de red estrella o punto a punto, como se especifica en IEEE Figura 2.10: Red ZigBee estrella En la red estrella, esquematizada en la figura 2.10 (obtenida de [29]), todos los dispositivos de la red se comunican a través del coordinador, que al activarse selecciona un identificador de red único dentro de su alcance de radio y establece la red. En la red punto a punto, todos los dispositivos pueden comunicarse directamente entre sí. Los dispositivos de funcionalidad reducida participan 41

42 2.3. ESTÁNDARES DE COMUNICACIÓN Figura 2.11: Red ZigBee malla de la red comunicándose con un coordinador o un encaminador ZigBee, pero no encaminan mensajes. En este caso, el encaminador también puede tomar el rol de coordinador. La red punto a punto puede tomar diferentes formas: Malla No hay restricción sobre los dispositivos que pueden comunicarse entre sí (figura 2.11, obtenida de [29]). Árbol El coordinador establece la red inicial. Los encaminadores forman las ramas y los dispositivos finales, que no encaminan datos, las hojas del árbol. Los encaminadores pueden agregar más nodos a la red, más allá de la red inicial. Capa de aplicación y seguridad La capa de aplicación es la más alta en la pila ZigBee, y aloja los objetos de aplicación. Los fabricantes desarrollan objetos de aplicación para personalizar los dispositivos para su aplicación. Estos objetos controlan y administran las capas de protocolos del dispositivo. El estándar ZigBee ha definido perfiles de aplicación, un conjunto de acuerdos sobre formatos de mensajes y acciones de procesamiento para promover la interoperabilidad entre diferentes vendedores [30]. ZigBee también provee mecanismos para garantizar la confidencialidad y autenticidad de la información transmitida. El estándar IEEE soporta el uso de cifrado AES (Advanced Encryption Standard) de los paquetes salientes. La autenticación de los datos se puede comprobar incluyendo un código de integridad de mensaje (MIC) en cada frame. 42

43 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES Capa de red La capa de red es responsable de la administración de la red y del encaminamiento. El coordinador establece la nueva red, selecciona la topología, y asigna direcciones al resto de los dispositivos. Los coordinadores y encaminadores son los que descubren y mantienen las rutas en la red. La capa de red mantene los siguientes 3 tipos de tablas: 1. encaminamiento 2. descubrimiento de ruta 3. nodos vecinos Las rutas se mantienen en tablas de encaminamiento, que se utilizan para determinar el siguiente nodo al que se debe reenviar un mensaje, camino a un destino particular. Campo Tamaño Descripción Dirección destino 2 bytes La ruta conduce a este destino. Estado 3 bits Activo, descubrimiento en curso, descubrimiento fallido, inactivo, validación en curso. Muchos a uno 1 bits Si el destino ha solicitado encaminamiento muchos a uno, toma valor 1. Grabación de ruta requerida 1 bit Si está prendido, la ruta seguida por el paquete será grabada y entregada al dispositivo de destino. Flag de id de grupo 1 bit Está prendido si la dirección de destino es un id de grupo. Dirección de siguiente nodo 2 bytes La dirección de 16 bits del siguiente nodo en la ruta. Cuadro 2.3: Campos de la tabla de encaminamiento ZigBee En la tabla 2.3 se listan los campos de cada entrada de la tabla de encaminamiento. 43

44 2.3. ESTÁNDARES DE COMUNICACIÓN Campo Tamaño Descripción Id de petición de ruta 1 byte El número de secuencia que identifica la petición de ruta. Cada ruta se identifica por un id único de petición. Dirección origen 2 bytes 16 bits de dirección del dispositivo origen, quien inicia la petición de ruta. Dirección de emisor 2 bytes 16 bits de dirección del dispositivo emisor, el que ha enviado la petición de ruta en favor del dispositivo origen. Esta dirección es utilizada para enviar la respuesta de ruta al dispositivo origen. Si la misma petición de ruta es recibida de múltiples emisores, la dirección del emisor con el costo total de ruta más bajo será mantenida. Costo de reenvío 1 byte El costo de ruta acumulado desde el dispositivo origen. Este campo se actualiza cuando se envía la petición de ruta hacia el dispositivo destino. Costo residual 1 byte El costo de ruta acumulado desde este dispositivo al dispositivo destino. Este campo se actualiza cuando se envía la respuesta de ruta al dispositivo origen. Cuadro 2.4: Campos de la tabla de descubrimiento de ruta ZigBee 44

45 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES Campo Descripción Dirección extendida 64 bits de dirección IEEE Dirección de red 16 bits de dirección de red Tipo de dispositivo Coordinador, encaminador o dispositivo final ZigBee En ocio, receptor encendido Si el dispositivo mantienen encendido el receptor cuando está ocioso, este campo toma valor verdadero. Relación Este campo determina la relación con el vecino. Padre, hijo, hermano, hijo anterior o ninguna. Falla de transmisión Un valor alto indica que muchos de los intentos de transmisión anteriores fallaron. LQI La calidad de enlace estimada Marca de tiempo Opcional. del último frame de señalización recibido Padre potencial Si el vecino es un padre potencial, opcional. Cuadro 2.5: Campos de la tabla de nodos vecinos ZigBee Otra tabla utilizada en el encaminamiento es la tabla de descubrimiento de ruta (tabla 2.4). El contenido de esta tabla es temporario y expira cada cierta cantidad de milisegundos. El costo de ruta se calcula como la suma de los costos de cada enlace que forma parte de la ruta: L = longitud de la ruta P = ruta (path) l i = enlace i (link) C(P ) = L 1 i=1 C(l i ) La ruta con el menor costo tiene la mejor chance de entrega exitosa de paquetes. El estándar ZigBee calcula el costo de enlace como un entero en el intervalo [0..7] con la siguiente fórmula [6]: C(l) = ( 7, ) 1 min(7,round( (p l ) 4 )) El costo es o bien constante (7), o bien el mínimo entre 7 y el recíproco de p l. Se define a p l como la probabilidad de entrega con buen éxito si se utiliza 45

46 2.3. ESTÁNDARES DE COMUNICACIÓN el enlace l. El estándar menciona que los implementadores pueden optar por utilizar un costo constante de 7 o un valor que refleje la probabilidad p l de recepción, específicamente el recíproco de esa probabilidad (a mayor probabilidad, menor costo), que a su vez refleja la cantidad esperada de intentos requeridos para pasar un paquete cada vez que se utiliza el enlace. Se plantea la cuestión de cómo estimar o medir p l, y se deja abierta a los implementadores, pero se sugiere como manera más directa y siempre disponible, la estimación basada en la promediación del indicador LQI (Link Quality Indicator) (por frame) que provee el estándar MAC y PHY IEEE Si se utiliza algún otro método de estimación de p l, el costo inicial debe estar basado en el LQI promedio. La medida LQI es una caracterización de la calidad del paquete recibido [31], que se implementa utilizando una estimación de la intensidad recibida (ED, Energy Detection), una estimación de la relación señal/ruido (SNR, Signal to Noise Ratio), o una combinación de ambos. Como el método para calcular el costo sugerido no tiene en cuenta el consumo de energía, el encaminamiento básico no puede considerarse consciente de la energía [29]. La eficiencia del encaminamiento, y la definición del costo del enlace, dependen de la definición de vida útil de la red, que está determinada por el tipo de aplicación. El dispositivo ZigBee mantiene también una tercera tabla de nodos vecinos, que contiene información sobre los dispositivos que se encuentran dentro del alcance, actualizándose cada vez que se recibe un paquete. Cada entrada tiene campos requeridos y campos opcionales, algunos listados en la tabla 2.5. La aplicación puede solicitar el descubrimiento de ruta para tres patrones de comunicación [29]: unicast Una ruta unicast comienza en un dispositivo y termina en otro. multicast El descubrimiento multicast se realiza si la dirección destino es un identificador de grupo. muchos a uno Si la aplicación no provee una dirección destino, se inicia el descubrimiento muchos a uno, donde el dispositivo solicitante es el sumidero. Si la aplicación solicita descubrimiento de ruta para la dirección broadcast, la petición se toma como inválida. 46

47 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES El descubrimiento unicast se realiza de la siguiente manera: 1. Un dispositivo O (origen) requiere hallar una ruta a un dispositivo D (destino), entonces inicia el descubrimiento emitiendo por broadcast el comando de petición de ruta, que contiene el identificador de petición de ruta, la dirección destino, y el costo de la ruta, inicialmente en cero. 2. El comando de petición de ruta es recibido por todos los dispositivos dentro del alcance de O. Si el dispositivo es un dispositivo final, ignora el comando. Si es un encaminador, lo procesa. 3. El encaminador E que recibe el comando y no tiene la tabla de encaminamiento llena, agrega el costo de O a E al comando de petición de ruta y lo vuelve a emitir por broadcast. Además, agrega el identificador de petición de ruta y la dirección origen a la tabla de descubrimiento de ruta, si no existen. 4. Si el encaminador E que recibe el comando tiene la tabla de encaminamiento llena, y la dirección destino no existe en la tabla, asumiendo que se utiliza encaminamiento jerárquico, y la petición de ruta proviene de una ruta válida, E reenviará el comando a lo largo del árbol. 5. Si E tiene la tabla de encaminamiento llena, y la petición de ruta no proviene de una ruta válida, se ignora. 6. Cada encaminador o coordinador C que recibe la petición, la vuelve a emitir por broadcast. Si la recibe por duplicado, actualiza la tabla de descubrimiento de ruta con el costo más bajo desde el dispositivo emisor hasta C. 7. El reenvío continua hasta que el dispositivo final D recibe la petición. De entre todas las peticiones de ruta que recibe D, selecciona la ruta óptima según el costo acumulado con que llegan, y emitirá el comando respuesta de ruta. ZigBee también soporta encaminamiento en origen (source routing), donde el nodo origen especifica la lista de dispositivos por los cuales debe encaminarse el paquete, y cuando un encaminador lo recibe, simplemente obtiene la dirección del siguiente nodo de la lista WirelessHART WirelessHART (Wireless Highway Addressable Remote Transducer) es el primer estándar abierto de comunicación inalámbrica específicamente diseñado para aplicaciones de control de procesos, oficialmente liberado en el año 2007 [32]. 47

48 2.3. ESTÁNDARES DE COMUNICACIÓN Conceptualmente, las redes WirelessHART son un tipo especial de redes inalámbricas de sensores. A diferencia de las redes de sensores genéricas, que asumen que los sensores son desplegados al azar y de manera abundante, el despliegue de las redes WirelessHART es preciso y con redundancia limitada. Los nodos WirelessHART están conectados a dispositivos de campo para recolectar datos ambientales específicos de los procesos, por ejemplo, velocidades de flujo, niveles de fluido, o temperaturas. Una lectura de un sensor quizá no puede reemplazarse por la lectura de otro sensor cercano. Las redes genéricas son auto-configurables y no tienen requerimientos estrictos de tiempo y confiabilidad, como sí lo requieren las aplicaciones inalámbricas industriales. Capas WirelessHART Figura 2.12: Pila de protocolos WirelessHART La arquitectura de WirelessHART, de acuerdo con el modelo de referencia OSI, se muestra en la figura 2.12 (obtenida de [32]). La pila de protocolos comprende cinco capas: física, enlace, red, transporte y aplicación. La capa física está mayormente basada en la capa física DSSS 2.4 GHz definida en el estándar IEEE , operando en la banda ISM (Industrial, scientific and medical) de uso no licenciado MHz, con una tasa de transmisión de 250 Kbits/s y 16 canales con 5 MHz de separación entre cada canal adyacente. 48

49 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES La capa de enlace es propia y opera de manera sincronizada, con ranuras estrictas de 10 ms y tecnología TDMA (Time-Division Multiplexed Access) para proveer un sistema de comunicación determinístico y libre de colisiones. El superframe comprende un grupo de ranuras consecutivas y se repite sobre la base de su período (que es la suma de la duración del conjunto de ranuras). Se utiliza el concepto de transacciones que ocurren en una ranura de tiempo, descriptas por el vector: (FID, I, T, SA, DA, COFF) FID = Identificador de superframe I = Índice de ranura dentro del superframe T = Tipo de ranura (transmisión, recepción, ocio) SA = Dirección origen DA = Dirección destino COFF = Desplazamiento dentro del canal, canal lógico para usar en la transacción WirelessHART también introduce el concepto de lista negra de canales, el administrador puede deshabilitar canales que sufren constantes interferencias. Para soportar el salto de frecuencias, cada dispositivo mantiene una lista de canales activos. El canal verdadero se calcula a partir número absoluto de ranura y el desplazamiento dentro del canal. El número absoluto de ranura toma valor cero al iniciarse la red, y se incrementa constantemente. La capa de enlace mantiene una colección de tablas [33]: tabla de superframe Almacena atributos del superframe. tabla de enlace Almacena atributos de cada enlace. tabla de vecinos Almacena la lista de dispositivos dentro del alcance de radio. tabla del grafo Almacena la lista nodos siguientes legales para propagar un paquete hacia su destino. Las capas de red y transporte colaboran para proveer comunicación confiable y segura extremo a extremo. La capa de aplicación define varios 49

50 2.3. ESTÁNDARES DE COMUNICACIÓN comandos que procesa para generar respuestas, tipos de datos y reportes de estado del dispositivo. WirelessHART además incluye servicios de seguridad en el enlace y a nivel de red. La capa MAC provee integridad nodo a nodo usando MIC (código de integridad de mensaje). A nivel de red, los dispositivos y el administrador de red emplean varias claves para garantizar la confidencialidad e integridad de las conexiones extremo a extremo: públicas, de red, de unión, de sesión. El dispositivo y el administrador de red son dos de los tipos de nodo WirelessHART, descriptos en la siguiente sección. El dispositivo utilizará la clave de unión para generar el MIC del paquete de red y encriptar la petición de unión, y la clave pública para generar el MIC de enlace. Luego de ser autenticado, el administrador de red creará una clave de sesión que utilizarán para comunicarse. Para el tráfico normal, los datos del frame (enlace) se autentican con la clave de red y en la capa de red el paquete se autentica y encripta con la clave de sesión. Arquitectura de red y encaminamiento Figura 2.13: Malla WirelessHART Una red WirelessHART se compone de los siguientes nodos (ver figura 2.13 obtenida de [34]): 50

51 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES Dispositivo de campo Conectados a un proceso de planta. Dispositivo de mano Computadora portátil compatible con WirelessHART, utilizada para configurar dispositivos, realizar diagnósticos y calibraciones. Gateway Conecta aplicaciones de computadora con dispositivos de campo. Administrador de red Responsable de configurar la red, programar y mantener la comunicación entre los dispositivos WirelessHART. Para soportar la topología de red malla, todos los dispositivos deben poder reenviar paquetes en favor del resto. Se definen dos protocolos de encaminamiento: Encaminamiento por grafo Un grafo puede pensarse como una colección de caminos dirigidos, que conecta los nodos de la red. Una única red puede tener múltiples grafos, y algunos pueden solaparse. El administrador de red crea las rutas asociadas a cada grafo y las almacena en cada dispositivo de la red. Para enviar un paquete, el dispositivo origen especifica un identificador de grafo en su encabezado. Todos los dispositivos camino al destino deben ser preconfigurados con la información de encaminamiento, para poder determinar el siguiente nodo al cual reenviar el paquete. Encaminamiento en origen Complementa el encaminamiento por grafo para asistir al diagnóstico de la red. El dispositivo origen especifica la lista de dispositivos por los cuales debe viajar el paquete en el encabezado. Cada dispositivo utiliza la lista para determinar el siguiente nodo al cual debe reenviar el paquete. La capa de red mantiene también un conjunto de tablas propias: tabla de sesión Cada entrada identifica una sesión segura entre dos dispositivos. tabla de transporte Utilizada para dar soporte a transacciones extremo a extremo, con confirmación. Junto con un número de secuencia se almacena la última petición o respuesta, para poder reenviarlos cuando expira el temporizador. 51

52 2.3. ESTÁNDARES DE COMUNICACIÓN tabla de encaminamiento Para cada destino pueden existir más de una entrada en esta tabla, con un identificador de grafo diferente. Basándose en la información de enlace provista por cada nodo, el administrador de red crea el grafo total de la red, siguiendo las siguientes reglas en el orden en que se enumeran: 1. minimizar la cantidad de saltos 2. encaminar a través de dispositivos conectados a la red eléctrica si es posible 3. utilizar la intensidad de señal para seleccionar las mejores rutas 4. utilizar una combinación de intensidades de señal ponderadas para seleccionar entre rutas alternativas 5. podar la cantidad de vecinos a 4 nodos o menos Luego de crear el grafo total, el administrador crea un grafo que describe rutas desde cada dispositivo hasta el gateway, un grafo de broadcast desde el gateway hasta cada dispositivo, grafos desde el gateway a cada dispositivo individualmente. El administrador de red asigna ranuras de tiempo a cada dispositivo de acuerdo con los grafos derivados. Comparación con ZigBee Los principales argumentos en contra de la utilización de ZigBee para aplicaciones industriales son [35]: ZigBee utiliza un único canal, lo que lo hace muy susceptible a interferencias intencionales o no. La grave atenuación selectiva de frecuencia debido al ambiente rico en metales propio de las plantas podría, potencialmente, detener toda comunicación. El canal único aumentará la interferencia con otros sistemas, tales como una red local inalámbrica, y aumentará el retardo al crecer la red, además de producirse una mayor cantidad de colisiones y retransmisiones. En este sentido, Wireless- HART es más robusto, ya que utiliza saltos de frecuencia y retransmisiones en diferente frecuencia para reducir los efectos de interferencias. ZigBee no mantiene diversidad de rutas, si se rompe un enlace, se debe establecer una nueva ruta de origen a destino, produciendo retardos y 52

53 CAPÍTULO 2. REDES INALÁMBRICAS DE SENSORES costos indirectos, y el descubrimiento de ruta puede llegar a consumir todo el ancho de banda en ambientes con rutas inestables. El encaminamiento por grafo de WirelessHART provee la redundancia de ruta que permite reducir los efectos de enlaces rotos. Los encaminadores ZigBee con muchos vecinos deben mantener el receptor encendido durante una gran parte del superframe, en la fase CAP por utilizar CSMA/CA. En cambio, los dispositivos Wireless- HART solo mantienen la radio encendida durante las ranuras de tiempo asignadas. Aún con las características de robustez y confiabilidad mencionadas de WirelessHART para aplicaciones industriales, en [35] se sugiere su utilización en procesos lentos y no críticos. 53

54 2.3. ESTÁNDARES DE COMUNICACIÓN 54

55 Capítulo 3 Protocolos de red 3.1. Problema del encaminamiento Uno de los principales desafíos de diseño en WSNs es la comunicación de datos intentando al mismo tiempo prolongar la vida útil de la red, empleando técnicas agresivas de administración de energía. En [10] se resumen algunas cuestiones de diseño que afectan el proceso del encaminamiento: Despliegue El despliegue de los nodos depende de la aplicación y afecta el desempeño del protocolo. Cuando el despliegue es determinístico, los datos se encaminan a través de rutas predefinidas. Cuando es al azar, la estructura de red se crea ad hoc y probablemente las rutas se compongan de múltiples saltos de enlaces inalámbricos. Conservación de energía Los nodos sólo cuentan con su limitado suministro de energía para procesar y comunicar datos en un ambiente inalámbrico, por lo que se deben buscar maneras de optimizar esas actividades. Modelo de reporte de datos El sensado y reporte de datos depende de la aplicación y sus requerimientos temporales, y pueden clasificarse en continuos, por evento, por consulta o híbridos. En el modelo continuo, los sensores sensan y transmiten periódicamente. En los modelos de reporte por evento y por consulta, los sensores reaccionan a un cambio drástico y repentino del valor sensado por haber ocurrido un evento, o para responder a una consulta iniciada por la estación base. El protocolo de encaminamiento está fuertemente influido por el modelo requerido. Heterogeneidad de nodos o enlaces Los nodos pueden ser homogéneos en capacidad o pueden diferir in- 55

56 3.1. PROBLEMA DEL ENCAMINAMIENTO cluso en el rol. Por ejemplo, una aplicación puede requerir una combinación de diversos sensores para monitorear temperatura, presión y humedad del ambiente, detectando movimiento con señales acústicas, y capturando video de objetos en movimiento. Los sensores pueden ser desplegados independientemente, o las diferentes funcionalidades pueden ser incluidas en los mismos nodos sensores. Tolerancia a fallas Cuando los nodos fallan, por falta de energía, daño físico o interferencia, no deberían afectar el funcionamiento de la red. Los protocolos de acceso al medio y encaminamiento deben formar nuevos enlaces y rutas al sumidero, lo que puede requerir el ajuste de la intensidad de transmisión y el encaminamiento de paquetes a regiones de la red de mayor energía. Pueden requerirse múltiples niveles de redundancia dependiendo de los requerimientos de tolerancia a fallas. Escalabilidad La cantidad de nodos sensores desplegados en una determinada área puede ser del orden de los cientos o miles. El esquema de encaminamiento debe ser capaz de operar con una gran cantidad de nodos. Movilidad Muchas arquitecturas asumen nodos estacionarios, pero algunas aplicaciones requieren nodos y sumideros móviles. Cuando hay movilidad, la estabilidad de la ruta presenta mayor desafío. Canal de transmisión Los problemas tradicionales de un canal inalámbrico, atenuación y alta tasa de errores, también afectan a las redes de sensores. En general el ancho de banda requerido es bajo. Conectividad Por la gran densidad de nodos se espera que la red esté altamente conectada, aunque habrá cambios de topología debido a fallas en los nodos. Cobertura Cada nodo obtiene una cierta vista del ambiente, limitada en alcance y exactitud. Agregación de datos Dado que los nodos pueden generar una cantidad importante de información redundante, la agregación de datos permite reducir la cantidad de transmisiones. La agregación es la combinación de diferentes fuentes de acuerdo a una cierta función, por ejemplo, mínimo, promedio, 56

57 CAPÍTULO 3. PROTOCOLOS DE RED máximo. Algunos métodos de procesamiento de señales se pueden utilizar para combinar señales y reducir su ruido, técnica que se conoce como fusión de datos. Calidad de servicio Algunas aplicaciones tienen requerimientos temporales y de latencia. Sin embargo, en muchas otras, la conservación de energía, relacionada con la vida útil de la red, es considerada mucho más importante que la calidad de servicio. Para cumplimentar este requerimiento se requieren protocolos conscientes de la energía. En la literatura y artículos de investigación se pueden encontrar varias maneras de clasificar protocolos para redes inalámbricas de sensores, según las premisas de diseño con que se definen y los problemas que intentan resolver. Cada paradigma a menudo se describe respondiendo a las siguientes preguntas: Qué modelo de red y tipo de aplicación asume? Cómo se elige el siguiente nodo en la ruta? Qué fases de operación tiene? Qué cuestiones resuelve? Cuáles son sus desventajas? Asimismo, se han propuesto protocolos que no son exclusivos de un paradigma, sino que aplican más de una técnica, combinándolas de manera conveniente para algún tipo de aplicación. Es por ello que, al analizar un protocolo, probablemente el mismo pertenezca a más de una categoría. A continuación, se describirán tres de los paradigmas más mencionados en las taxonomías analizadas [36][11][5][10][25][22] Encaminamiento jerárquico Características Los algoritmos de esta clase se caracterizan por establecer una topología de red jerárquica. La jerarquía virtual se construye dividiendo la red en niveles, utilizando un criterio conveniente, por ejemplo, por funcionalidad o por ubicación de los nodos [36]. En la figura 3.1 se esquematiza esta división. El objetivo de la misma es reducir la carga que se produce en el sumidero si se utiliza una topología plana y la densidad de nodos es muy alta, ya que 57

58 3.2. ENCAMINAMIENTO JERÁRQUICO cada dato sensado se comunicaría directamente a la estación base. Además, en general, los nodos no tienen un alcance de radio muy largo como para poder llegar al sumidero en un área muy amplia [11]. En una jerarquía, los nodos colaboran dentro de un clúster para transmitir los datos, utilizando un esquema multi-salto, permitiendo hacer un uso más eficiente de la energía disponible. Ocasionalmente se aprovecha la topología para utilizar también la técnica de fusión o agregación de datos, y el rol de cabecera o de fusionador puede ser asignado dentro del clúster teniendo en cuenta el nivel de residual de energía que posee el nodo. Figura 3.1: Jerarquía virtual en una red de sensores Este tipo de protocolos es adecuado para aplicaciones que requieren un tráfico periódico, donde todos los sensores se encuentran sensando el ambiente a una tasa de tiempo fija, por lo que continuamente se genera información a ser enviada a la estación base o sumidero. También existen algoritmos dentro de este paradigma especialmente diseñados para aplicaciones de detección de eventos [11]. El mantenimiento de la topología de red tiene un costo indirecto asociado, pero esta misma jerarquía permite reducir el tráfico de mensajes de control para el cálculo de rutas, lo que implica un ahorro de energía. Es recomendable utilizar esta técnica en aplicaciones en donde se despliega una gran cantidad de nodos y se requiere escalabilidad, ya que en general la jerarquía se construye dinámicamente, y puede extenderse o adaptarse. 58

59 CAPÍTULO 3. PROTOCOLOS DE RED El paradigma frecuentemente se ilustra presentando el algoritmo LEACH (Low Energy Adaptive Clustering Hierarchy), aunque haya sido propuesto hace ya 10 años LEACH Introducción LEACH es un protocolo que propone el uso de clústeres de nodos permitiendo distribuir el consumo de energía de manera más uniforme entre los sensores de la red. Se caracteriza por hacer rotar al azar el rol de cabecera de clúster. Dentro de un clúster, la cabecera coordina localmente la transmisión y fusión de datos para comprimir la información luego transmitida directamente a la estación base [37], reduciendo el ancho de banda requerido. La topología resultante se esquematiza en la figura 3.2 (obtenida de [4]). Figura 3.2: Topología de red en LEACH Modelo de red El modelo de red para el cual se desarrolla LEACH comprende cientos o miles de nodos sensores económicos y eficientes en términos de energía. Los nodos son homogéneos y se encuentran restringidos en cuanto a la duración de la batería. La calidad de de la información se mejora con la utilización de un gran número de nodos. Una estación base fija recibe la información sensada en lugares distantes. 59

60 3.2. ENCAMINAMIENTO JERÁRQUICO Fases de operación LEACH opera en rondas. Cada ronda consta de las siguientes cuatro fases: 1. Anuncio Al comienzo, cada clúster decide si se vuelve cabecera dependiendo del porcentaje de cabeceras que debe tener la red (definido a priori) y el número de veces que el nodo ya ha tenido el rol. Cada nodo que se elige a sí mismo como cabecera, hace broadcast del anuncio al resto de los nodos, utilizando CSMA. Los nodos que no son cabecera mantienen su radio encendida, y elijen su cabecera sobre la base de la fuerza de la señal recibida de los anuncios que escuchan (eligen la cabecera cuya señal se recibe con mayor intensidad, porque es la que estaría más cerca). 2. Armado del clúster Los nodos eligen la cabecera que requiere la menor energía de transmisión e informan a la cabecera seleccionada que se harán miembro del clúster usando el protocolo CSMA. 3. Planificación del canal Una vez que la cabecera recibe todos los mensajes de nodos miembros, crea un schedule TDMA asignando un período de tiempo de transmisión a cada nodo y lo informa a los nodos haciendo broadcast. 4. Transmisión de datos Cada nodo envía la información durante la franja de tiempo de transmisión que le fue asignada. Mientras el nodo no está transmitiendo, puede apagar su radio. Cuando el nodo cabecera recibe los datos de todos los nodos del clúster, puede combinarlos para comprimir la señal que se enviará a la estación base en una transmisión de alta energía. Luego de un determinado tiempo de transmisión, comienza una nueva ronda. Para minimizar el costo indirecto asociado al mantenimiento de la jerarquía, la fase de transmisión es mucho más larga que la de armado de clústeres. Rotación al azar de la cabecera de clúster A partir del análisis de primer orden del modelo de radio que se realiza en [37], para determinados parámetros de radio, los protocolos deben intentar reducir las distancias de transmisión, pero también la cantidad de operaciones de transmisión y recepción por cada mensaje. Si todos los nodos se comunican directamente con la estación base, se requerirá una gran cantidad de energía de transmisión. Por otro lado, si todos los nodos intentan transmitir a la más baja energía posible, es decir, al nodo 60

61 CAPÍTULO 3. PROTOCOLOS DE RED vecino más cercano, la suma de la energía consumida en cada salto puede terminar siendo mayor que la empleada en la transmisión directa. Cuando la energía de transmisión es del mismo orden que la de recepción, la transmisión directa es más eficiente a escala global. Pero debe aclararse que de utilizarse transmisión directa, los nodos más distantes de la estación base morirán primero (por ejemplo, en la figura 3.1, los nodos en el nivel n). Asimismo, con un encaminamiento de energía mínima, son los nodos más cercanos a la estación base los que se agotan primero, porque encaminan datos provenientes de todos los otros nodos de la red (en la figura 3.1, los nodos en el nivel 0). Sobre la base del análisis anterior, se propone agrupar nodos en clústeres, de manera que los nodos que no son cabecera no están muy distanciados de ella, y emplean menos energía de la necesaria para transmitir directamente a la estación base. Como el nodo que tiene rol de cabecera sí realiza transmisiones de alta energía a la base, LEACH introduce la rotación del rol al azar. Cada nodo decide si toma el rol de cabecera o no en la ronda n eligiendo un valor al azar entre 0 y 1. Si el valor es menor a un umbral U(n), el nodo se vuelve cabecera. En [37] se muestra que existe una porcentaje óptimo de cabeceras P, tal que se reduce al mínimo posible la energía disipada en la transmisión. Para LEACH, P es 0.05, es decir, en una ronda, el 5 % de los nodos es cabecera. Entonces, se necesitan al menos 1 P = 20 rondas para que todos los nodos tengan el rol de cabecera una vez. El umbral U(n) se define de manera que en la ronda 0 tiene valor P, y el valor se incrementa hasta llegar a 1 en la ronda 1 P 1. Pero una vez que el nodo tomó el rol, no podrá volver a tomarlo por 1 P rondas. Problemas que resuelve LEACH es un algoritmo distribuido y no requiere coordinación de la estación base ni conocimiento global de la topología de red. Es eficiente al distribuir el consumo de energía de manera uniforme a lo largo de la red, lo que incrementa la vida útil de la misma. Dado que las cabeceras pueden comprimir o fusionar los datos recibidos de los nodos locales, contribuye a reducir el tráfico global. Desventajas En su primera versión, la probabilidad de tomar el rol de cabecera no tiene en cuenta la energía residual en el nodo. Además, la comunicación de cabecera a estación base es de salto-único [11], lo cual en realidad es una limitación, ya que en áreas amplias puede que el alcance de la radio no sea suficiente. 61

62 3.3. ENCAMINAMIENTO GEOGRÁFICO 3.3. Encaminamiento geográfico Características A este paradigma pertenecen los algoritmos que utilizan una posición geográfica o coordenada, real o virtual, para encaminar datos hacia un punto en la red, seleccionando como siguiente nodo al vecino que más cerca esté del destino [36], minimizando la distancia restante que se debe recorrer [22]. En aplicaciones de recolección de datos por demanda, la coordenada permite difundir una consulta a una determinada región de la red, los nodos que no están en la región de interés descartan el mensaje, reduciendo así tráfico innecesario [11]. Este tipo de algoritmos permite utilizar tablas de encaminamiento más pequeñas, porque la coordenada geográfica tiene implícita la información sobre a qué nodo debe enviarse el mensaje para encaminarlo al destino. Figura 3.3: Encaminamiento geográfico En la figura 3.3 (obtenida de [22]) se esquematiza cómo el encaminamiento básico selecciona cada vez, de manera ávida, el nodo más cercano al punto de destino. En el ejemplo, el camino seleccionado desde la estación base comprende los nodos c, f, g y nodo destino. En la figura puede observarse una importante deficiencia: si se ignora la topología, la ruta seleccionada puede no ser la más corta en saltos [22]. Otro problema para el cual se han propuesto numerosas soluciones es el del camino sin salida. En la figura 3.4 (obtenida de [22]), se muestra que aunque la estación base tiene conectividad con el nodo destino, si se utiliza el algoritmo ávido, el mensaje llega al nodo situado a menor distancia restante, pero a partir de allí el obstáculo impide que el encaminamiento progrese, porque no hay conectividad con ningún otro nodo más cercano a la posición final. 62

63 CAPÍTULO 3. PROTOCOLOS DE RED Una solución intuitiva al problema del camino sin salida es utilizar la regla de la mano derecha para escapar del laberinto. Si se detecta que un mensaje no puede progresar, se lo encamina rodeando la cara definida por los nodos alrededor del obstáculo, usando la regla de la mano derecha. Aun así, no es trivial determinar a partir de qué momento conviene pasar del modo ávido al modo perimetral. Figura 3.4: Encaminamiento geográfico en presencia de obstáculos El sistema de localización es un requisito para poder realizar encaminamiento geográfico. En algunas taxonomías [36][11], dentro del paradigma se enumeran protocolos que asumen nodos con capacidades de posicionamiento muy variadas, donde el nodo: Es consciente de su posición y no se aclara qué sistema de localización utiliza Calcula una posición virtual dentro de un sistema de coordenadas Utiliza un sistema de GPS impreciso Utiliza un sistema de GPS de bajo consumo En la mayoría de los casos, los nodos sensores no cuentan con GPS, debido a sus limitaciones de recursos y energía inherentes [25][4], por lo que existe un conjunto de técnicas de triangulación que permiten al nodo conocer su posición. En [38] se propone un algoritmo de encaminamiento geográfico basado en coordenadas virtuales, que no requiere conocer la posición real de los nodos de la red. El encaminamiento geográfico es escalable, los nodos sólo deben mantener el estado de sus vecinos [38] (no global) y se soporta la comunicación any 63

64 3.3. ENCAMINAMIENTO GEOGRÁFICO to any sin ser necesario establecer la ruta. Este tipo de protocolos es adecuado para aplicaciones en donde la estación base inicia consultas dirigidas a un subconjunto de nodos, o una región en el espacio en particular[25] Por coordenadas virtuales Introducción El encaminamiento geográfico requiere que los nodos conozcan su posición. Como se ha mencionado anteriormente, existen muchas configuraciones en donde la información de posición no está disponible. El protocolo presentado en [38] hace foco en la asignación de coordenadas virtuales a los nodos de la red, para utilizar un esquema de encaminamiento geográfico estándar. No es necesario que estas coordenadas virtuales sean representaciones exactas de la geografía de los nodos, mientras reflejen la conectividad entre los nodos, en particular la conectividad local o entre nodos vecinos, como se explicará más adelante [38]. En el encaminamiento geográfico por coordenadas virtuales, los paquetes de red son encaminados de manera ávida. De la tabla de encaminamiento, siempre se reenvía al nodo que esté más cerca del destino, y que también está más cerca del destino que el nodo actual. Si el nodo actual es el más cercano al destino, y la capa superior determina que en efecto el paquete debe ser entregado al nodo actual, entonces se considera que el paquete ha llegado a destino. Pero si el paquete no ha llegado a destino y no puede progresar en forma ávida, se ha llegado a un punto sin salida, por lo que el nodo ejecuta el algoritmo expanding ring search o ERS hasta encontrar un nodo más cerca del destino. Modelo de red El modelo de red del trabajo original consta de miles de nodos, y una densidad media, donde cada nodo tiene 16 vecinos [38]. Fases de operación Arranque (Bootstrap) El arranque comprende 4 pasos. 1. Descubrimiento de nodos perímetro Dos nodos predeterminados como baliza (beacon nodes) inundan la red con mensajes HELLO. El mensaje contiene un contador de saltos que se incrementa en cada nodo que lo reenvía. Al recibirlo, cada nodo descubre su distancia en saltos a cada nodo baliza, siendo esta el menor valor de contador de entre todos los mensajes recibidos. Entonces, 64

65 CAPÍTULO 3. PROTOCOLOS DE RED una vez determinada la distancia a la baliza, los nodos deciden si son perimetrales utilizando el criterio del nodo de perímetro. Si el nodo es el más alejado del beacon, de entre todos sus vecinos a dos saltos, entonces está en el perímetro. 2. Vector perímetro Cada nodo perimetral inunda la red para permitir al resto de los nodos calcular su vector perímetro, es decir, la distancia a cada nodo perimetral. 3. Coordenadas normalizadas Cada nodo perímetro y baliza inunda la red con sus propios vectores perímetro. El resto de los nodos utilizan este vector para normalizar las coordenadas propias y de los nodos perímetros. Luego, los nodos perímetro proyectan las coordenadas en un circulo exterior. 4. Relajación de coordenadas Los nodos perímetro quedan ahora fijos, mientras todos los otros nodos ejecutan el algoritmo de ajuste de coordenadas. Régimen (Steady State) Una vez completo el arranque, uno de los nodos beacon inunda periódicamente la red, cada 50 segundos, con mensajes HELLO. De esta manera, los nodos descubren su distancia a cada beacon y cada nodo decide si es un nodo perimetral o no, utilizando el criterio del nodo de perímetro. Periódicamente también, cada nodo hace broadcast de la lista de sus vecinos a dos saltos, dentro del área de alcance de su radio. Si un nodo no recibe el latido de un vecino por tres intervalos, lo elimina de su lista de vecinos. Normalización de coordenadas En la normalización de coordenadas, todos los nodos calculan las coordenadas virtuales normalizadas de los nodos perímetro. El proceso se realiza en dos pasos. A partir de la recepción de los vectores perímetro, primero se triangulan coordenadas iniciales, y luego se normalizan con respecto a un eje de coordenadas definido por los nodos baliza. 1. Triangulación Al recibir los vectores perímetro, cada nodo perimetral conoce las distancias entre cada par de nodos perímetro. Dichos valores se utilizan en un algoritmo de triangulación para calcular las coordenadas iniciales. El algoritmo define las coordenadas de manera de minimizar la diferencia entre la distancia en saltos y la distancia euclídea entre cada nodo perimetral. 65

66 3.3. ENCAMINAMIENTO GEOGRÁFICO minimizar{ i,jɛperámetro (H(i, j) D(i, j)) 2 } H es la distancia en saltos entre el nodo i y el nodo j D es la distancia euclídea entre las coordenadas virtuales del nodo i y j Esto significa que las coordenadas virtuales deben conservar las relaciones de distancia entre los nodos. Figura 3.5: Nodos perímetro Para simplificar, por ejemplo, supongamos que sólo se descubren tres nodos de perímetro en una red como la de la figura 3.5, P1, P2 y P3, y sus respectivos vectores perímetro son los siguientes: P 1 = (0, 2, 3) P 2 = (2, 0, 3) P 3 = (3, 3, 0) Entonces, la triangulación trata de minimizar la siguiente suma: ( 2 (x 1 x 2 ) 2 + (y 1 y 2 ) 2 ) 2 + ( 3 (x 1 x 3 ) 2 + (y 1 y 3 ) 2 ) 2 + ( 3 (x 2 x 3 ) 2 + (y 2 y 3 ) 2 ) 2 Como los nodos que no están en el perímetro igual reciben el broadcast de vectores perímetro, utilizan el mismo algoritmo de triangulación 66

67 CAPÍTULO 3. PROTOCOLOS DE RED para calcular sus propias coordenadas iniciales normalizadas. 2. Normalización Cualquier las coordenadas de cualquier conjunto que minimice las suma de la sección anterior pueden ser rotadas y trasladadas, y aún así continuar satisfaciendo la condición. Por lo anterior, las coordenadas iniciales se normalizan de manera que todos los nodos lleguen a obtener los mismos valores. La normalización se realiza con respecto un nuevo eje de coordenadas, que se forma a partir del centro de gravedad de las posiciones de los nodos perímetro y baliza. Desde el centro de gravedad, la posición de una baliza define el eje de ordenadas, y la posición de la otra, el eje de abscisas. Si bien el cálculo no se muestra en [38], se deduce lo expuesto a continuación. Supongamos que tenemos las siguientes coordenadas iniciales para n nodos perímetro: P n = (x n, y n ) Entonces, el centro de gravedad, o mejor dicho, el centroide del conjunto finito de estos n puntos en R 2 es: (c, d) = (x n,y n) n n Luego, para normalizar las coordenadas (x, y) del nodo perímetro P 1, se calcula (x, y ), realizando un cambio de base, de la base canónica a la base definida por b 1 = (x b1, y b1 ) (c, d) y b 2y = (x b2, y b2 ) (c, d): (x b1, y b1 ) = coordenadas del nodo baliza 1 (x b2, y b2 ) = coordenadas del nodo baliza 2 ( B xb1 c x = b2 c y b1 d y b2 d ) (x, y) (c, d) = B ( x y Se lleva el centro de gravedad al origen, y las nuevas coordenadas se calculan para los ejes definidos por el centro de gravedad y las posiciones de los dos nodos baliza. 67 )

68 3.3. ENCAMINAMIENTO GEOGRÁFICO Luego de la triangulación, los nodos perímetro proyectan sus coordenadas en un círculo con origen en el centro de gravedad los nodos perímetro, y radio igual a la distancia promedio de los nodos perímetro al centro de gravedad calculado. Esta técnica permite mantener un sistema de coordenadas consistente en presencia de fallas en los nodos o movilidad [38]. Relajación de coordenadas En este paso los nodos que no están en el perímetro ajustan sus coordenadas virtuales, en unas pocas iteraciones de cálculo, partiendo de las coordenadas iniciales normalizadas, y las coordenadas de los nodos perímetro proyectadas en un círculo, cuyo radio es igual a la distancia promedio de estos nodos al centro de gravedad. Puede hacerse una analogía del proceso con la teoría de grafos embebidos, donde cada enlace (arista) representa una fuerza que trata de unir los nodos vecinos. x i = kɛv i x k V i y i = kɛv i y k V i V i es el conjunto de vecinos del nodo i V i es la cantidad de vecinos del nodo i En cada iteración, el nodo ordinario actualiza sus coordenadas virtuales, x e y, con el promedio del valor de coordenada de sus vecinos. Las coordenadas de los nodos perímetro quedan fijas. En [38] se muestra que luego de unas pocas iteraciones (del orden de 10), las coordenadas convergen a tasas de encaminamiento exitoso muy altas. Conceptualmente, la relajación produce que todos los nodos que no están en el perímetro, pero que tienen un nodo perímetro entre sus vecinos, se muevan hacia el nodo perímetro más cercano en términos de cantidad de saltos. Problemas que resuelve En presencia de obstáculos o agujeros, se encontró que el encaminamiento ávido tiene mejor desempeño al utilizar coordenadas virtuales, porque ellas reflejan mejor la conectividad de la red que las posiciones reales [38]. Por ejemplo, si bien en coordenadas geográficas reales un nodo puede estar muy cercano a otro, ambos pueden estar desconectados o fuera de alcance debido a la presencia de algún obstáculo, como puede verse en la figura 3.3. El algoritmo es escalable, porque luego de la fase de arranque, el costo de mantenimiento en cantidad de mensajes, si bien no es despreciable, es independiente del tamaño de la red. 68

69 CAPÍTULO 3. PROTOCOLOS DE RED Desventajas En [38] sugiere como desventaja que en régimen, el algoritmo tiene un costo indirecto asociado bastante alto debido a que todos los nodos inundan periódicamente la red Encaminamiento centrado en los datos Características En aplicaciones en las se instala una gran cantidad de nodos sensores, puede no ser posible asignar un identificador o dirección global, porque su mantenimiento genera un costo indirecto elevado. Sucede también que la información generada por sensores instalados en una misma región, puede contener redundancias que producen tráfico innecesario[11]. Así, este paradigma propone dos técnicas clave para mejorar las cuestiones expuestas: un esquema de direccionamiento basado en propiedades o atributos de la información y la posibilidad de agregar o fusionar datos eliminando redundancias. En esta clase de protocolos el encaminamiento se inicia con una consulta realizada por alguno de los nodos. Lo que se direcciona no es un nodo de la red, sino la información misma, a través de algún atributo que posea (por ejemplo, la ubicación geográfica en donde se generó), utilizando consultas [36]. Se han dado diferentes definiciones y nombres al encaminamiento centrado en datos [5][10][25], y en todas se lo caracteriza, de alguna manera, como basado en el contenido que se transmite. Un paquete se envía a un determinado nodo o es descartado, dependiendo de la información que contiene. Este tipo de protocolos es adecuado para aplicaciones de detección de eventos, como por ejemplo, detección de incendios forestales, contaminación. La técnica de direccionamiento por atributos no es apropiada para aplicaciones de monitoreo (reporte periódico), ya que en este tipo de aplicación se requiere un tráfico continuo de datos. Ello implica tener que consultar la misma información periódicamente, y la búsqueda de coincidencias entre la consulta y los datos disponibles acarrea un costo indirecto [11] que puede evitarse por diseño. El paradigma también se ha propuesto como adecuado para aplicaciones que requieren consultas orientadas a eventos, ya que las mismas sólo involucran una parte de la red a la vez, el tráfico es eventual por lo que conviene reducir al mínimo el costo de direccionamiento y mantenimiento de rutas. La utilización de agregación de datos permitiría en cierta manera minimizar la probabilidad de obtener falsas alarmas en la detección de eventos. 69

70 3.4. ENCAMINAMIENTO CENTRADO EN LOS DATOS EAD (Enery-Aware Data-Centric Routing) [39] es un algoritmo que pertenece a este grupo, ya que implementa la técnica de agregación de datos Energy-Aware Data-Centric Routing Introducción El protocolo se basa en que el mayor consumo de batería es realizado por el tranceptor, que consume casi lo mismo al enviar, recibir o en estado ocioso. Para ahorrar energía, el mismo debe simplemente apagarse. Sin embargo, un nodo dormido no puede retransmitir mensajes, por lo que no se pueden apagar todos los tranceptores al mismo tiempo. EAD propone construir una columna vertebral de nodos activos que permita realizar un encaminamiento consciente de la energía. Modelo de red El modelo de red para el que se plantea EAD está compuesto por cientos o miles de nodos sensores instalados al azar en el área de sensado, y una estación base o gateway que conecta la red con el exterior y se encuentra en los límites del área de instalación, de manera de ser alcanzada por algunos sensores [39]. Heurística de construcción de la columna El objetivo de la columna vertebral de nodos es que exista un camino activo que permita hacer llegar el dato desde el nodo sensor en donde se origina hasta el sumidero. Mientras un nodo forme parte de la columna, estará activo, con su radio encendida. Un nodo que no forme parte de la columna, puede apagarse periódicamente, y ahorrar energía. Entonces, es conveniente construir la columna vertebral con la menor cantidad de nodos activos posibles, o dicho de otro modo, construir con los nodos un árbol recubridor con el máximo número de nodos hoja y cuya raíz sea el nodo sumidero. Este problema es equivalente a construir un conjunto dominanteconexo que es NP-Completo, para lo que en [39] se propone una heurística distribuida que permite construir un árbol recubridor de nodos, teniendo en cuenta los niveles residuales de energía. En la figura 3.6 se esquematiza el algoritmo de cambio de estado del nodo EAD. La columna se construye mediante el envío de mensajes de control que contienen 4 valores: Estado Puede ser 0 (indefinido), 1 (nodo hoja) ó 2 (nodo de columna) 70

71 CAPÍTULO 3. PROTOCOLOS DE RED Figura 3.6: Máquina de estados del nodo EAD Nivel El nivel dentro del árbol cuya raíz es el nodo sumidero Padre El siguiente nodo, en el camino al sumidero Energía Energía residual que posee el nodo Al comenzar, todos los nodos se encuentran en estado 0 y el sumidero (la raíz) hace broadcast de la tupla (2, 0, NULL, ), donde indica que el emisor es el sumidero. Como se esquematiza en la figura 3.7, cuando un nodo v en estado indefinido recibe el mensaje (2, nivel u, padre u, E u ) de un nodo de columna u: 1. v se vuelve nodo hoja 2. sensa el canal hasta que esté ocioso 71

72 3.4. ENCAMINAMIENTO CENTRADO EN LOS DATOS 3. espera por T v 2 4. si el canal sigue ocioso, v hace broadcast del mensaje (1, nivel v + 1, u, E v ) Figura 3.7: De estado indefinido a estado hoja Cuando un nodo v en estado indefinido recibe el mensaje (1, nivel u, padre u, E u ) de un nodo hoja u: 1. v se vuelve nodo columna 2. sensa el canal hasta que esté ocioso 3. espera por T v 1 4. si el canal está todavía ocioso, v hace broadcast del mensaje (2, nivel u + 1, u, E v ) 5. todos los nodos vecinos de v en estado indefinido se vuelven nodos hoja 72

73 CAPÍTULO 3. PROTOCOLOS DE RED Mientras el nodo v espera T 1 o T 2, si el canal es ocupado, el nodo vuelve a sensar hasta que el canal esté ocioso. Cuando un nodo v hoja recibe un mensaje (2, nivel u, v, E w ) de un nodo w columna, lo que indica que v es padre de w: 1. v hace broadcast del mensaje (2, nivel v, padre v, E v ) apenas el canal está ocioso (sin esperar) El proceso continua hasta que todos los nodos definen su estado. Si un nodo no descubre ningún hijo, automáticamente se vuelve nodo columna. Los tiempos de espera, T1 v y T 2 v, se calculan localmente y de modo que los nodos con la mayor cantidad de energía residual hagan broadcast primero, por lo que se definen inversamente proporcional a E v. Encaminamiento centrado en datos EAD intenta reducir y descartar información redundante, utilizando agregación de datos en cada nodo que no es hoja a lo largo de la ruta. Cada nodo no-hoja combina los datos producidos en todos los nodos en el sub-árbol del cual es raíz, empleando alguna función de agregación (suma, promedio, media, máximo, etc.). De este modo, un paquete de información puede cambiar su contenido durante su recorrido desde un nodo hoja, pasando por nodos intermedios hasta alcanzar la raíz del árbol. Figura 3.8: Ejemplo de agregación de datos camino al sumidero Incluso dos o más paquetes pueden ser fusionados o agregados en un único paquete que sigue la ruta al sumidero, como puede observarse en el ejemplo de la figura 3.8 (obtenida de [39]), donde la función de agregación obtiene el máximo valor. 73

74 3.5. DISEMINACIÓN DE INTERÉS Fases de operación EAD opera en rondas. La ronda consta de las siguientes dos fases: 1. Inicialización Durante esta fase se ejecuta el algoritmo EAD y se construye la columna vertebral de la red. 2. Transmisión En esta fase se transmiten los datos al sumidero. En cada ronda, al ejecutarse la inicialización, los nodos que no estén activos ya no serán agregados, y los nodos que han quedado huérfanos son reincorporados al árbol. Problemas que resuelve EAD permite ahorrar energía apagando el tranceptor de los nodos que no pertenecen a la columna de transmisión, extendiendo la vida de la red. Asimismo, los nodos en columna agregan los datos recibidos de sus hojas, descartando información redundante para reducir tráfico innecesario. Desventajas Para redes de sensores de gran escala, la ejecución de EAD puede necesitar mucho tiempo para propagarse a toda la red. En [39] se proponen dos enfoques para limitar la ejecución del algoritmo a un subconjunto de nodos de la red. Sucede también que sólo los nodos más cercanos al sumidero serán elegidos como gateways, lo que eventualmente conduce al particionamiento de la red [40] Diseminación de interés Características Como ya se ha dicho, dentro del paradigma de protocolos centrados en datos, se clasifican aquellos que direccionan la información por atributos de la misma, en lugar de direccionar el dispositivo físico en donde fue generada. En esencia, la identidad del nodo que genera la información, o la del nodo que recolectará los datos es irrelevante [22]. El flujo de la información queda determinado por el interés específico del receptor en lugar de la dirección del emisor [41]. El paradigma que naturalmente se ajusta a ese patrón de interacción es el de publisher/subscriber, donde todos los nodos están conectados a un software bus, en el cual se publican datos notificados a aquellos nodos que 74

75 CAPÍTULO 3. PROTOCOLOS DE RED previamente se han suscripto como interesados en esos datos [22]. El flooding o inundación es una técnica utilizada a menudo para diseminar información, que se basa en un enfoque reactivo donde cada nodo que recibe un paquete lo reenvía a todos sus vecinos. Es económico en un sentido, no hay descubrimiento y mantenimiento de rutas, ya que se asume una topología de red plana [4]. La diseminación de interés es una técnica que surge a partir del análisis de las falencias del flooding. El desempeño de los algoritmos basados en inundación empeora rápidamente a medida que crece el tamaño de la red [4]. En la literatura se mencionan tres efectos no deseados [42]: Implosión de tráfico Como un nodo siempre envía el paquete recibido a sus vecinos, sin importar si alguno ya lo recibió, cuando un nodo recibe más de una copia de un paquete, ello significa que se han desperdiciado recursos en transmisiones redundantes. El problema se ilustra en la figura 3.9 (obtenida de [42]). En (1) el nodo a envía el paquete DATA1 a sus vecinos, b y c. En (2) el nodo b envía el paquete recibido DATA1 a su vecino, d. En (3) el nodo c también envía DATA1 al nodo d. El nodo d recibe dos veces el mismo paquete. Superposición Los nodos a menudo sensan áreas geográficas que se superponen. Cuando inundan a sus vecinos con los datos sensados, si dos nodos cercanos poseen un vecino común, éste puede recibir la información por duplicado. Como puede verse en la figura 3.10 (obtenida de [42]), tanto el nodo a como el nodo b sensan la zona 3, y por lo tanto, al inundar a su vecino común, el nodo c, éste recibe la información de la zona 3 por duplicado. Este problema es más difícil de resolver que la implosión, porque no solo depende de la topología de la red, sino también del mapeo del dato sensado a los nodos. Ceguera de recursos Los nodos no modifican su actividad según la cantidad de energía disponible que poseen, produciendo un uso poco eficiente de los recursos de la red. Así, para optimizar el tráfico, en varios protocolos propuestos tempranamente para redes de sensores [18][42], la diseminación se apoya en un direccionamiento basado en atributos. El tráfico se negocia por medio del intercambio de meta-datos, o descriptores de alto nivel de la información disponible [42]. La diseminación de interés es un caso especial de la diseminación. Permite implementar consultas a la red, donde por ejemplo, un sumidero inicia una petición que especifica la información de interés por 75

76 3.5. DISEMINACIÓN DE INTERÉS Figura 3.9: Implosión Figura 3.10: Superposición medio de atributos de la misma. La petición se propaga por la red y posteriormente cuando un nodo dispone de información que cumple con los atributos, los datos se encaminan hacia el sumidero que originó la consulta. En la literatura a menudo se ilustra el paradigma centrado en datos con dos enfoques populares para la diseminación de información, Directed Diffussion y SPIN[43]. Directed Diffussion disemina consultas de datos a demanda y está orientado a aplicaciones de consulta de datos frecuente. SPIN es un protocolo conducido por eventos, orientado a aplicaciones de consulta única (one-shot query) [22], y se describe en la siguiente sección [25]. En [44][45] también se menciona a Fireworks, un protocolo que disemina interés o consultas en forma probabilística. 76

77 CAPÍTULO 3. PROTOCOLOS DE RED SPIN Introducción Para poder superar las deficiencias del flooding clásico (implosión, superposición y ceguera de recursos), SPIN (Sensor Protocols for Information via Negotiation) incorpora dos técnicas innovadoras en su momento [42]: Negociación Para evitar la implosión y la superposición, los nodos negocian entre sí la transmisión de los datos, utilizando meta-datos para describir la información disponible. Adaptación a los recursos Cada nodo dispone de un administrador de recursos que mantiene registro del consumo de recursos. Cuando la energía es baja, el nodo se abstiene de participar de ciertas actividades, por ejemplo, el reenvío de información de terceros. SPIN es diseñado sobre la base de dos ideas clave. Primeramente, si bien intercambiar la información sensada puede ser una actividad costosa, intercambiar información sobre la información sensada no necesariamente lo es. En segundo lugar, los nodos deben adaptarse a cambios en su disponibilidad de recursos para extender su vida útil y la de la red. Sus autores establecen que se toman mejores decisiones de encaminamiento si se utilizan conocimientos sobre los datos de la aplicación y el estado de los recursos en cada nodo, además de la topología de red [42]. Modelo de red SPIN asume una topología de red plana, donde cualquier nodo sensor puede cumplir el rol de sumidero. Asimismo, cualquier nodo puede ser fuente de datos, es decir, genera información sensando el medio ambiente, y esta información debe ser diseminada a toda la red. El tamaño del dato que genera el nodo sensor es relativamente grande [22]. Operación Meta-datos sobre la información sensada SPIN no establece el formato que debe tener el meta-dato de la información generada. Sin embargo, se asume lo siguiente [42]: Si x es el meta-dato descriptor del dato X, entonces el tamaño de x en bytes es mucho menor que el tamaño de X Si dos datos son distinguibles, entonces sus meta-datos también lo son 77

78 3.5. DISEMINACIÓN DE INTERÉS De la misma manera, si dos datos son indistinguibles, entonces tienen la misma meta-representación (el mismo meta-dato) La ventaja de contar con una representación sucinta de los datos supera ampliamente el costo de almacenar, recuperar y mantener metadatos Son interesantes los dos ejemplos de meta-datos que se mencionan en [42]: Si los sensores cubren regiones geográficas que no se superponen, el meta-dato puede ser su identificador único Un sensor cámara podría llegar a usar como meta-dato una coordenada de tipo (x, y, P hi) donde (x, y) es una coordenada geográfica, y P hi es la orientación Negociación Los nodos SPIN se comunican utilizando 3 tipos de mensajes [46]: ADV Aviso o anuncio de nuevos datos. Cuando un nodo dispone de nueva información, puede notificarlo transmitiendo un mensaje ADV que contiene meta-datos. REQ Petición de datos. Se utiliza para indicar que se desea recibir la nueva información. DATA Mensaje de datos. Un mensaje DATA contiene la información propiamente dicha, encabezada por el meta-dato. En [46] se presentan 4 protocolos SPIN, el más básico de ellos SPIN-PP (SPIN point-to-point) permite ilustrar el modelo de negociación. SPIN-PP se diseña optimizado para una red teórica que utiliza un medio de transmisión punto a punto, asumiendo que es posible que dos nodos A y B se comuniquen exclusivamente uno con el otro, sin interferir la comunicación con otros nodos. Bajo esta hipótesis, el costo de comunicación es lineal (comunicarse con n vecinos, es n veces el costo de comunicarse con un vecino). SPIN-PP trabaja en tres etapas, cada una de las cuales corresponde a uno de los mensajes descriptos anteriormente: 78

79 CAPÍTULO 3. PROTOCOLOS DE RED Anuncio El protocolo comienza cuando un nodo anuncia que dispone de nuevos datos para diseminar, enviando un mensaje ADV que contiene el metadato de la información generada. Petición Cuando un nodo vecino recibe un mensaje ADV, determina si ya ha recibido el mensaje o si ha requerido la información que describe el meta-dato. En caso negativo, responde enviando un mensaje REQ pidiendo la información. Datos El protocolo se completa cuando el nodo que lo inició responde el mensaje REQ con un mensaje DATA que contiene la información propiamente dicha. La ronda de negociación se ilustra en las figuras 3.11, 3.12, 3.13, obtenidas del trabajo original [42]. Observando la figura 3.11, la negociación comienza en 1), donde el nodo a anuncia que dispone de nuevos datos. En 2) el nodo b solicita la transmisión de la información nueva. Luego, en la figura 3.12, en 3) el nodo a transmite la información propiamente dicha al nodo b, encabezada por el meta-dato. En 4) el nodo b anuncia a sus vecinos que dispone de nuevos datos. Por último, en la figura 3.13, en 5) los nodos c y e solicitan la transmisión de los nuevos datos de b. Finalmente en 6) El nodo b transmite los datos a los nodos que lo han solicitado. Figura 3.11: Negociación SPIN pasos 1 y 2 79

80 3.5. DISEMINACIÓN DE INTERÉS Figura 3.12: Negociación SPIN pasos 3 y 4 Figura 3.13: Negociación SPIN pasos 5 y 6 Es importante aclarar que el protocolo no requiere que todos los nodos respondan a todos los mensajes. Por ejemplo, un nodo no enviará un mensaje REQ si ya dispone de la información que se anuncia en el mensaje ADV recibido. 80

81 CAPÍTULO 3. PROTOCOLOS DE RED SPIN-EC SPIN-EC[46] agrega lógica de conservación de energía bastante simple a SPIN-PP. Cuando un nodo observa que su energía residual se aproxima a un umbral inferior de carga de batería, reduce su participación en el protocolo. Si el nodo recibe un dato nuevo, sólo iniciará la ronda de negociación si puede completar las tres etapas (anunciar y responder la petición). De la misma manera, si recibe un anuncio, sólo enviará la petición si tiene suficiente energía para recibir el dato. SPIN-BC SPIN-BC[46] es una versión de SPIN que agrega optimizaciones para cuando se utiliza un canal de transmisión compartido. Cuando un nodo envía un mensaje, éste es recibido por todos los nodos dentro del rango de alcance de la radio, sin importar el destino original de mensaje. Supresión de peticiones En SPIN-BC todos los nodos envían a la dirección de broadcast. Si algún nodo A dentro del rango del nodo B requiere el dato, bastaría con la petición de A para que todos los nodos en el rango reciban el dato. Si A direcciona la petición a B, todos los nodos en el rango sobreescuchan la petición. Entonces, un nodo C que también requiere el dato, se abstiene de enviar también su petición, es decir, suprime la petición. Así, cuando un nodo recibe un mensaje ADV, revisa si ya recibió o solicitó el dato. Si no lo hizo, establece un temporizador que expira en un tiempo al azar, elegido de manera uniforme en un intervalo predeterminado. Al expirar el temporizador el nodo envía un mensaje REQ a la dirección de broadcast especificando en la cabecera la dirección del nodo que originalmente anunció el dato. Cuando otros nodos reciben el mensaje REQ, cancelan sus propios temporizadores y suprimen su petición redundante. Otra diferencia importante es que el nodo que recibe peticiones de datos responderá la información a la dirección de broadcast una única vez. SPIN-RL SPIN-RL [46] es una versión confiable de SPIN-BC. Repetición de pedidos En SPIN-RL cada nodo mantiene registro de todos los anuncios recibidos. Si no recibe el dato transcurrido un cierto periodo de tiempo posterior al pedido enviado o suprimido, el nodo vuelve a pedir el dato. En la cabecera 81

82 3.6. CONSCIENCIA DE LA ENERGÍA del pedido indica como nodo origen cualquier vecino que haya anunciado el dato. Limite de reenvío de datos Si un nodo envía un dato, luego espera una cantidad de tiempo predefinida antes de volver a enviar el mismo dato. Si no hay confiabilidad en el enlace, y un anuncio se pierde, el protocolo no garantiza la completa difusión de los datos. Problemas que resuelve Una de las ventajas de SPIN es que los cambios en la topología de la red son localizados ya que un nodo sólo necesita conocer a sus vecinos [11]. Desventajas No todos los protocolos o heurísticas de diseminación son confiables. Por ejemplo, SPIN no garantiza la entrega de datos, ya que si un nodo interesado en determinados datos se encuentra muy lejos de la fuente, y los nodos intermedios no tienen el mismo interés, la información no será entregada [11] Consciencia de la energía Introducción Una de las limitaciones fundamentales de las redes de sensores es la capacidad de batería. En [14] se plantea que en las redes móviles y ad hoc los protocolos se diseñan con el objetivo de minimizar la cantidad de saltos que atraviesa un paquete. A diferencia de estas redes, en WSN es crucial minimizar el consumo de energía empleado para la tarea de encaminamiento, o resolver el problema del encaminamiento de menor energía [12] a partir de diferentes enfoques de diseño, que se manifiestan en las métricas de energía utilizadas. En los trabajos analizados, especialmente los que presentan una taxonomía de algoritmos, la técnica de dar consciencia de la energía al encaminamiento no aparece como un paradigma en sí misma, sino que, la eficiencia en términos de energía se busca utilizando técnicas adicionales. El empleo de métricas de energía en el encaminamiento no siempre aparece en el diseño de protocolos que buscan eficientizar el uso de energía. Por ejemplo, en el caso de LEACH, el rol de cabecera dentro de un cluster de nodos es el que mayor consumo de transmisión tiene, por reenviar a 82

83 CAPÍTULO 3. PROTOCOLOS DE RED la estación base, la cual no pertenece al cluster y está a mayor distancia que los nodos locales. Este rol es rotado sobre la base de la energía residual que el nodo posee. Aquéllos nodos que tengan mayor energía disponible, tendrán más oportunidades de ser cabecera y entonces, el tráfico fluirá a la estación base siempre a través de los nodos con mayor energía residual. En el caso de EAD, que como LEACH es un protocolo jerárquico, el nivel de energía residual se utiliza de manera que los nodos con más energía tengan mayor probabilidad de ser los nodos de la columna vertebral de transmisión que el protocolo construye. Nuevamente, la información fluye a través de los nodos que poseen mayor energía En cambio, con los protocolos de encaminamiento geográfico, al encaminar de manera ávida, la eficiencia se intenta lograr de manera más indirecta. Al buscar rutas que utilicen la menor cantidad de saltos, se disminuye la cantidad de reenvíos de un paquete, y con ello, la energía de transmisión utilizada Métricas de energía En [47] se presentan varias métricas de diseño que permiten construir rutas eficientes en términos de energía, y que aparecen muy frecuentemente en los protocolos para redes de sensores: 1. Minimizar la energía total de la ruta Con el enfoque de energía total mínima o MTE (Minimum Total Energy), se busca minimizar la energía de transmisión y recepción total consumida por un paquete para alcanzar el destino. Sucede que si todo el tráfico se encamina a través de las rutas más económicas, los nodos en esa ruta se agotan rápidamente, particionando la red [12], por lo que no se recomienda utilizar esta métrica en forma aislada. 2. Maximizar el tiempo hasta que la red se particiona Se determinan los nodos que al ser removidos causan particiones, y se trata de balancear la carga sobre los mismos. 3. Uniformizar el consumo de energía Se parte de la hipótesis de que todos los nodos son igualmente importantes, y se intenta asegurar que todos los nodos funcionen juntos la mayor cantidad de tiempo, que la carga sea balanceada entre todos. Por ejemplo, utilizando rutas compuestas por los nodos de mayor energía residual, evitando los nodos de menor capacidad restante, posponiendo al máximo posible la muerte del primer nodo. En [14] se aclara que aunque todos los nodos de la red funcionen en conjunto la mayor cantidad de tiempo posible, ello no implica que la utilización de la energía disponible será óptima. Una red densa podría operar 83

84 3.6. CONSCIENCIA DE LA ENERGÍA efectivamente durante más tiempo sin el total de los nodos desplegados inicialmente, recuperando información con los nodos que queden activos. 4. Minimizar el costo por paquete Se seleccionan las rutas de menor costo total, que equivale a la suma de los costos de cada enlace que se utiliza. Si se define adecuadamente el costo del enlace, puede utilizarse la métrica con diferentes objetivos. Por ejemplo, si el costo depende de la energía residual, puede lograrse aumentar el tiempo hasta el particionamiento de la red. Ahora bien, en el material de investigación analizado se hallaron varios algoritmos que utilizan alguna de las métricas mencionadas en la decisión de encaminamiento. Algunos de ellos [48][49] no fueron desarrollados para WSN, sino para redes ad hoc. Otros fueron diseñados específicamente para redes de sensores: SPIN (Sensor Protocols for Information via Negotiation) SPIN es una familia de protocolos [4] basados en la negociación para la diseminación de información. SPIN-EC es una variante que limita la participación del nodo en la secuencia de negociación según el nivel de energía que posee. Podría decirse que utiliza una métrica de tipo 4, ya que un nodo es reluctante a participar del encaminamiento si su energía está por debajo de un nivel umbral [42]. FA (Flow Augmentation) Modifica periódicamente el tráfico dirigido a un nodo según el costo del enlace. Un enlace menos costoso es aquel que requiere menos energía de transmisión y aquel en donde el nodo destino posee una mayor cantidad de energía residual [12]. Este costo es una métrica de tipos 1 y 4. MIR (Maximum Information Routing) Define el costo del enlace a partir de una métrica de cantidad de información que el nodo contribuye, penalizando el costo de aquellos nodos que más información generan, para evitar que sean incluidos frecuentemente en la ruta [14]. Este algoritmo utiliza una métrica de tipo 4. Keep Connected Define el costo del enlace a partir de la cantidad de componentes conexas que resultarían si el nodo agota su energía y muere. Aquel nodo 84

85 CAPÍTULO 3. PROTOCOLOS DE RED que al morir, produce una mayor cantidad de particiones es más importante y debe evitarse incluirlo en la ruta [13]. Este algoritmo utiliza una métrica de tipo 2. EBTA-WSN (Energy-Balanced Transmission Algorithm) Selecciona la ruta de menor costo total de transmisión, utilizando nodos cuya energía residual está por encima del promedio de la red [9], es decir, utiliza una métrica de tipos 1 y 4. Flow Augmentation, propuesto en [12] incluye en su diseño el objetivo de maximizar la vida útil de la red Flow Augmentation Introducción El algoritmo de aumentación de flujo propuesto en [12] es un encaminamiento de camino más corto, donde el costo del enlace es una combinación del consumo de energía de transmisión y recepción, y los niveles de energía residual en los dos nodos extremos. En el trabajo se calcula la solución óptima teórica al problema de maximizar la vida de la red, planteado como un problema de programación lineal, y atacando el problema equivalente de maximizar la cantidad de información transferida para una tasa de generación de datos constante. La solución óptima se compara con la heurística diseñada. La heurística consiste en calcular la ruta de menor costo. En lugar de utilizar como costo e ij la energía consumida cuando se transmite el paquete por el enlace ij, se utiliza 1 RE i e ij y e ij RE i, donde RE i es la energía residual del nodo i. Mediante el algoritmo de camino más corto Bellman-Ford distribuido, se halla la ruta de menor costo [11]. Modelo de red y tipo de aplicación El modelo de red asume un conjunto de nodos estáticos, desplegados al azar, y cuya energía es empleada mayormente en la transmisión y recepción de datos. Los nodos generan información que debe ser entregada a un conjunto de nodos gateway, siendo posiblemente encaminada a través de múltiples saltos. En [50] se analizan dos escenarios o tipos de aplicación. En un escenario se asume una tasa de generación de información constante, como sucede con el tipo de aplicación de reporte periódico de datos. En un segundo escenario, un objetivo atraviesa la región de despliegue haciendo que los sensores que lo detectan generen cierta cantidad de información por segundo, lo que corresponde al tipo de aplicación de seguimiento. 85

86 3.6. CONSCIENCIA DE LA ENERGÍA Costo del enlace Se elige el nombre Aumentación de Flujo porque el algoritmo aumenta o disminuye el tráfico dirigido a un nodo, según el costo actualizado del enlace a utilizar. Como el costo del enlace se define en función de la energía de transmisión, pero también en función de la energía residual del nodo a utilizar, el efecto es que al comienzo, cuando todos los nodos disponen de energía, se encamina minimizando la energía total consumida por la ruta. A medida que la energía residual disminuye, el algoritmo trata de evitar los nodos que dispongan de la menor cantidad de energía. El costo del enlace se define como: costo ij = (e ij t ) x1 RE i x2 IE i x 3 + (e ij r ) x1 RE j x2 IE j x 3 e t ij e r ij es la energía de transmisión consumida al utilizar el enlace (i,j) es la energía de recepción consumida al utilizar el enlace (i,j) IE i y IE j son las energías iniciales en los nodos i, j respectivamente RE i y RE j son las energías residuales x 1, x 2 y x 3 son factores de peso que permiten variar la manera en que se considera el nivel de energía residual IE i RE i IE j RE j Así, IE i RE i + IE j RE j se logra utilizando x 1 = 0 y x 2 = x 3 = 1. es el inverso de energía residual en i, relativa al total. es el inverso de energía residual en j, relativa al total. De esta manera, a menor energía residual, mayor es el costo del enlace. Fases de operación En [12] no se menciona una fase de arranque, sino únicamente un régimen que comprende varios pasos ejecutados en forma iterativa. En cada iteración: commodity: un conjunto de nodos fuente y nodos destino 1. Cada nodo origen calcula la ruta más económica para cada nodo destino que pertenece al commodity c 2. Si algún commodity no puede hallar una ruta a su destino, entonces parar. 86

87 CAPÍTULO 3. PROTOCOLOS DE RED 3. Aumentar el flujo en cada ruta de menor costo Las rutas de menor costo serán utilizadas hasta la próxima iteración. Como se asume una tasa constante de generación de información, puede conocerse la cantidad de información enviada en cada iteración 4. Actualizar los valores de energía residual Dado que se conoce la cantidad de información transmitida en cada iteración, puede conocerse también la cantidad de energía consumida y valor de energía residual resultante Aunque los resultados de simulaciones muestran que el algoritmo tiene un desempeño cercano al óptimo, la mayoría de las veces, tanto para tasas de generación de información fijas como para un escenario de detección de un objetivo en movimiento, el desempeño del algoritmo depende las rutas de generación de información. Figura 3.14: Desempeño no óptimo de FA Por ejemplo, consideremos la red de la figura 3.14 (obtenida de [12]), donde cada nodo posee cuatro unidades de energía, y se requiere una unidad de energía para transmitir un paquete, utilizando cualquier enlace. Si el nodo b genera cuatro paquetes de información (Qb = 4), el algoritmo los divide entre los nodos d y e, empleando dos unidades de energía en cada nodo. Luego, el nodo a genera ocho paquetes de información (Qa = 8), y el algoritmo los divide entre los nodos c y d, pero la energía en esos nodos ahora no es suficiente y quedan dos paquetes de información sin entregar. Fácilmente puede verse que si los paquetes de b sólo se encaminaran a través de e, podría entregarse toda la información generada. Desventajas En [12] se aclara que el protocolo no es escalable ni aplicable a grandes redes debido a las limitaciones inherentes al encaminamiento dirigido por tablas. Cabe señalar que esta restricción surge de la topología planteada, cada 87

88 3.6. CONSCIENCIA DE LA ENERGÍA nodo debe mantener las rutas más económicas actualizadas hacia múltiples destinos (gateways). De igual manera, si se requiere soportar la comunicación de peticiones de la estación base a un conjunto de nodos, cada nodo deberá mantener el costo de las rutas en tablas que crecerán en proporción a la densidad de la red. 88

89 Capítulo 4 Diseño de la simulación con Omnet Qué es Omnet++? Introducción Omnet++ es una herramienta de simulación de redes, de eventos discretos, modular y orientada a objetos. Su arquitectura genérica ha permitido que sea utilizada para estudiar problemas de diversos dominios, entre ellos, el modelado de redes de comunicación inalámbrica y protocolos. La herramienta no es un simulador de algo en particular, sino que provee la infraestructura para escribir simulaciones. Los modelos son ensamblados a partir de componentes reutilizables llamados módulos. Los módulos se comunican entre sí por medio del pasaje de mensajes a través de compuertas y conexiones, o directamente. Los módulos pueden tener parámetros para personalizar su comportamiento o parametrizar la topología del modelo de red. Al nivel más bajo de la jerarquía de módulos se tienen los módulos simples que encapsulan el comportamiento, se programan en C++ utilizando la librería de simulación. Las simulaciones pueden correrse en varios tipos de ambiente. El ambiente gráfico animado es útil para demostraciones y depuración. El ambiente de línea de comandos es mejor para ejecución por lotes. La herramienta completa es probada en los sistemas operativos más comunes (Linux, MAC OS/X y Windows), y también soporta simulaciones en paralelo distribuidas. Para este trabajo no se utilizó esta funcionalidad, y las simulaciones corrieron en una única computadora con Windows 7. Omnet++ es gratis para uso académico y sin fines de lucro [51], y OMNEST es su versión comercial. 89

90 4.1. QUÉ ES OMNET++? Conceptos de modelado Un modelo de Omnet++ consiste de módulos que se comunican a través del pasaje de mensajes. Los módulos que actúan se llaman módulos simples y se escriben en C++ utilizando la librería de simulación. A su vez, los módulos simples pueden agruparse en módulos compuestos, creando una jerarquía. El modelo completo se llama red y es un modelo compuesto. Los mensajes son enviados por conexiones que comunican los módulos, y pueden contener cualquier información. Típicamente, son enviados por módulos simples a través de compuertas. Las compuertas son las interfaces de entrada y salida de los módulos: los mensajes se envían a través de compuertas de salida y llegan por compuertas de entrada. Una compuerta de entrada y una compuerta de salida se enlazan por una conexión. Se pueden definir tipos de conexión con propiedades específicas (retardo de propagación, tasa de transferencia, tasa de errores de bit), modelando un canal Descripción de red La estructura del modelo de simulación se describe con el lenguaje NED (Network Description). Con este lenguaje se declaran módulos simples y módulos compuestos. Un módulo compuesto puede ser etiquetado como red, es decir, como modelo de simulación auto-contenido. Por ejemplo, se puede definir una red compuesta por nodos encaminadores, donde en cada nodo hay una aplicación corriendo, que genera paquetes de datos transmitidos a través de un canal (ver figura 4.1, obtenida del manual de la herramienta [51]). 90

91 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ Figura 4.1: Vista de diseño de una red Omnet++ El nodo es un módulo compuesto por los submódulos que modelan la aplicación y el encaminamiento (capa física, acceso al medio y capa de red). La figura 4.2 es la vista de diseño de un nodo MiXiM (ver sección 4.2.1). Figura 4.2: Diseño del nodo como módulo compuesto 91

92 4.1. QUÉ ES OMNET++? Conceptos de simulación Como ya se ha dicho, los módulos que actúan se llaman módulos simples y se escriben en C++ utilizando la librería de simulación. Los siguientes conceptos de simulación de eventos discretos permiten entender como se diseñan los módulos simples. Simulación de eventos discretos Un sistema de eventos discretos es aquel en el que los cambios de estados suceden en tiempo discreto, y el evento emplea cero cantidad de tiempo en suceder. Se asume que nada interesante sucede entre dos eventos consecutivos, es decir, no se produce ningún cambio de estado. Este tipo de sistema puede ser modelado usando simulación de eventos discretos. El tiempo en el que el evento ocurre se llama marca de tiempo y en Omnet++ se llama tiempo de llegada (ya que en la biblioteca de clases la palabra marca de tiempo esta reservada para un atributo asignable en la clase evento). El tiempo en el modelo se llama tiempo de simulación, tiempo de modelo o tiempo virtual en oposición al tiempo real, que se refiere al tiempo durante el cual el programa ha estado corriendo, o el tiempo de CPU que se refiere a cuánto tiempo de CPU ha consumido. Eventos En Omnet++ los eventos son representados por mensajes, es decir, por una instancia de la clase cmessage o una subclase de ésta. Los mensajes son enviados desde un módulo a otro, lo que significa que el lugar donde el evento ocurre es en el módulo destino, y el tiempo de modelo en el que ocurre es el tiempo de llegada del mensaje. Los eventos se consumen en el orden que da el tiempo de llegada. Si el tiempo de llegada es el mismo, el orden lo da la prioridad del mensaje. Si la prioridad es la misma, el orden es aleatorio. El ciclo de eventos La simulación de eventos discretos mantiene una lista de eventos futuros en una estructura comúnmente llamada FES (Future Event Set). En Omnet++ se implementa como un montículo binario, la estructura de datos más utilizada para este propósito. El simulador trabaja de acuerdo al pseudocódigo del algoritmo 1. El paso de inicialización construye las estructuras de datos que representan el modelo a simular, ejecuta el código de inicialización que se ha redefinido, e inserta eventos iniciales en la lista de eventos futuros. El bucle subsiguiente consume eventos de la lista y los procesa. Los eventos se 92

93 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ Algoritmo 1: Ciclo de evento 1 inicializar (construye el modelo e inserta eventos iniciales) 2 while FES no vacía Y simulación no completa do 3 obtener primer evento de FES 4 t := marca de tiempo de este evento 5 procesar evento (inserta nuevos eventos o borra eventos de FES) 6 end 7 terminar simulación (escribir resultados estadísticos, etc.) procesan en orden estricto dado por la marca de tiempo, para mantener la causalidad. Procesar eventos involucra la invocación de código provisto por el módulo creado. La simulación se detiene cuando no hay más eventos o cuando se alcanza el límite de tiempo de modelo o CPU. En ese momento, antes de terminar la ejecución, generalmente se graban estadísticas en archivos de salida. 93

94 4.1. QUÉ ES OMNET++? Ambiente de desarrollo El IDE (ambiente integrado de desarrollo) de Omnet++ está basado en la plataforma Eclipse [52], y la extiende con editores, vistas y asistentes. Este IDE provee una Perspectiva de Simulación (figura 4.3) para trabajar con los tipos de archivo de Omnet++, que deben ser incluidos en un proyecto de simulación. Figura 4.3: Perspectiva de Simulación de Omnet++ en Eclipse Definición de un módulo simple Como se ha dicho, la simulación ejecuta módulos simples. Un módulo simple es una clase C++ que debe extender de una clase módulo simple de base, y redefinir su comportamiento. La clase debe registrarse con Omnet++. Los módulos simples son instanciados por el kernel de simulación, por ello la firma del constructor debe tener una forma predefinida. Debe seguirse la siguiente convención de inicialización y finalización: constructor El constructor es invocado para crear el módulo, como parte de la 94

95 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ inicialización del módulo propiamente dicho. En ese momento, todo el modelo esta siendo construido por lo que no pueden hacerse muchas cosas desde el constructor. Por convención, en el constructor se asignan todas las variables puntero de la clase del módulo a NULL. inicializador El método initialize() es invocado justo antes de comenzar la ejecución de la simulación, cuando todo el modelo está listo. Por convención, en el método initialize() se realizan todas las tareas de inicialización: leer parámetros, inizalizar variables, reservar memoria, crear e inicializar timers. destructor El destructor siempre se llama al final, sin importar cómo terminó la simulación. Se puede asumir que, en ese momento, el modelo de simulación está casi destruido por completo. Por convención en el destructor se libera la memoria reservada, se eliminan los temporizadores creados (con la función cancelanddelete(msg)). finalizador El método finalize() sirve para grabar estadísticas. Solamente se invoca cuando la simulación ha terminado normalmente. Si la simulación se detiene por error, no será invocado. Por convención, en este método se graban estadísticas, y no se deben liberar objectos ni ejecutar tareas de limpieza. Para definir el comportamiento dinámico del módulo simple, se debe redefinir el método handlemessage, invocado con un mensaje como parámetro cada vez que el módulo recibe un mensaje. Se espera que el método procese el mensaje, y retorne. Durante la ejecución de este método no transcurre tiempo de simulación, sólo entre llamadas. La idea es que con cada evento (llegada de mensaje) se invoca una función definida en el módulo. Dentro de la función pueden utilizarse otras funciones predefinidas para enviar mensajes a otros módulos, programar un evento (enviar un mensaje a sí mismo), y borrar un evento programado. Los modelos de capas de protocolos tienden a compartir una estructura similar, porque reaccionan a tres tipos de eventos fundamentales: mensajes que llegan de capas superiores (la aplicación), mensajes que llegan de capas inferiores (la red) y varios temporizadores (auto-mensajes). Generalmente, surge el patrón de modelado que se ilustra en el fragmento de código 4.1: 95

96 4.1. QUÉ ES OMNET++? Fragmento de código 4.1: Modelo de protocolo de capa 1 class FooProtocol: public csimplemodule 2 { 3 protected: 4 //state variables 5 //... 6 virtual void processmsgfromhigherlayer(cmessage *packet); 7 virtual void processmsgfromlowerlayer(foopacket *packet); 8 virtual void processtimer(cmessage *timer); 9 virtual void initialize(); 10 virtual void handlemessage(cmessage *msg); 11 }; 96

97 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET Simulación Una vez que se han escrito los fuentes se compila el proyecto obteniendo un ejecutable. La simulación se realiza corriendo el ejecutable generado, y puede ser lanzada desde el IDE. Para ello, se define una configuración de ejecución, especificando algunos detalles como (ver figura 4.4): directorio de trabajo es el directorio base del cual dependen otras configuraciones ejecutable la ruta del ejecutable de la simulación, relativa al directorio del espacio de trabajo archivos de inicialización archivos que contienen conguraciones de parámetros modificables de la red y los módulos Figura 4.4: Configuración de ejecución en Omnet Herramientas de análisis Gráficos de secuencia Un archivo de log de eventos contiene la bitácora de mensajes enviados durante la simulación, y el detalle de eventos disparados por su envío o recepción, incluyendo mensajes enviados entre módulos y temporizadores. Se puede controlar qué módulos graban en el log, la cantidad de datos que se 97

98 4.1. QUÉ ES OMNET++? graban, el comienzo y fin de la grabación. Los gráficos de secuencia despliegan el archivo de log en forma gráfica, permitiendo visualizar la causalidad de los eventos. El log de eventos también se puede visualizar en forma tabular. Los eventos pueden ser filtrados por diferentes criterios, incluyendo por módulo, tipo de mensaje y por relación de causalidad. La figura 4.5 es un fragmento de secuencia de las simulaciones del protocolo SPIN. Figura 4.5: Gráfico de secuencia en Omnet++ Análisis de resultados Los resultados de la simulación son grabados como escalares, vectores e histogramas. Luego, pueden aplicarse métodos estadísticos para extraer información relevante y obtener una conclusión. En el proceso generalmente se filtran y transforman datos. Desde la versión 4 de Omnet++, la herramienta de análisis estadístico se ha integrado a Eclipse. Los filtros y transformaciones de datos se graban en archivos de análisis que permiten reproducir instantáneamente el post-proceso sobre resultados de nuevas corridas. Con el editor de análisis de Eclipse se navegan los vectores y escalares, se definen datasets a partir de expresiones de filtro, y estos se despliegan en gráficos 98

99 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ de barras, curvas, histogramas y de dispersión. En la figura 4.6 se muestra la solapa de navegación de resultados, donde se han filtrado los escalares para visualizar solamente la tasa de éxito de cada simulación. Luego, en la figura 4.7 se presenta la tasa de buen éxito en un gráfico de barras. Figura 4.6: Navegador de vectores y escalares en Omnet++ Figura 4.7: Gráfico de barras en Omnet++ 99

100 4.2. DISEÑO DE LA RED Desempeño Omnet++ ha sido comparado con NS2 y se han recogido métricas que indican que emplea menos memoria y un menor tiempo de ejecución [53][54]. También se ha evaluado la exactitud de los resultados obtenidos con Omnet++ en simulaciones de WSN[55], observándose que cuanto mayor es la frecuencia de muestreo, la cantidad de eventos que debe manejar el nodo aumenta fuertemente. A una frecuencia de muestreo de 5 ms, los resultados de las simulaciones muestran una distancia significativa respecto de los resultados obtenidos en un campo de pruebas real. A partir de una frecuencia de 50 ms, esta distancia es menos evidente, y a partir de los 500 ms es despreciable Diseño de la red MiXiM 2.1 MiXiM [56] es un framework de modelado para Omnet++, creado para redes inalámbricas fijas y móviles (redes inalámbricas de sensores, redes de área corporal, redes vehiculares, etc). Ofrece modelos detallados de propagación de ondas, estimación de interferencias, consumo del tranceptor, y protocolos de acceso al medio. Una red MiXiM básica se compone de los siguientes elementos: módulo de definición de la red módulo de definición del host módulo de interfaz de red, que define la placa de red del host la configuración de la capa física, modelo analógico (cálculo de atenuación) y decider (clasificación de ruido y cálculo de errores de bit). la configuración de la simulación La figura 4.2 en la sección es la vista de diseño de un nodo MiXiM. 1 network WSNRouting { 2 parameters: Fragmento de código 4.2: Definición de red 3 // x size of the area the nodes are in (in meters) 4 double 5 // y size of the area the nodes are in (in meters) 6 double 7 // z size of the area the nodes are in (in meters) 8 double 100

101 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET double numhosts; // total number of hosts in the network 11 submodules: 12 world: BaseWorldUtility { 13 parameters: 14 playgroundsizex = playgroundsizex; 15 playgroundsizey = playgroundsizey; 16 playgroundsizez = playgroundsizez; } 20 connectionmanager: ConnectionManager { 21 } node[numhosts]: Host802154_2400MHz { 24 parameters: 25 numhosts = numhosts; 26 } connections allowunconnected: 29 } En la definición de red 4.2 se incluyen parámetros de definición de las dimensiones del terreno, los submódulos de utilidad global y de administración de conexiones, y el tipo de host que compone la red. El administrador de conexiones verifica si dos hosts pueden oírse uno al otro y actualiza sus conexiones de acuerdo a eso. Si dos hosts están conectados significa que pueden recibir algo de cada uno, pero no significa que pueden entenderse. Si dos hosts no están conectados, están fuera del rango de interferencia y no recibirán ninguna señal uno del otro. Es muy importante diferenciar el rango de interferencia del modelo de comportamiento de la radio. El rango de interferencia define la distancia a partir de la cual un nodo alejado deja de existir para el tranceptor. El modelo analógico y el decider, junto con los parámetros del módulo de interfaz de red, determinan la intensidad de señal combinada y si un frame es recibido o no. El decider y los modelos analógicos se definen con un archivo xml que configura parámetros propios. En el módulo de interfaz se debe especificar qué archivo contiene esta configuración. Fragmento de código 4.3: Configuración del decider 1 <?xml version="1.0" encoding="utf-8"?> 2 <root> 3 <AnalogueModels> 4 <AnalogueModel type="breakpointpathlossmodel"> 5 <!-- IEEE path loss channel model --> 101

102 4.2. DISEÑO DE LA RED 6 <parameter name="alpha1" type="double" value="2"/> 7 <parameter name="l01" type="double" value="40.2"/> 8 <parameter name="breakpointdistance" type="double" value="8.0"/> 9 <parameter name="alpha2" type="double" value="3.3"/> 10 <parameter name="l02" type="double" value="58.8"/> 11 <parameter name="carrierfrequency" type="double" value="2.4e+9"/> 12 </AnalogueModel> 13 </AnalogueModels> 14 <Decider type="decider802154narrow"> 15 <!--Length of Start Frame Delimiter 16 (used to compute probability of successful 17 synchronization)--> 18 <parameter name="sfdlength" type="long" value="8"/> <!--minimum possible bit error rate (BER floor)--> 21 <parameter name="berlowerbound" type="double" value="1e-8"/> <!--modulation type--> 24 <parameter name="modulation" type="string" value="oqpsk16"/> </Decider> 27 </root> En el fragmento de código 4.3 es un ejemplo del contenido del archivo xml. En este ejemplo, se declara un modelo analógico de tipo BreakpointPathlossModel, que representa el modelo de atenuación definido en el estándar IEEE Como puede observarse, pueden declararse más de un modelo analógico. Luego se declara el tipo de decider, Decider802154Narrow, que clasifica la señal en bits o ruido, según el modelo BER definido también en el estándar IEEE En la tabla 4.1 se enumeran la mayoría de los módulos de MiXiM utilizados para modelar la red Modelo de dispositivo Los nodos de la red están representados por un módulo compuesto por varios submódulos: battery Permite definir una capacidad inicial de batería, y que la radio pueda consumir energía descontando de esa capacidad. nic Define el comportamiento de la interfaz de red. Es a su vez un módulo compuesto por el módulo de capa de enlace y el módulo de capa física. El modelo de interfaz utilizado es IEEE y está implementado por el módulo ic TI CC2420, descripto más adelante. 102

103 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ Módulo Propósito WSNRouting Definición de red para simulación de redes inalámbricas de sensores. Host MHz Definición de host que utiliza un tranceptor a 2.4 GHz. BatteryStats Módulo de recolección de estadísticas sobre batería. SimpleBattery Modelo simple de batería. BaseMobility Administrador de información básica de movilidad y posición. Éste módulo define un patrón de movilidad estático (sólo posición). Nic TI CC2420 Modelo de interfaz de red Texas Instruments CC 2420 IEEE CSMA. CSMA Enlace IEEE CSMA no ranurado. PhyLayerBattery Capa física que consume batería. Decider802154Narrow Decider para clasificación de señales de banda estrecha BreakPointPathlossModel Implementación del modelo de atenuación IEEE Cuadro 4.1: Módulos MiXiM utilizados net Define el protocolo de red que utiliza el dispositivo. En este trabajo se desarrollaron nuevos módulos de red para tres protocolos. app Define el comportamiento de la aplicación que utiliza los servicios de red. Se desarrollaron dos nuevos módulos para simular una aplicación de consulta. Interfaz de red IEEE El módulo Nic TI CC2420 implementa una interfaz de red Texas Instruments CC usando el protocolo de enlace CSMA especificado en el estándar IEEE El modelo CSMA fue validado independientemente en una red inalámbrica de sensores de prueba [57], aunque la validación fue realizada con una cantidad de nodos muy pequeña. Capa física El módulo de capa física permite configurar la sensibilidad y potencia de transmisión. El tranceptor del chip CC 2420 soporta los siguientes niveles 103

104 4.2. DISEÑO DE LA RED de potencia de transmisión según las especificaciones[58]: Figura 4.8: Potencia de transmisión del tranceptor TI CC2420 La máxima potencia de transmisión es 1 mw, y es la que se utilizó para la simulaciones. No se ha podido hallar el alcance de la radio en la hoja de datos del tranceptor [58]. En la documentación del nodo sensor MICAz de la compañía MEMSIC [24] se especifica que el alcance del tranceptor es de 75 a 100 m en exteriores, y de 20 a 30 m en interiores. Se configuró un valor de sensibilidad de -95 dbm [58]. El módulo de capa física utilizado calcula la atenuación utilizando el modelo establecido en la sección E.5.3 del estándar IEEE [31]. Esta capa utiliza el módulo decider Decider802154Narrow para filtrar las señales recibidas según su intensidad, calcular los errores de bits y clasificar las señales en ruido o frames. En la versión 2.1 de MiXiM este módulo ignora la sensibilidad del tranceptor, por lo que dos nodos que están a una distancia bastante mayor que la de la especificación (recibiendo una señal con una potencia mucho menor a la que el tranceptor es sensible), pueden conectarse en la simulación. Este comportamiento fue modificado para que la sensibilidad sea tenida en cuenta. Se aclara que para las simulaciones realizadas se deshabilitó el ruido térmico. Modelo de batería La batería es un módulo independiente, y define cuál es la capacidad inicial y el voltaje. La capa física de la interfaz Nic TI CC2420, PhyLayerBattery, descuenta energía de la batería según tipos de actividades definidas: dormir, recepción, transmisión, cambio de modo, y actividad del decider. El fragmento de código 4.4 muestra la definición de las posibles actividades en el 104

105 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ módulo. Fragmento de código 4.4: Actividades de capa física 1 class PhyLayerBattery : public PhyLayer{ 2 3 enum Activities { 4 SLEEP_ACCT=0, 5 RX_ACCT, 6 TX_ACCT, 7 SWITCHING_ACCT, 8 DECIDER_ACCT, 9 }; Topología Si bien en [59] se utilizan tres tipos de nodo, sensor, encaminador y sumidero; en el trabajo [60] sólo se observan dos tipos, sensor y sumidero. El modelo de red seleccionado para este trabajo está formado por un sumidero único y un conjunto de nodos sensores, todos estáticos. Se implementa con un único tipo de nodo sensor-encaminador, y uno de los nodos se configura como sumidero. Para ese nodo sumidero no se contabilizan paquetes ni consumo de energía. La selección del nodo sumidero se hace especificando su dirección de red, en el archivo de configuración de simulación, con la línea del fragmento de código 4.5: Fragmento de código 4.5: Configuración del nodo sumidero 1 **.node[*].net.sinkaddress = Tamaño del terreno y densidad de nodos En las simulaciones de [59] se modela el algoritmo encaminador de manera aislada, excluyendo el canal, por lo cual no se especifica un tamaño de terreno. En [60] tampoco se especifica el tamaño de la región cubierta. En omnet++ se pueden especificar las dimensiones en metros de un espacio tridimensional con forma de cubo, en la configuración de la simulación, con las líneas del fragmento de código 4.6: Fragmento de código 4.6: Dimensiones del terreno 105

106 4.2. DISEÑO DE LA RED 1 **.playgroundsizex = 500 m 2 **.playgroundsizey = 500 m 3 **.playgroundsizez = 10 m Para las simulaciones se utilizó un terreno de 500 m de lado. En [60], para probar M-SPIN se utilizó un tamaño de red de 10 a 60 nodos, y en [59] se probó SAFM en despliegues de 80 a 1280 nodos. El modelo de radio asume un alcance de m en terreno abierto. Con un alcance de 75 m de nodo a nodo, y un despliegue predefinido estilo grilla, con un nodo en cada vértice de cuadrados de 75 m de lado, la cantidad mínima de nodos sensores para cubrir un terreno de 500 metros de lado es de: = 44 nodos Pero este cálculo se aplica cuando se puede hacer un despliegue preciso. Cuando el despliegue es al azar, para cubrir un área cuadrada con alta probabilidad, la cantidad de nodos es la siguiente [61]: r = rango de transmisión de los nodos a = longitud de lado de un área cuadrada de a a n = ( a r )2 m = Θ(n ln n) cantidad de nodos para cubrir el área cuadrada Dimensiones del terreno (m 2 ) Cantidad de nodos Cuadro 4.2: Densidad mínima de nodos Para cubrir las dimensiones del terreno de prueba se necesitan 80 nodos Modelo de despliegue En ninguno de los trabajos [60][59] se especifica una posición física para el sumidero. En lugar de ello, se define con qué nodos sensores tiene conectividad. Para las simulaciones de este trabajo, los nodos sensores son desplegados al azar, excepto por el sumidero, cuya posición es cercana a algún punto en el perímetro del terreno definido. Las posiciones son generadas aleatoriamente por el simulador, y por ello, puede que algún nodo quede desconectado de la red y no participe de la consulta. 106

107 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET Modelo de aplicación El tipo de aplicación modelado es el de consulta iniciada por el sumidero, el patrón de tráfico es episódico y los requerimientos de latencia no son estrictos. Se definen dos módulos de aplicación, uno para el sumidero y otro para el resto de los nodos. La aplicación del sumidero envía un mensaje que contiene una tarea de sensado a diseminar entre los nodos. La aplicación de los nodos recibe una tarea de sensado proveniente del sumidero, y responde con los datos generados. La tarea de sensado contiene un número de mediciones a tomar y un período de tiempo entre cada una. Para las estadísticas, solo se contabilizarán los paquetes de datos generados enviados por los nodos, y se omiten los paquetes que envía el sumidero con la tarea. Los nodos que han quedado sin conexión a sumidero, no generan datos, porque nunca reciben la tarea. 107

108 4.3. MÉTRICAS DE EVALUACIÓN Resumen del diseño Característica Descripción Interfaz de red TI CC banda estrecha CS- MA no ranurado Topología 1 sumidero y 79 sensores Terreno 500 m 2 Despliegue al azar Modelo de aplicación Consulta Cuadro 4.3: Resumen de la red a simular 4.3. Métricas de evaluación Puede decirse que las métricas para evaluar protocolos estarán relacionadas con los requerimientos de la aplicación para la cual se diseñan. En [26] se sugiere que no todas las métricas son útiles para todos los tipos de aplicación. En algunos artículos se da una definición general de la métrica, sin detallar cómo se mide. Del análisis de los trabajos de generalización [26][27][4] y de las evaluaciones de protocolos [62][39][63][14], surge el conjunto de métricas enumerado en las siguientes secciones Vida útil del sistema Tiempo de vida Dadas las limitaciones de energía de los nodos de de las WSNs, se busca optimizar los protocolos para extender el tiempo que dura la red en operación, es decir, que puede proveer información del fenómeno sensado. Puede tomarse alguna de las siguientes medidas genéricas: a) Tiempo hasta que un nodo agota su energía T 1 [segundos] b) Tiempo hasta que la mitad de los nodos agotan su energía T n 2 [segundos] 108

109 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ c) Tiempo hasta que algún nodo queda aislado d) Tiempo hasta que algún nodo no posee ruta al sumidero e) Tiempo hasta que la red queda particionada T partition [segundos] O alguna medida específica de la aplicación: f) Tiempo hasta que algún requerimiento de calidad de servicio ya no puede garantizarse Esta métrica se define sobre la base de otra; es el tiempo hasta que una métrica de calidad de servicio supera o cae debajo de un umbral. En [64] se menciona que la cobertura puede utilizarse un parámetro para medir la calidad de servicio en aplicaciones de detección de eventos. Entonces, la vida útil podría también definirse, por ejemplo, como el tiempo hasta que la cobertura cae al 80 %. T Cov80 [segundos] Capacidad Podría definirse como el total de paquetes recibidos durante el tiempo de vida. App T Eficiencia Longitud de ruta promedio Es la cantidad de nodos que forman el camino entre el nodo origen y el nodo destinatario del dato. Puede relacionarse con la cantidad de transmisiones y energía necesaria para encaminar un paquete. Una manera de calcularlo es contar la cantidad de saltos totales y la cantidad total de paquetes recibidos. H avg = H Rec H = Cantidad de saltos totales Rec = Total de paquetes recibidos Total de paquetes Total de paquetes de encaminamiento que genera el protocolo. Sent = Total de paquetes enviados 109

110 4.3. MÉTRICAS DE EVALUACIÓN Transmisiones por consulta Da una medida del costo promedio en paquetes de una consulta inyectada en la red. Este tipo de métrica se utiliza en aplicaciones basadas en consulta. QT avg = Q = Cantidad total de consultas Sent = Total de paquetes enviados Q Sent Overhead de control Es la medida del costo indirecto asociado al encaminamiento. Existen varias métricas que muestran este costo. Control t = Total de paquetes de control enviados Data t = Total de paquetes de datos enviados Sent = Total de paquetes enviados Rec = Total de paquetes recibidos App r = Total de paquetes de aplicación entregados a) Cantidad promedio de paquetes de control por paquete de datos. Control t Data t b) Cantidad promedio de paquetes necesarios para encaminar un paquete. Sent Rec c) Cantidad promedio de paquetes del protocolo por paquete de aplicación entregado Uso de la energía Costo por paquete Sent App r La cantidad promedio de paquetes que pueden ser exitosamente entregados por unidad de energía. 110

111 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ eapp avg = Appr E [ 1 mw s ] E = Consumo total de energía [mws] App r = Total de paquetes de aplicación entregados Energía disipada La cantidad promedio de energía que se utiliza al detectar un evento. Es una medida más general, que incluiría otras actividades además del encaminamiento. eev avg = E Ev [mws] E = Consumo total de energía [mws] Ev = Total de eventos detectados Energía total Energía disipada total, suma del consumo total de cada nodo. E = Consumo total de energía [mws] Distribución de la energía Uniformidad de los niveles de energía de los nodos. E σ = Desviación de la energía residual Calidad de servicio Confiabilidad Una medida de la tasa de éxito en la transmisión de paquetes. Conf = Datar Data t (0..1) Data t = Total de paquetes de datos enviados Data r = Total de paquetes de datos recibidos 111

112 4.3. MÉTRICAS DE EVALUACIÓN Pérdidas Tasa de pérdidas, indica el porcentaje de paquetes de datos no recibidos por ningún nodo. Loss = 1 Conf (0..1) Latencia Tiempo promedio de recepción de paquetes (latency, end-to-end delay). Lat avg = Retardo promedio de fuente a sumidero [s,ms] Tiempo de reacción Retardo luego de algún cambio en la red. Cobertura Expresa qué fracción de la región a monitorear es alcanzada por los nodos que quedan activos. Cov = Sub R R (0..1) R = Espacio total monitoreado inicialmente Sub R = Espacio monitoreado con los nodos activos Escalabilidad Variación del comportamiento del protocolo al variar la densidad y cantidad de nodos. Podría pensarse como la variación de las métricas de interés en función de la cantidad de nodos Métricas no consideradas Conectividad Fracción de enlaces activos una vez que la red se particiona. En realidad, la métrica sugiere una medida de cobertura. 112

113 CAPÍTULO 4. DISEÑO DE LA SIMULACIÓN CON OMNET++ Particionamiento Cuántos nodos quedaron aislados. Esta métrica también sugiere una medida de cobertura Métricas seleccionadas Las siguientes métricas serán extraídas de los resultados de la simulación, basadas en la clasificación presentada al comienzo de la sección. Longitud de ruta Se extraerán estadísticas sobre la longitud de ruta en cantidad de saltos de los paquetes entregados al sumidero. H σ = Desviación de la longitud de ruta H max = Longitud máxima registrada H min = Longitud mínima registrada H mean = Longitud media registrada Total de paquetes Se contabilizará el total de paquetes de red enviados durante la simulación, excluyendo los que envía el sumidero. Sent = Total de paquetes de red enviados Overhead de control Se extraerá una métrica de gasto de control calculada de la siguiente manera: Overhead = Sent App r Total de paquetes de red enviados por cada paquete de aplicación recibido Costo por paquete La cantidad de paquetes de aplicación entregados por unidad de energía. eapp avg = Appr E t 113

114 4.3. MÉTRICAS DE EVALUACIÓN Distribución de la energía Para analizar la uniformidad de energía, puede analizarse en su lugar, la uniformidad del consumo de energía para la transmisión, excluyendo al sumidero. Eσ t = Desviación del consumo total de energía en transmisiones Emax t = Máximo consumo total de energía en transmisiones Emin t = Mínimo consumo total de energía en transmisiones Emean t = Media del consumo total de energía en transmisiones Energía total de transmisión Puede analizarse el consumo de energía desglosándolo por actividad. En particular, se extraerá el consumo total en transmisiones, excluyendo el sumidero. Confiabilidad E t = Energía total utilizada en transmisiones Se calculará la confiabilidad a nivel aplicación, es decir, contabilizando paquetes de aplicación. Latencia Conf = Appr App t Se extraerán estadísticas de latencia a nivel aplicación, registrando el retardo de todos los paquetes entregados en el sumidero: Lat σ = Desviación de latencia Lat min = Latencia mínima Lat max = Latencia máxima Lat mean = Latencia media 114

115 Capítulo 5 Implementación de módulos de red 5.1. Definiciones Como se presenta en [65], la relación de vecindad de los nodos define un grafo no dirigido (por ser los enlaces bidireccionales) G = (V, E), donde V es el conjunto de vértices y E V V es el conjunto de aristas. Los vértices corresponden a las entidades (o nodos) y una arista (o enlace) (x, y) existe sí y solo sí el nodo x puede transmitir al nodo y, y viceversa. Se denomina: n(g) al número de vértices o nodos m(g) al número de aristas y d(g) al diámetro de G, la máxima distancia entre dos nodos (para hallarlo, se determina el camino más corto entre cada par de vértices, y la mayor logitud de todos ellos es el diámetro N(x) el conjunto de vecinos de x, tal que si y ɛ N(x), entonces x puede transmitir a y, y viceversa Para el análisis de costo de los algoritmos se medirá la actividad de comunicación, contando la cantidad de transmisiones de mensajes realizadas, es decir, el costo en mensajes M. En las especificaciones se utilizaran los términos nodo y enlace únicamente, y se hará referencia al costo en mensajes como complejidad M. 115

116 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN 5.2. Diseminación de interés con M-SPIN Características M-SPIN [60] es una versión modificada de SPIN (ver 3.5.2) para transmitir información únicamente al nodo sumidero (en lugar de propagarla a la totalidad de la red), disminuyendo así la cantidad de paquetes necesarios y el consumo de energía. Como SPIN, M-SPIN es un protocolo orientado a aplicaciones de reporte de eventos. La modificación contribuye a que la información sea notificada y propagada en dirección al sumidero rápidamente. Para ello, se agrega una etapa previa a las rondas de negociación de información de SPIN, donde se asigna la distancia al sumidero, quedando la red dividida en niveles, como puede observarse en la figura 5.1. Descubrimiento de distancia En esta etapa, se mide la distancia en saltos al sumidero. Inicialmente el sumidero hace broadcast de un paquete STARTUP, que contiene la tupla (tipo, id, distancia): tipo es el tipo de mensaje id es el identificador del nodo emisor distancia es la distancia en saltos al nodo sumidero, el valor inicial es 1 Cuando un nodo recibe el paquete STARTUP, se asigna la distancia que trae el paquete, incrementa la distancia del paquete en 1 y vuelve a hacer broadcast del paquete. Si un nodo recibe múltiples paquetes STARTUP, se asigna la menor distancia recibida, y cada vez que actualiza su distancia, retransmite el paquete con la distancia incrementada en 1. En la figura 5.1 (obtenida de [60]), los enlaces que unen los nodos que han quedado a una misma distancia del sumidero, no serán utilizados para peticiones y transmisiones de datos, porque siempre se encamina hacia un nodo de menor distancia. Observar que si el nodo que está a distancia 4 genera datos, ambos nodos a distancia 3 solicitarán la información. El dato del nodo a distancia 4 será posiblemente encaminado a través de ambos nodos a distancia

117 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Figura 5.1: Etapa de descubrimiento de distancia al sumidero Negociación, petición y transmisión de datos La negociación es similar a la que realiza SPIN-BC, descripto en la sección El nodo que genera el dato lo notifica haciendo broadcast de un paquete ADV. Al recibirlo, cada nodo verifica si ya ha recibido o requerido el dato, y también si está a menor distancia del sumidero que el nodo que envió el ADV. Sólo si está a menor distancia, el nodo hará la petición del dato, enviando un paquete REQ. La transmisión de datos ocurre de la misma manera que en SPIN-BC. Cuando el nodo que generó el dato recibe el paquete REQ, envía el paquete DATA inmediatamente con la información solicitada. Al recibir el dato, el nodo que lo pidió recomienza la negociación, notificando a sus vecinos con un paquete ADV con la distancia modificada. El proceso continúa hasta que el sumidero recibe los datos. Evaluación En la evaluación original del protocolo se utilizaron las siguientes métricas: Métrica ADV E Descripción Cantidad total de paquetes ADV transferidos para que un evento alcance el nodo sumidero. Consumo total de energía al variar la cantidad de nodos. Cuadro 5.1: Métricas de M-SPIN Se utilizó una tamaño de red mínimo de 10 nodos y un máximo de 60. En el trabajo [60] se presenta como problema principal de M-SPIN el agotamiento de la energía en los nodos más cercanos al sumidero. 117

118 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN Especificaciones SPIN-PP Valores de estado S = {INITIATOR, IDLE, DIFFUSE, GATHER, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } Tipos de mensaje ADV, REQ, DATA Variables countadv BL = Bidirectional Links El grafo que definen los enlaces es no dirigido. TR = Total Reliability No han habido fallas ni las habrá. CN = Connectivity El grafo es fuertemente conexo. De cada nodo es posible alcanzar a cualquier otro nodo. UI = Unique Initiator Sólo una entidad comienza el algoritmo. El nodo en estado INITIATOR posee un nuevo dato para encaminar y comienza la negociación anunciando el dato a todos sus vecinos, enviando un paquete ADV a cada uno. Entonces pasa al estado DIFFUSE. INITIATOR Spontaneously begin send(adv) to N(x); countadv := N(x) ; 118

119 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED end become DIFFUSE; Al comenzar, el resto de los nodos se encuentra en estado IDLE. En este estado, cuando el nodo recibe un paquete ADV que anuncia un nuevo dato, envía un paquete REQ para solicitar el dato al nodo que lo anunció. Luego pasa al estado GATHER. IDLE Receiving(ADV) begin send REQ to sender; countadv := N(x) 1; become GATHER; end En estado DIFFUSE, el nodo se encuentra a la espera de peticiones por el dato que ha anunciado. Cuando recibe un paquete REQ de petición, responde con los datos solicitados al nodo que lo emitió. Si recibe un paquete ADV, decrementa un contador que permite determinar cuando todos los nodos vecinos ya poseen el dato, momento en el cual pasa al estado de terminación local DONE. DIFFUSE Receiving(REQ) begin send DATA to sender; end Receiving(ADV) begin counter ; if counter = 0 then become DONE; endif end 119

120 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN En estado GATHER el nodo se encuentra negociando el dato que ha solicitado. Si recibe un paquete DATA, envía un paquete ADV a cada vecino menos el nodo del cual recibió información, anunciando el nuevo dato que posee y pasa al estado DIFFUSE. Si recibe un paquete ADV, decrementa un contador que permitirá determinar cuando todos los nodos vecinos ya poseen el dato. GATHER Receiving(DATA) begin Cache(DATA) send ADV to N(x) - {sender}; become DIFFUSE; end Receiving(ADV) begin counter ; end SPIN-BC Valores de estado S = {INITIATOR, IDLE, WAIT, DIFFUSE, GATHER, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } Tipos de mensaje ADV, REQ, DATA Variables {countadv} El nodo en estado INITIATOR posee un nuevo dato para encaminar y comienza la negociación anunciando el dato a todos sus vecinos, enviando un paquete ADV por broadcast. Entonces pasa al estado DIFFUSE. 120

121 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED INITIATOR Spontaneously begin send(adv) to N(x); countadv := N(x) ; become DIFFUSE; end Al comenzar, el resto de los nodos se encuentra en estado IDLE. En este estado, cuando el nodo escucha un paquete ADV, inicia la alarma de supresión de petición, que expira en un tiempo al azar, y pasa al estado WAIT. IDLE Receiving(ADV) begin set alarm := c(x) + u(i) source := sender; countadv := N(x) 1; become WAIT; end En el estado WAIT, el nodo se encuentra esperando oir una petición por el mismo dato en negociación, para suprimir la suya. En este estado, si la alarma de supresión expira, el nodo envía una petición por broadcast, especificando de qué nodo recibió el anuncio. Luego pasa al estado GATHER. Si antes de expirar la alarma, recibe un paquete REQ, el nodo cancela la alarma suprimiendo su petición y pasa al estado GATHER. Asimismo, si antes de expirar la alarma recibe el paquete DATA, cancela la alarma suprimiendo su petición, anuncia el nuevo dato por broadcast y pasa al estado DIFFUSE. Si en el estado WAIT recibe un paquete ADV, decrementa un contador que permite detectar que todos los vecinos ya poseen el dato. WAIT When c(x) = alarm begin REQ.source = source; send REQ to N(x); 121

122 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN become GATHER; end Receiving(REQ) begin //Si escucha un pedido por el mismo dato if source = REQ.source then unset alarm; //Suprime la petición become GATHER; endif end Receiving(DATA) begin Cache(DATA); unset alarm; //Suprime la petición send ADV to N(x); become DIFFUSE; end Receiving(ADV) begin counter ; end En el estado DIFFUSE, el nodo se encuentra a la espera de peticiones por el dato que anunció. Si escucha una petición que especifica que el origen del anuncio fue él mismo, responde por broadcast un paquete DATA con los datos y pasa al estado DONE, ya que SPIN-BC sólo envía el dato una vez. Si recibe un paquete ADV, decrementa un contador que permite detectar cuando todos los vecinos ya poseen el dato anunciado. DIFFUSE Receiving(REQ) begin //El pedido debe ser para este nodo if REQ.source = x then send DATA to N(x); become DONE; endif end 122

123 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Receiving(ADV) begin counter ; if counter = 0 then become DONE; endif end En estado GATHER, el nodo se encuentra negociando el dato que no posee. Si escucha el paquete DATA, anuncia por broadcast el nuevo dato a sus vecinos y pasa al estado DIFFUSE. Si escucha un paquete ADV, decrementa un contador que permite detectar cuando todos sus vecinos ya poseen el dato. GATHER Receiving(DATA) begin Cache(DATA) send ADV to N(x); become DIFFUSE; end Receiving(ADV) begin counter ; end M-SPIN Distancia Según descripto en [60]. Valores de estado S = {INITIATOR, IDLE, ITERATE, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } 123

124 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN Tipos de mensaje {STARTUP, ACK} Variables {countack, parent} El nodo sumidero o iniciador comienza el algoritmo enviando por broadcast un paquete STARTUP con valor de distancia 0 a todos sus vecinos. Luego, contabiliza paquetes ACK. Cuando ha recibido un ACK de cada vecino, pasa al estado DONE de terminación local. En ese momento se alcanzó la convergencia. INITIATOR Spontaneously begin STARTUP.hop := 0; send STARTUP to N(x); countack := N(x) ; end Receiving(ACK) begin countack ; if countack = 0 then become DONE; endif end Receiving(STARTUP) begin send ACK to sender; end Al comenzar, el resto de los nodos se encuentra en estado IDLE. Cuando el nodo escucha el primer paquete STARTUP, se asigna la distancia del paquete, toma al emisor como nodo padre y transmite por broadcast un nuevo paquete STARUP a sus vecinos, que contiene su distancia incrementada en 1. Luego pasa al estado ITERATE. IDLE 124

125 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Receiving(STARTUP) //Recibe el primer STARTUP begin distance := STARTUP.hop; parent := sender; countack := N(x) ; STARTUP.hop++; send STARTUP to N(x); become ITERATE; end En el estado ITERATE, si el nodo recibe un paquete STARTUP que contiene una distancia menor al sumidero, actualiza su distancia a ese valor, y envía por broadcast un nuevo paquete STARTUP con su distancia incrementada en 1. Si el nodo recibe un ACK, decrementa un contador que permite detectar cuando todos sus vecinos menos el padre han alcanzado la convergencia. En ese momento, envía su propio ACK al nodo que marcó como padre. ITERATE Receiving(STARTUP) begin send ACK to sender; if distance > STARTUP.hop then distance := STARTUP.hop; countack += N(x) ; STARTUP.hop++; send STARTUP to N(x); endif end Receiving(ACK) begin countack ; if countack = 0 then send ACK to parent; become DONE; endif end 125

126 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN Como se explica en la sección 8.1 de [66], para detectar la terminación local se debe introducir el acuse de recibo. El sumidero, con el rol de iniciador, envía un paquete STARTUP a todos sus vecinos. Cuando un nodo x en estado IDLE recibe el primer STARTUP, actualiza su distancia al sumidero, y define como padre al nodo emisor. Luego envía su nueva distancia a todos sus vecinos. Para todos los siguiente paquetes STARTUP que recibe, responde con un ACK. Si la distancia que contiene el paquete es menor que la que el nodo x tiene asignada actualmente, x actualiza su distancia, y vuelve a notificar a sus vecinos por broadcast con un paquete STARTUP. Por cada paquete STARTUP que x ha enviado, deberá recibir un ACK de cada vecino. Cuando x recibe todos los acuse de recibo pendientes, pasa al estado de terminación local en x. M-SPIN Negociación Según descripto en [60]. La negociación es muy similar a la de SPIN-BC, excepto por el comportamiento del nodo al recibir el paquete ADV. Si el anuncio proviene de un nodo más cercano al sumidero, no participa de la negociación. Valores de estado S = {INITIATOR, IDLE, DIFFUSE, GATHER, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } Tipos de mensaje {ADV, REQ, DATA} Al comenzar, el nodo que posee un nuevo dato lo anuncia por broadcast a sus vecinos. Luego pasa al estado DIFFUSE. INITIATOR Spontaneously begin send(adv) to N(x); become DIFFUSE; end 126

127 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED El resto de los nodos se encuentra en estado IDLE. Al escuchar un paquete de anuncio, el nodo inspecciona la distancia del emisor, y si es mayor que la propia, inicia la alarma de supresión de petición, pasando al estado WAIT. Si el emisor del ADV está a menor distancia del sumidero, el nodo pasa al estado DONE de terminación local, sin participar de la negociación. IDLE Receiving(ADV) begin if distance < ADV.hop then set alarm := c(x) + u(i) source := sender; become WAIT; else //Si no esta a menor distancia, //no participa become DONE; endif end En el estado WAIT, el nodo se encuentra negociando el dato. Si la alarma de supresión expira, el nodo envía la petición por broadcast, especificando el nodo origen del anuncio, y pasa al estado GATHER. Si antes de expirar la alarma escucha un paquete REQ, cancela la alarma suprimiendo su propia petición, y pasa al estado GATHER. Asimismo, si antes de expirar la alarma escucha el paquete DATA, cancela la alarma suprimiendo la petición, anuncia por broadcast el nuevo dato y pasa al estado DIFFUSE. WAIT When c(x) = alarm begin REQ.source = source; send REQ to N(x); become GATHER; end Receiving(REQ) begin //Si escucha un pedido por el mismo dato 127

128 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN if source = REQ.source then unset alarm; //Suprime la petición become GATHER; endif end Receiving(DATA) begin Cache(DATA); unset alarm; //Suprime la petición send ADV to N(x); become DIFFUSE; end En el estado DIFFUSE, el nodo se encuentra a la espera de peticiones por el dato que anunció. Si escucha un paquete REQ para sí mismo, responde enviando por broadcast el paquete DATA y pasa al estado DONE de terminación local. Si escucha un paquete ADV que proviene de un nodo más cercano al sumidero, pasa al estado DONE, asumiendo que no es necesario continuar con la negociación. DIFFUSE Receiving(REQ) begin //El pedido debe ser para este nodo if REQ.source = x then send DATA to N(x); become DONE; endif end Receiving(ADV) begin //Si un nodo más cerca del sumidero //anuncia el dato, ya no es necesario //continuar activo if ADV.hop < distance then become DONE; endif end 128

129 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED En el estado GATHER, el nodo se encuentra negociando el dato. Cuando escucha el paquete DATA esperado, anuncia por broadcast el nuevo dato y pasa al estado DIFFUSE. GATHER Receiving(DATA) begin Cache(DATA) send ADV to N(x); become DIFFUSE; end Complejidad M Como se define en la sección 5, la complejidad M es el costo en mensajes del algoritmo, es decir, la cantidad de transmisiones de mensajes necesarias para completar la ejecución del protocolo. Complejidad M de M-SPIN Distancia Se omite del análisis de M-SPIN Distancia, los mensajes ACK, por ser una construcción teórica que facilita el análisis. Los ACK no son mencionados en el trabajo original de M-SPIN [60]. Sean n el número de vértices o nodos de la red, y d el diámetro de la red (la mayor distancia entre dos nodos). Un nodo puede actualizar su distancia una cantidad máxima de veces equivalente a d, dado que hay d posibles valores de distancia al sumidero. Como cada vez que actualiza su distancia, transmite un mensaje STARTUP: M[M-SPIN D] n d n = número de vértices o nodos de la red d = diámetro de la red Dado que la máxima distancia que puede haber entre dos nodos de un grafo de n nodos es n 1, entonces d n 1 y la fórmula anterior puede expresarse como: M[M-SPIN D] n (n 1) = n 2 n n 2 Un análisis diferente puede hacerse, observando que M-SPIN Distancia tiene la misma forma que Iterated Construction (Bellman-Ford distribuido), donde todos los enlaces tienen el mismo costo (que es 1 salto). Asumiendo 129

130 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN un canal compartido, en cada iteración, el nodo x envía su nueva distancia por broadcast a sus vecinos, transmitiendo un mensaje STARTUP. Como se sabe que el protocolo converge a lo sumo en n 1 iteraciones [65]: M[M-SPIN D] n (n 1) = n 2 n n 2 n = número de vértices o nodos de la red d = diámetro de la red M[M-SPIN D] O(n 2 ) Complejidad M de M-SPIN Negociación En [42] se analiza el tiempo de convergencia, estableciendo que la longitud máxima de ruta que atraviesa un dato es d, que equivale al diámetro de la red. Escenario 1 Para negociar la información, cuando un nodo x genera un dato, transmite por broadcast un mensaje ADV anunciándolo. Si todos los nodos, menos el generador y el sumidero, están a la misma distancia, el nodo generador está a distancia 2, el sumidero a distancia 0, y el resto de los nodos a distancia 1. Entonces, d = 2. El generador anuncia el dato con un mensaje ADV, n 2 nodos peticionarán el dato con mensajes REQ, y el generador deberá responder las peticiones con mensajes DATA. Luego los n 2 nodos anunciarán el dato con mensajes ADV. El primer anuncio que reciba el sumidero iniciará su propia negociación, agregando un mensaje REQ y un DATA. ADV = 1 + n 2 REQ = n DAT A = n M[M-SPIN N] 3 (n 1) n = número de vértices o nodos de la red M[M-SPIN N] O(n) Escenario 2 Puede pensarse que se transmiten como mínimo 3 mensajes por cada salto que debe atravesarse. Suponiendo que el diámetro de G es el máximo posible, n 1, y el nodo más alejado del sumidero anuncia un dato, entonces se ejecutarán n 1 negociaciones de 3 mensajes cada una. M[M-SPIN N] 3 (n 1) n = número de vértices o nodos de la red 130

131 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED M[M-SPIN N] O(n) En ambos escenarios, todos los nodos participan de la negociación. En cualquier otro escenario, la cantidad de nodos que participan puede ser menor que n, por lo que la cantidad de negociaciones sería menor, y la cantidad de mensajes también. Entonces puede decirse que O(n) es el orden M de la cantidad de mensajes de negociación, y 3 (n 1) una cota superior Detalles de implementación Se implementó la familia de protocolos SPIN, SPIN-BC y SPIN-RL. El módulo SPIN implementa la secuencia de negociación básica. El módulo SPIN-BC tiene una secuencia de negociación diferente, aprovechando el canal compartido y suprimiendo peticiones, y SPIN-RL lo mejora con la repetición de peticiones y el límite de reenvíos. Por simplicidad, todos los protocolos de la familia almacenan los datos en una cache sin límite. M-SPIN se implementa extendiendo SPIN-RL, con la fase de asignación de distancia al sumidero, y la restricción de participar en la negociación sólo si la distancia al sumidero es menor que la del nodo anunciante. La jerarquía de clases para los protocolos SPIN desarrollados puede verse en la figura

132 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN Figura 5.2: Jerarquía de módulos de diseminación 132

133 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Registro de anuncios En SPIN-PP se procesan todos los anuncios recibidos, enviando peticiones y datos a una dirección específica. En SPIN-BC es necesario registrar cada anuncio recibido para poder enviar peticiones no suprimidas. Se utilizará un temporizador de petición por cada anuncio recibido, al expirar, se envía la petición. Si se escucha una petición de otro nodo por un dato cuyo anuncio se registró, se cancela el temporizador, suprimiendo la petición. Repetición de pedidos En SPIN-BC un nodo puede suprimir sus peticiones si escucha que otro nodo ha pedido el mismo dato. Dado que en un canal no ideal puede darse que al transmitir el dato anunciado, algún nodo que lo espera no lo reciba, en SPIN-RL cada nodo mantiene registro de todos los anuncios recibidos. Si no recibe el dato transcurrido un cierto periodo de tiempo posterior al pedido enviado o suprimido, el nodo vuelve a enviar la petición, indicando en la cabecera el nodo que originalmente anunció el dato. Se utilizará un temporizador de recepción del dato, que se programa a partir del momento en que se envía o suprime la petición. Cuando se suprime la petición, ello implica que se ha escuchado un pedido de otro nodo por el mismo dato, o se ha recibido el dato directamente. Al expirar el temporizador de recepción, se repite la petición sólo si el dato no está ya en la cache, y se vuelve a programar el temporizador de recepción para ese dato. Límite de reenvios En SPIN-RL, si un nodo envía un dato, luego se debe esperar una cantidad de tiempo predefinida antes de volver a enviar el mismo dato. Se utilizó un registro de envíos con marcas de tiempo, para controlar los reenvíos. Si se recibe un pedido por un dato, y todavía no ha transcurrido el tiempo de espera de reenvío, simplemente se ignora el pedido. De lo contrario, se responde el pedido actualizando la marca de tiempo a ese momento. Paquete M-SPIN En el fragmento de código 5.1 puede observarse la definición del paquete M-SPIN: 1 packet SPINPkt extends NetwPkt { 2 3 int hops; 4 int advsource; 5 int meta; Fragmento de código 5.1: Paquete M-SPIN 133

134 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN 6 int finaldestaddr; 7 int initialsrcaddr; 8 } Donde: hops es cantidad de saltos al sumidero advsource es la dirección del nodo que originalmente anunció el dato meta es el metadato del dato anunciado o solicitado finaldestaddr es la dirección del nodo destino final del paquete initialdestaddr es la dirección del nodo origen del paquete Se ha definido como longitud de cabecera un valor de 24 bits. El mismo valor se utilizará en todos los módulos de red. Ajuste de tiempos de espera Como M-SPIN extiende a SPIN-RL, existen varios tiempos de espera que pueden ser ajustados para mejorar el desempeño del protocolo: sendagainwait es el tiempo para enviar un dato nuevamente si ya se envió requestagainwait es el tiempo para volver a pedir un dato requestsuppresswait es el tiempo para esperar suprimir un pedido, es decir, el tiempo durante el cual se espera que otro nodo solicite el mismo dato, en cuyo caso la propia petición no se envía requesttimes cantidad de veces que se repite el pedido por un dato como máximo 134

135 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Se ha observado que si la espera es muy pequeña o muy grande, la tasa de éxito se empeora. Se realizó un lote de simulaciones de ajuste que resultó en los siguientes valores de mejor desempeño: sendagainwait 100 ms requestagainwait 100 ms requestsuppresswait 150 ms requesttimes Pseudocódigo Algoritmo 2: M-SPIN Procesar paquete de aplicación 1 agregar datos a cache 2 crear paquete ADV 3 entregar al enlace para transmisión broadcast Algoritmo 3: M-SPIN Procesar paquete STARTUP 1 if saltos del paquete < mi distancia then 2 asignar la distancia del paquete a mi distancia 3 incrementar la distancia del paquete 4 entregar al enlace para retransmisión por broadcast 5 else 6 descartar 7 end 135

136 5.2. DISEMINACIÓN DE INTERÉS CON M-SPIN Algoritmo 4: M-SPIN Procesar paquete ADV de anuncio 1 if el dato anunciado no está en cache Y no está siendo negociado then 2 if dirección final = broadcast Ó distancia del emisor > mi distancia then 3 programar temporizador de supresión de petición 4 else 5 descartar 6 end 7 else 8 descartar 9 end Algoritmo 5: M-SPIN Procesar paquete REQ de pedido 1 if origen de anuncio = mi dirección then 2 if pasó el tiempo mínimo entre reenvíos then 3 crear paquete de datos 4 entregar al enlace para transmisión por broadcast 5 else 6 descartar 7 end 8 else 9 if hay temporizador de supresión de pedido programado then 10 cancelar el temporizador 11 programar temporizador de repetición de pedido 12 else 13 descartar 14 end 15 end 136

137 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Algoritmo 6: M-SPIN Procesar paquete DATA de datos 1 if el dato está siendo negociado then 2 cancelar temporizador de repetición de pedido 3 agregar el dato a la cache 4 if dirección final = mi dirección Ó dirección final = broadcast then 5 entregar el dato a la aplicación 6 end 7 crear paquete anuncio 8 entregar al enlace para transmisión broadcast 9 else 10 descartar 11 end Algoritmo 7: M-SPIN Expira temporizador de repetición o supresión de pedido 1 if el dato no está ya en cache Y no se superó la cantidad de pedidos repetidos then 2 crear paquete de pedido 3 entregar al enlace para transmisión por broadcast 4 programar temporizador de repetición de pedido 5 end 137

138 5.3. CONSCIENCIA DE RECURSOS CON SAMF 5.3. Consciencia de recursos con SAMF Características En el trabajo que desarrolla Flow Augmentation, se mencionan como futuras direcciones de investigación [12]: Efectos de la densidad de nodos y variaciones de energía residual sobre el algoritmo Aplicación de la métrica de enlace a encaminamiento por demanda Consideración de cuestiones de la MAC Utilización de niveles discretos de energía residual Es importante tener en mente que este es un protocolo que requiere mantenimiento de tablas de encaminamiento. El costo del camino es la suma de costos de cada enlace y los caminos se calculan con cualquier algoritmo de camino más corto, como Bellman-Ford. En el trabajo de [12] no se tiene en cuenta la energía para calcular las rutas de menor costo ni de intercambio de mensajes de control. SAMF (Self-adapting Maximum Flow Routing) [59] es un protocolo más recientemente investigado que, de manera similar a Flow Augmentation, asigna costos de enlace relacionados a la energía residual, y estos costos son actualizados cada cierta cantidad de tiempo. En [59] se dice que en general hay dos fases de operación en una WSN. Una fase de diseminación, donde se difunde información de control para cambiar la tarea de sensado, y la recolección, donde se transmiten los datos a un sumidero o punto de recolección. SAMF encamina la máxima carga de trabajo sostenible dadas las restricciones de ancho de banda, energía y recursos, y se adapta dinámicamente cambios en estas restricciones. Se modela la red como un grafo dirigido, donde cada nodo es un vértice y los enlaces entre nodos son las aristas. Sean: e = Un enlace v = El nodo origen de e B(e) = El ancho de banda del enlace CP U(v) = El poder de cómputo en el nodo origen (velocidad de proceso, número de paquetes que puede procesar por unidad de tiempo) E(v, e) = La energía requerida para recibir o generar un paquete de datos y enviarlo a través del enlace P (v) = La energía en el nodo origen F (e) = Flujo en paquetes que atraviesa el enlace 138

139 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED C(e) = Capacidad del enlace (la máxima cantidad de paquetes que pueden enviarse por e en una unidad de tiempo) El modelo plantea una capacidad de enlace, limitada por el mínimo entre tres capacidades: F (e) <= C(e) = min{b(e), CP U(v), P (v) E(v,e) } La red entera entonces puede modelarse como una red de flujo [59]. Encaminamiento El encaminamiento implementa una estrategia ávida, siempre encamina paquetes por el camino al sumidero que tiene la máxima capacidad residual. Entonces, se dice que la capacidad residual es usada como métrica de encaminamiento. Más precisamente, el nodo elige el enlace que pertenece al camino de mayor capacidad residual entre todos los caminos que llevan al sumidero. El mejor enlace es el que pertenece al camino más corto, entre aquellos caminos de máxima capacidad residual. Cálculo de capacidad por época Para reducir el costo de calcular una y otra vez la capacidad residual de los caminos al sumidero, las métricas de encaminamiento se mantienen sin variación por un período de tiempo, la época, y se recalculan al comienzo de cada época. En este sentido, todos los paquetes procesados por un nodo en una determinada época, son encaminados por el mismo camino. Las capacidades residuales se calculan al final de la época, substrayendo de la capacidad nominal el costo de todos los paquetes encaminados en esa época. Luego, para el cálculo de la capacidad residual de cada camino (constraint), de cada enlace se mantienen los atributos enumerados en la tabla 5.2. Cada nodo, a su vez, tiene los atributos enumerados en la tabla

140 5.3. CONSCIENCIA DE RECURSOS CON SAMF Atributo residual capacity link use link capacity constraint path capacity path hop packet energy Descripción La cantidad de paquetes por unidad de tiempo que se pueden enviar por el enlace en la nueva época. Cantidad de paquetes enviados por el enlace. La cantidad de paquetes por unidad de tiempo que se pueden enviar por el enlace (ancho de banda). Capacidad en cantidad de paquetes en la época. Cuando se recibe un mensaje por el enlace, se asigna el mínimo entre constraint y la capacidad que asignó el nodo emisor al mensaje. Cuando se recibe un mensaje por el enlace, se asigna la cantidad de saltos que trae el mensaje, incrementada en uno. La cantidad de energía necesaria para transmitir un paquete. Cuadro 5.2: Atributos de cada enlace SAMF Atributo residual energy node power delta T energy use residual cpu packet cpu cpu capacity cpu use Descripción Se actualiza en cada época, sumando node power, y restando energy use. Es lo que el nodo pudo recargar en la época anterior. Tiempo que transcurre entre cada época. Acumula la energía utilizada en transmisiones durante una época. Incrementa cada vez la energía necesaria para transmitir un paquete. Se pone en 0 cada vez que comienza una nueva época. Cantidad de paquetes que se pueden procesar por unidad de tiempo para la nueva época. La cantidad de energía necesaria para procesar un paquete. Cantidad de paquetes que se pueden procesar por unidad de tiempo. Acumula la energía utilizada en procesamiento. Incrementa cada vez la energía necesaria para procesar un paquete. Se pone en 0 cada vez que comienza una nueva época. Cuadro 5.3: Atributos de cada nodo SAMF 140

141 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Cuando cambia la época, cada nodo vuelve a calcular la capacidad de cada enlace (constraint) para la nueva época. La energía residual del nodo suma la energía que el nodo haya podido cargar y resta el uso en la época anterior. La capacidad de un enlace (ancho de banda) para la época nueva se calcula como el mínimo entre: 1) transmisiones residuales del nodo: E r = Residual energy e P = Packet energy E rr ep Esto es, cuantos paquetes pueden transmitirse con la energía residual 2) proceso residual del nodo: CP U r = Residual CPU cpu p = Packet CPU CP U r cpu p Esto es, cuantos paquetes pueden procesarse con la CPU residual 3) transmisiones residuales del enlace: C r = Residual capacity C r T Cuantos paquetes pueden enviarse con el ancho de banda residual La intención es que si en la época anterior se excedió el uso de la capacidad asignada, la capacidad para la época que sigue será menor, intentando compensar y balancear el flujo. El sumidero dispara el intercambio de paquetes INTEREST al comienzo de cada época, que permiten ejecutar en la red el algoritmo Bellmand-Ford distribuido con iniciador único, para calcular los caminos de costo mínimo al sumidero (con las capacidades actualizadas) con complejidad de mensajes polinomial. El algoritmo pertenece a una clase de estrategias denominada distance vector. En cada iteración, la entidad envía su vector de distancia que contiene información de la ruta y el costo al sumidero. En [65] se dice que este es un enfoque costoso en complejidad M (cantidad de mensajes). 141

142 5.3. CONSCIENCIA DE RECURSOS CON SAMF Evaluación Para la evaluación se hizo foco en la escalabilidad del protocolo, evaluando la respuesta de las siguientes métricas en función de la cantidad de nodos: Métrica flujo máximo longitud de ruta deuda máxima interés Descripción Consumo total de energía al variar la cantidad de nodos. La cantidad promedio de saltos en el camino al sumidero. Es la máxima deuda de capacidad observada durante la simulación. Representa un uso de capacidad superior al asignado para alguna época, compensado en la siguiente. Cantidad total de paquetes INTEREST intercambiados por época. No se aclara si es el promedio de todas las épocas. Cuadro 5.4: Métricas de SAMF La evaluación se realizó con Omnet++, asumiendo un canal ideal (sin utilizar una pila completa de protocolos). Este trabajo es muy similar al de Flow Augmentation [12], en donde en cada época, el flujo hacia un nodo se aumenta o disminuye sobre la base de su energía residual, y la energía de transmisión y recepción necesarias para utilizar el enlace a ese nodo. SAMF innova asumiendo nodos que pueden cosechar energía, por lo que en cada época, la capacidad residual puede aumentar o disminuir. Además, incorpora la capacidad de procesamiento y el ancho de banda a la métrica de encaminamiento Especificaciones SAMF Capacidad A continuación se ha elaborado la especificación del algoritmo de cálculo de capacidad, según descripto en [59]. Se asume un canal ideal no compartido para este análisis. Valores de estado S = {INITIATOR, IDLE, ITERATE, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } 142

143 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Tipos de mensaje {INTEREST, ACK} Variables {countack, parent} Al comenzar, el sumidero o nodo iniciador envía el primer paquete IN- TEREST a todos su vecinos, con un valor inicial de capacidad muy alto, ya que en el sumidero los recursos no son acotados, y el identificador de época actual. Cuando el sumidero recibe un paquete ACK, decrementa un contador que permite detectar la terminación local, cuando llega a cero. Cuando recibe un paquete INTEREST, simplemente acusa su recibo respondiendo con un ACK al emisor. INITIATOR Spontaneously begin send(interest) to N(x); countack := N(x) ; end Receiving(ACK) begin countack ; if countack = 0 then become DONE; endif end Receiving(INTEREST) begin send(ack) to sender; end El resto de los nodos comienza en estado IDLE. En este estado, al recibir el primer paquete INTEREST, el nodo inspecciona el identificador de época, y si difiere de la conocida, actualiza su valor y recalcula las capacidades de enlace para la nueva época. Luego, actualiza la tabla de encaminamiento y establece al nodo emisor como su nodo padre. Entonces, determina la capacidad de la mejor ruta conocida (mayor capacidad, y menor cantidad de 143

144 5.3. CONSCIENCIA DE RECURSOS CON SAMF saltos a igual capacidad), y transmite un paquete INTEREST con la capacidad calculada a todos sus vecinos menos el padre. Finalmente pasa al estado ITERATE. IDLE Receiving(INTEREST) //Recibe el primer paquete begin // Nueva época if INTEREST.epoch!= epoch then Recompute contraints; epoch := INTEREST.epoch; endif Update routing table(interest); parent := sender; INTEREST.bestGate := Get best gate(); send(interest) to N(x); countack := N(x) ; become ITERATE; end En el estado ITERATE, si el nodo recibe un nuevo paquete INTER- EST, actualiza la tabla de encaminamiento con la capacidad que contiene el paquete, y determina si ha cambiado la mejor ruta conocida. En caso afirmativo, envía la nueva mayor capacidad a todos sus vecinos, incrementando la cantidad de ACK esperados. Si recibe un paquete ACK, decrementa el contador. Cuando el contador de ACK llega a cero, el nodo envía su propio ACK al padre y pasa al estado DONE de terminación local. ITERATE Receiving(INTEREST) begin send(ack) to sender; bestgateupdated := Update routing table(interest); if bestgateupdated = true then INTEREST.bestGate := Get best gate(); send(interest) to N(x); countack += N(x) ; endif end 144

145 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Receiving(ACK) begin countack ; if countack = 0 then send(ack) to parent; become DONE; endif end En SAMF, el establecimiento de las rutas de mayor capacidad se hace utilizando un algoritmo con la estructura de Bellman-Ford distribuido de origen único[59], también sugerido en Flow Augmentation[12]. Como se describe en la sección 8.1 de [66], para detectar la terminación del algoritmo se debe introducir el acuse de recibo de los mensajes que se envían con la mejor capacidad conocida. El sumidero, nodo iniciador, comienza el algoritmo enviando el paquete INTEREST conteniendo un valor de capacidad muy grande a los nodos vecinos. Cuando un nodo x recibe el paquete INTEREST por primera vez, define al emisor como su padre, y reenvía el paquete INTEREST con la mejor capacidad que conoce a sus propios vecino. Cuando el nodo x recibe nuevos paquetes INTEREST de sus vecinos, responde con ACK. Si algún paquete INTEREST de los recibidos proviene de una mejor ruta (contiene una capacidad mayor o igual pero con menor cantidad de saltos) que la que el nodo x conoce, éste actualiza su capacidad, y vuelve a emitir un paquete INTEREST con este nuevo valor, a todos sus vecinos. Una vez que el nodo x recibe los paquetes ACK de cada paquete INTEREST que envió, transmite su propio ACK al nodo padre, y pasa al estado terminal, alcanzándose la terminación local. SAMF Encaminar Especificación del algoritmo de encaminamiento de SAMF, según descripto en [59]. Valores de estado S = {INITIATOR, IDLE, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } 145

146 5.3. CONSCIENCIA DE RECURSOS CON SAMF Tipos de mensaje {DATA} El nodo iniciador es el que tiene un nuevo dato para encaminar. Comienza la ejecución del protocolo inspeccionando su tabla de encaminamiento y seleccionando la mejor ruta (mayor capacidad) al destino. Luego, envía el paquete de datos al siguiente nodo en la ruta y pasa al estado DONE de terminación local, dado que no se requiere alguna otra intervención. INITIATOR Spontaneously begin y := Next hop(data); send(data)to y; become DONE; end El resto de los nodos, comienzan en estado IDLE. Al recibir un paquete DATA, el nodo revisa su tabla de encaminamiento y selecciona la mejor ruta al destino (siempre el sumidero), y reenvía el paquete al siguiente nodo en la ruta. Luego pasa al estado DONE, ya que no se requiere otra intervención. IDLE Receiving(DATA) begin y := Next hop(data); send(data) to y; become DONE; end Cabe señalar que sólo los nodos a lo largo de la ruta participan en el encaminamiento Complejidad M Como se definió en la sección 5, la complejidad M es el costo en mensajes del algoritmo, es decir, la cantidad de transmisiones de mensajes necesarias para completar la ejecución del protocolo. 146

147 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Complejidad M de SAMF Capacidad SAMF Capacidad tiene el mismo comportamiento que el protocolo Iterated Construction (Bellman-Ford distribuido) presentado en [65], la tabla de encaminamiento se construye de forma iterativa. En cada iteración, cada nodo comunica su mejor capacidad al sumidero a todos sus vecinos y luego de recibir la mayor capacidad de sus vecinos, recalcula ese valor. Asumiendo un canal compartido, en cada iteración, el nodo x envía un mensaje por broadcast, y dado que el proceso converge en n - 1 iteraciones como máximo [65]: M[SAMF Capacidad] n (n 1) = n 2 n n 2 n = número de vértices o nodos de la red M[SAMF Capacidad] O(n 2 ) Complejidad M de SAMF Encaminar SAMF Encaminar se basa en las tablas construidas para la época corriente. La cantidad de saltos que pueden requerirse para que el paquete de datos llegue a destino está acotada por el diámetro máximo que puede poseer la red. M[SAMF Encaminar] d n 1 d = diámetro de la red M[SAMF Encaminar] O(n) Detalles de implementación Paquete SAMF En el fragmento de código 5.2 puede observarse la definición del paquete SAMF: 1 packet SAMFPkt extends NetwPkt { 2 int pathhops; 3 double pathcapacity; 4 long epochid; 5 int finaldestaddr; 6 int initialsrcaddr; 7 } Fragmento de código 5.2: Paquete SAMF 147

148 5.3. CONSCIENCIA DE RECURSOS CON SAMF A continuación se describe cada campo del paquete SAMF: pathhops es la cantidad de saltos de la mejor ruta conocida pathcapacity es la capacidad de la mejor ruta conocida epochid es la época actual finaldestaddr es la dirección del nodo destino final del paquete initialdestaddr es la dirección del nodo origen del paquete Se utilizará el mismo paquete para representar el mensaje INTEREST y DATA. Se le define como longitud de cabecera un valor de 24 bits. El mismo valor se utiliza para todos los paquetes utilizados en la simulación. Mantenimiento de rutas En SAMF[59] se utiliza una forma del algoritmo Bellman-Ford distribuido para el mantenimiento de los costos de las rutas, el mismo sugerido en el algoritmo FA (Flow Augmentation)[12], que también modela flujo de red. Con cada paquete INTEREST se recibe información que permite actualizar el costo del enlace. El paquete trae la capacidad de la ruta conocida por el nodo remoto, y la cantidad de saltos al sumidero. En SAMF, la capacidad de la ruta, es la menor de las capacidades de los enlaces que la componen. El costo de la ruta es inverso a la capacidad, cuanto más capacidad, menor costo. La librería de simulación provee una clase ctopology que permite extraer la topología de la red y calcular el camino más corto de un nodo a cualquier otro, pero la misma no puede utilizarse, porque utiliza como costo de ruta la suma de los costos de los enlaces. En el protocolo Flow Augmentation el costo de la ruta es la suma de los costos de los enlaces que la componen. Pero en SAMF, como se ha dicho, la capacidad de la ruta no es la suma de las capacidades de cada enlace, sino que se restringe a la menor de las capacidades de los enlaces que la componen. Entonces, en SAMF la tabla de encaminamiento se construye a medida que se reciben paquetes INTEREST 148

149 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED con estructuras de datos, sin utilizar ctopology. Diseño del módulo Para modelar el protocolo, se ha excluido del modelo la posibilidad de cosechar energía. La métrica de encaminamiento sólo tiene en cuenta la energía residual, y ésta siempre va en disminución. Se han excluido del cálculo de la métrica de capacidad, el ancho de banda del enlace y el poder de cómputo en el nodo, modelando una red de dispositivos homogéneos. En el SAMF original, al comienzo de cada época se define el crédito disponible de cpu, energía y ancho de banda de cada enlace. Durante la época, se registra el consumo de cpu, ancho de banda utilizado por el enlace y la energía utilizada. Al final de la época, si alguno ha excedido el crédito asignado, en la siguiente época el crédito será la capacidad nominal menos el exceso anterior, intentando balancear la carga en los enlaces y nodos. Para la implementación, la métrica se ha simplificado utilizando solamente la energía residual, con la hipótesis de que los nodos que más paquetes han encaminado durante una época, tendrán un nivel de energía residual menor al final de la época. Si su crédito se basa sólo en la energía residual, los nodos más cargados en una época dispondrán de menos capacidad para la época siguiente, encaminando una menor cantidad de paquetes. Asimismo, en el trabajo original se define la capacidad en cantidad de paquetes. Para este trabajo, a la capacidad dada por la energía residual se le da valores discretos múltiplos de 5, a partir de la carga de batería relativa que va de 0 a 100 %, siguiendo la sugerencia de [12]. Encaminamiento El encaminamiento de SAMF simplemente selecciona de la tabla, el enlace con la mejor capacidad al sumidero y reenvía el paquete Pseudocódigo A continuación, se detallan los algoritmos 8, 9, 10, 11, 12, 13 implementados en la clase C++ del protocolo. 149

150 5.3. CONSCIENCIA DE RECURSOS CON SAMF Algoritmo 8: SAMF Procesar paquete de aplicación 1 crear paquete de red 2 if la dirección destino = broadcast then 3 guardar paquete en cache de inundación 4 entregar al enlace para transmisión broadcast 5 else 6 buscar en la tabla la ruta de mejor capacidad al destino 7 entregar al enlace para transmisión al siguiente nodo 8 end Algoritmo 9: SAMF Procesar paquete INTEREST 1 if época del paquete época actual then 2 actualizar la época actual a la época del paquete 3 recalcular las restricciones en la tabla de enlace 4 end 5 obtener la ruta A, la mejor de la tabla 6 actualizar el enlace en la tabla con los datos del paquete 7 obtener la ruta B, la nueva mejor de la tabla 8 if ruta A ruta B then 9 crear paquete INTEREST con los datos de la nueva mejor ruta 10 entregar paquete INTEREST al enlace para transmisión por broadcast 11 end 150

151 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Algoritmo 10: SAMF Procesar paquete DATA 1 if cantidad de saltos del paquete > máxima cantidad de saltos then 2 descartar 3 else if el paquete es inundación then 4 if el paquete no está en la cache de inundación then 5 agregar a la cache de inundación 6 entregar al enlace para retransmisión broadcast 7 entregar a la capa de aplicación 8 else 9 descartar 10 end 11 else 12 if destino final = mi dirección then 13 entregar a la aplicación 14 else 15 buscar la ruta de mejor capacidad en tabla 16 entregar al enlace para retransmisión al siguiente nodo 17 end 18 end Algoritmo 11: SAMF Recalcular restricciones de enlace 1 for cada ruta en la tabla do 2 actualizar la restricción al valor de energía residual 3 end 151

152 5.3. CONSCIENCIA DE RECURSOS CON SAMF Algoritmo 12: SAMF Actualizar enlace en la tabla 1 asignar la capacidad del enlace al mínimo entre la restricción y la capacidad que informa el paquete 2 asignar los saltos del enlace a la cantidad que informa el paquete + 1 Algoritmo 13: SAMF Obtener la mejor ruta a destino 1 iterar la tabla y seleccionar la ruta de mayor capacidad 2 si hay rutas de igual capacidad, seleccionar la de menor cantidad de saltos 152

153 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED 5.4. Módulo de técnica mixta: EA-SPIN Diseño Una manera de combinar las técnicas de diseminación de interés y consciencia de energía es utilizar la negociación por metadatos de SPIN y el control de flujo por épocas de SAMF en un mismo algoritmo de encaminamiento. En este trabajo se estudia esa posibilidad definiendo EA-SPIN (Energy Aware SPIN), una versión de SPIN basada en M-SPIN y SAMF. SAMF y M-SPIN tienen en común la difusión de información de control con el sumidero iniciando el proceso periódicamente. Entonces, en EA-SPIN, además de registrarse la distancia al sumidero como lo hace M-SPIN, en la fase periódica de descubrimiento puede registrarse también la capacidad de la mejor ruta, como hace SAMF. Saltear negociación Cuando un nodo sensor genera un dato, este se anuncia a todos sus vecinos. En M-SPIN, sólo aquellos vecinos más cercanos al sumidero requerirán el dato. Si el nodo está más lejos del sumidero que el nodo que anunció, no participa de la negociación. Con la modificación que se introduce en EA-SPIN, el nodo que anuncia el dato incluye en el anuncio la capacidad de la mejor ruta conocida. Los nodos vecinos que tienen una capacidad mejor o igual a la anunciada son los que peticionarán el dato de manera adelantada, utilizando un tiempo máximo de espera de supresión de pedido menor al normal. Los nodos vecinos que están más cerca del sumidero esperarán escuchar que algún otro nodo ha peticionado el dato. Si el nodo más cercano al sumidero no escucha ningún otro pedido, entonces deberá negociar el dato. Si escucha un pedido de un nodo de mejor capacidad, se abstiene de continuar con la negociación, asumiendo que otro nodo se ha propuesto a sí mismo para encaminar el dato. Con este enfoque, se espera mejorar el problema de M-SPIN mencionado en [60], donde unos pocos nodos son utilizados una mayor cantidad de veces, por lo que disipan su energía más rápidamente que el resto, intentando mejorar consumo de energía en los nodos cercanos al sumidero. Repetición de anuncios EA-SPIN además agrega la repetición de anuncios. Si un dato anunciado no es pedido por un nodo vecino durante un intervalo de tiempo, el anuncio se repite hasta un número máximo de veces. Cuando un nodo envía un paquete de datos, este puede estar siendo esperado por más de un vecino. Al recibir un dato, EA-SPIN no lo anunciará inmediatamente, sino que esperará un 153

154 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN intervalo de tiempo al azar, para evitar colisiones que puedan producirse por la recepción simultánea del dato enviado por broadcast. Consciencia de energía El protocolo SAMF siempre va a consumir menos energía por que no tiene etapas de negociación, y por lo tanto se utiliza una menor cantidad de mensajes. Existe una diferencia conceptual entre los dos protocolos de base, que radica en qué extremo del enlace entre dos nodos decide el encaminamiento. En SAMF, el que encamina es el nodo origen, enviando el dato generado al vecino en la mejor ruta al sumidero que el nodo tiene registrado en sus tablas. En cambio en EA-SPIN el que encamina es el nodo destino, que escucha un dato anunciado y solicita su recepción, es decir, un nodo intermedio con mejor capacidad se postula a través de la petición para encaminar el dato. El hecho de que toda la comunicación en los protocolos EA-SPIN y M-SPIN se realice con broadcast permitiría una mejor respuesta a cambios en la topología, por la naturaleza dinámica de negociación de los protocolos SPIN. En SAFM, el encaminamiento es por tablas, pero en EA- SPIN es por negociación, y las tablas se mantienen para que la negociación sea consciente de la energía Especificaciones Para el análisis, las siguientes especificaciones se construyen bajo la restricción de confiabilidad total, por lo que no se modelan las repeticiones de anuncios ni de peticiones. EA-SPIN Capacidad Valores de estado S = {INITIATOR, IDLE, ITERATE, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } Tipos de mensaje {START, ACK} Variables {epoch, distance, countack} 154

155 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Al comenzar, el sumidero o nodo iniciador envía por broadcast un paquete START a todos sus vecinos, que contiene un valor de capacidad muy alto, cantidad saltos al sumidero inicializada en cero, y el identificador de época actual. Por cada ACK que recibe, decrementa un contador iniciado en un valor igual a la cantidad de vecinos. Cuando el contador llega a cero, todos los vecinos han determinado las capacidades de ruta y pasa al estado DONE de terminación local. Si recibe un paquete START, envía un acuse de recibo al nodo que lo emitió. INITIATOR Spontaneously begin send(start) to N(x); countack := N(x) ; end Receiving(ACK) begin countack ; if countack = 0 then become DONE; endif end Receiving(START) begin send(ack) to sender; end El resto de los nodos comienza en estado IDLE. En este esstado, al recibir el primer paquete START, determina si ha cambiado la época. En caso afirmativo, actualiza su identificador de época actual y recalcula las capacidades de enlace para la nueva época. Luego actualiza la tabla de encaminamiento y establece al nodo emisor como su nodo padre. Para seguir, envía por broadcast un nuevo paquete INTEREST con la capacidad de la mejor ruta conocida. Finalmente pasa al estado ITERATE. IDLE Receiving(START) begin // Nueva época if START.epoch!= epoch then 155

156 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN Recompute contraints; endif Update routing table(start); distance := START.hop; parent := sender; countack := N(x) ; send(start) to N(x); become ITERATE; end En el estado ITERATE, el nodo itera hasta recibir un ACK de cada vecino, para cada una de sus actualizaciones de mejor ruta, transmitidas con paquetes START. Al recibir un paquete START, responde con ACK al emisor y actualiza la tabla de encaminamiento con la información que trae el paquete. Si la mejor ruta a cambiado (hay una nueva ruta de mayor capacidad, o igual capacidad que la anterior pero con menor cantidad de saltos) o la distancia del nodo es mayor que la cantidad de saltos del paquete, el nodo notifica este cambio transmitiendo por broadcast un nuevo paquete START con el nuevo valor de mayor capacidad y, como cantidad de saltos al sumidero, su distancia incrementada en 1. Cuando recibe un paquete ACK, decrementa el contador de acuses y cuando este llega a cero, envía su propio ACK al nodo definido como padre, pasando al estado DONE de terminación local. ITERATE Receiving(START) begin send(ack) to sender; bestpathchanged := Update routing table(start); if bestpathchanged = true distance > START.hop then if distance > START.hop then distance := START.hop; endif START.bestGate := Get best gate(); START.hop = distance + 1; countack += N(x) ; send(start) to N(x); endif end Receiving(ACK) begin 156

157 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED end countack ; if countack = 0 then send(ack) to parent; become DONE; endif EA-SPIN Negociar La negociación es similar a la que realiza M-SPIN, excepto por el pedido adelantado que realizan los nodos en la mejor ruta al sumidero, y por cancelar la negociación si un nodo con mejor capacidad la ha iniciado. Valores de estado S = {INITIATOR, IDLE, DIFUSE, GATHER, DONE} S INIT = {INITIATOR, IDLE} S T ERM = {DONE} Restricciones {BL, TR, CN, UI } Tipos de mensaje {ADV, REQ, DATA} Parámetros RA = Máximo intervalo de espera para peticionar en forma adelantada RS = Máximo intervalo de espera para escuchar otro pedido y suprimir el propio Al comenzar, el nodo que tiene un nuevo dato para encaminar lo anuncia por broadcast con un paquete ADV, que incluye la capacidad de la mejor ruta. Luego pasa al estado DIFFUSE. INITIATOR Spontaneously begin send(adv) to N(x); become DIFFUSE; end 157

158 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN El resto de los nodos comienza en estado IDLE. Al recibir un paquete ADV, inspecciona la capacidad del emisor que viene en el paquete, y si el nodo conoce una ruta de mejor capacidad, inicia la alarma de supresión de petición, que expirará en un tiempo al azar seleccionado en un intervalo menor que el que se utiliza para la espera normal de supresión de peticiones. Luego pasa al estado WAIT. Si al recibir el ADV, el nodo no posee mejor capacidad, pero está a menor distancia, inicia la alarma normal de supersión de pedido y pasa al estado WAIT. Si al recibir el paquete ADV el nodo no posee una ruta mejor ni está a menor distancia, se abstiene de participar pasando al estado DONE de terminación local. IDLE Receiving(ADV) begin //Revisa si tiene mejor capacidad que el que anunció if Better capacity(adv) then set alarm := c(x) + u(ra) source := sender; become WAIT; else if distance < ADV.hop then set alarm := c(x) + u(rs) source := sender; become WAIT; else //Si no esta a menor distancia, //ni tiene mejor capacidad, //no participa become DONE; endif end En el estado WAIT, al expirar la alarma de supresión, el nodo envía por broadcast el paquete REQ especificando el nodo origen del anuncio y pasa al estado GATHER. Si en estado WAIT escucha un paquete REQ por el mismo dato, cancela la alarma suprimiendo su propia petición. Si el pedido escuchado proviene de un nodo con una mejor ruta al sumidero, se detiene la negociación pasando al estado DONE de terminación local. De lo contrario, el nodo pasa al estado GATHER. Si en estado WAIT el nodo escucha el dato esperado, cancela la alarma de supresión y anuncia por broadcast el nuevo dato, pasando al estado DIFFUSE. 158

159 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED WAIT When c(x) = alarm begin REQ.source = source; send REQ to N(x); become GATHER; end Receiving(REQ) begin //Si escucha un pedido por el mismo dato if source = REQ.source then unset alarm; //Suprime la petición if Better capacity(req) = false then // Saltea negociación become DONE; else // Continúa la negociación become GATHER; endif endif end Receiving(DATA) begin Cache(DATA); unset alarm; //Suprime la petición send ADV to N(x); become DIFFUSE; end En estado DIFFUSE, el nodo espera peticiones por el dato en negociación. Si recibe una petición par sí mismo, responde haciendo broadcast de un paquete DATA, y luego pasa al estado DONE de terminación local. Recordar que para el análisis se toma la base de SPIN-BC, que sólo envía el dato una vez por broadcast. Si en el estado DFFUSE recibe un paquete ADV de un nodo más cercano al sumidero, pasa al estado DONE asumiendo que no se requiere más su intervención. DIFFUSE 159

160 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN Receiving(REQ) begin //El pedido debe ser para este nodo if REQ.source = x then send DATA to N(x); become DONE; endif end Receiving(ADV) begin //Si un nodo más cerca del sumidero //anuncia el dato, ya no es necesario //continuar activo if ADV.hop < distance then become DONE; endif end En el estado GATHER, el nodo espera recibir el dato en negociación. Si recibe un paquete DATA, anuncia el nuevo dato enviando por broadcast un paquete ADV a todos sus vecinos y pasando al estado DIFFUSE. GATHER Receiving(DATA) begin Cache(DATA) send ADV to N(x); become DIFFUSE; end Complejidad M Recordando las definiciones de la sección 5, la complejidad M es el costo en mensajes del algoritmo, es decir, la cantidad de transmisiones de mensajes necesarias para completar la ejecución del protocolo. Al igual que M-SPIN Distancia, y SAMF Capacidad, EA-SPIN Capacidad tiene la estructura de Bellman-Ford y ejecuta a lo sumo n 1 iteraciones (ver secciones y 5.3.2), por lo que: M[EA-SPIN Capacidad] O(n 2 ) 160

161 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED EA-SPIN Negociar suprime más rondas de negociación que M-SPIN, porque si un nodo escucha que otro a la misma distancia o mayor ha peticionado el dato anunciado, se abstiene de participar. En M-SPIN, si dos nodos a la misma distancia reciben un anuncio de un dato a mayor distancia del sumidero, ambos participan de la negociación. Por lo tanto, puede decirse que la complejidad M de EA-SPIN es también: M[EA-SPIN Negociar] O(n) Detalles de implementación Paquete EA-SPIN El paquete EA-SPIN extiende el paquete de M-SPIN con la información del paquete SAMF, con la definición del fragmento de código 5.3: 1 packet EASPINPkt extends SPINPkt { 2 3 int pathhops; 4 double pathcapacity; 5 long epochid; 6 bool routetype; 7 } Fragmento de código 5.3: Paquete EA-SPIN En el módulo de red se define como longitud de cabecera un valor de 24 bits, el mismo valor que se utiliza para todos los módulos de red. Ajuste paramétrico de EA-SPIN Se realizó un lote de simulaciones para ajustar los siguientes tiempos de espera: sendagainwait es el tiempo para enviar un dato nuevamente si ya se envió requestagainwait es el tiempo para volver a pedir un dato requestsuppresswait es el tiempo para esperar suprimir un pedido requestfirstwait es el tiempo de espera para pedir un dato de manera adelantada 161

162 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN repeatadvwait es el tiempo de espera para repetir un anuncio requestagaintimes cantidad de veces que se repite un pedido como máximo repeatadvtimes cantidad de veces que se repite un anuncio como máximo El ajuste de EA-SPIN se realizó independientemente del ajuste realizado para M-SPIN. Se observó nuevamente que si la espera es muy corta o demasiado larga, el desempeño empeora. El ajuste se orienta a la asignación de esperas lo más cortas posibles que no degraden el desempeño (éxito, latencia, uniformidad de consumo) por la competencia por el medio. Se tuvo en cuenta el trabajo de [54], que describe los efectos de utilizar una frecuencia de muestreo demasiado alta (del orden de los 5ms) en la exactitud de la simulación: una distancia significativa de los resultados respecto de la realidad. Para la red definida, se encontró que con la siguiente configuración se logra un mejor desempeño: sendagainwait 50 ms requestagainwait 200 ms requestsuppresswait 300 ms requestfirstwait 150 ms repeatadvwait 500 ms requestagaintimes 7 repeatadvtimes 5 Totalizadores Para analizar el comportamiento de los protocolos SPIN, se incluyeron en los módulos los siguientes contabilizadores de paquetes: Algunas relaciones entre ellos: nbadvnew = nbadvreceived - nbadvnotprocessed nbreqreceived = nbreqnotprocessed + nbreqprocessed nbcachesize = nbadvsent - nbadvrepeat nbcachesize = nbdataforme + cantidad de muestras a sensar nbdataforme = nbdatareceived - nbdatanotprocessed 162

163 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Contabilizador nbadv2data nbadvduplicated nbadvfar nbadvnew nbadvnotprocessed nbadvreceived nbadvrepeat nbadvsent nbdataduplicated nbdataforme nbdatamaxhops nbdatanotprocessed nbdatapending nbdatareceived nbdatasent nbreqduplicated nbreqforme nbreqimmediate nbreqnotprocessed nbreqprocessed nbreqreceived nbreqrepeat nbreqsent nbreqsuppressed nbskipnegotiation nbtotalsent nbcachesize Descripción Relación entre la cantidad de paquetes de datos destinados al nodo y la cantidad de anuncios de datos que el nodo no posee Anuncios recibidos duplicados Anuncios recibidos e ignorados por provenir de un nodo más cercano al sumidero o con mejor capacidad Anuncios recibidos de datos que el nodo no posee Anuncios recibidos y descartados por alguna razón Total de anuncios recibidos Anuncios enviados por duplicado Total de anuncios enviados Datos recibidos por duplicado Datos recibidos y destinados a este nodo Datos recibidos y descartados por superar el máximo de saltos permitidos Datos recibidos y descartados por alguna razón Datos esperados y no recibidos Total de paquetes de datos recibidos Total de paquetes de datos enviados Peticiones recibidas por un dato que ya ha sido enviado y no ha transcurrido el tiempo de espera entre reenviíos, por lo tanto se ignoran Peticiones recibidas destinadas a este nodo Peticiones enviadas en adelanto Peticiones recibidas no procesadas por alguna razón Peticiones recibidas procesadas Total de peticiones recibidas Peticiones enviadas por duplicado Total de peticiones enviadas Peticiones suprimidas Negociaciones salteadas Total de paquetes de negociación enviados: anuncios, peticiones y datos Tamaño de la cache Cuadro 5.5: Contadores para el análisis de SPIN nbreqprocessed = nbdatasent nbreqrepeat = nbreqrepeat 163

164 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN Pseudocódigo Algoritmo 14: EA-SPIN Procesar paquete de aplicación 1 agregar datos a cache 2 crear paquete ADV especificando la mejor capacidad conocida 3 entregar al enlace para transmisión broadcast 4 programar temporizador de repetición de anuncio Algoritmo 15: EA-SPIN Procesar paquete STARTUP 1 if época del paquete época actual then 2 actualizar la época actual a la época del paquete 3 recalcular las restricciones en la tabla de enlace 4 end 5 obtener la ruta A, la mejor de la tabla 6 actualizar el enlace en la tabla con los datos del paquete 7 obtener la ruta B, la nueva mejor de la tabla 8 if ruta A ruta B Ó cantidad de saltos del paquete < mi distancia then 9 if cantidad de saltos del paquete < mi distancia then 10 asignar a mi distancia la cantidad de saltos del paquete 11 end 12 crear paquete STARTUP con los datos de la nueva mejor ruta y mi distancia entregar al enlace para transmisión por broadcast 14 else 15 descartar 16 end 164

165 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Algoritmo 16: EA-SPIN Procesar paquete ADV de anuncio 1 if el dato anunciado no está en cache Y no está siendo negociado then 2 if dirección final = broadcast then 3 programar temporizador de supresión de pedido normal 4 else if tengo mejor capacidad que la especificada en el paquete then 5 programar temporizador supresión de pedido adelantado 6 else if distancia del emisor > mi distancia then 7 programar temporizador de supresión de pedido normal 8 else 9 descartar 10 end 11 else 12 descartar 13 end Algoritmo 17: EA-SPIN Procesar paquete REQ de pedido 1 if dirección final broadcast Y estoy negociando el dato Y no tengo mejor capacidad then 2 cancelar temporizador de supresión de pedido 3 else if origen de anuncio = mi dirección then 4 if pasó el tiempo mínimo entre reenvíos then 5 crear paquete de datos 6 entregar al enlace para transmisión por broadcast 7 else 8 descartar 9 end 10 else if hay temporizador de supresión de petición programado then 11 cancelar el temporizador 12 programar temporizador de repetición de pedido 13 else 14 descartar 15 end 165

166 5.4. MÓDULO DE TÉCNICA MIXTA: EA-SPIN Algoritmo 18: EA-SPIN Procesar paquete DATA de datos 1 if el dato esta siendo negociado then 2 cancelar temporizador de repetición de pedido 3 agregar el dato a la cache 4 if dirección final = mi dirección O dirección final = broadcast then 5 entregar el dato a la aplicación 6 end 7 crear paquete de anuncio 8 entregar al enlace para transmisión broadcast 9 else 10 descartar 11 end Algoritmo 19: EA-SPIN Expira temporizador pedido 1 if el dato no está ya en cache Y no se superó la cantidad de pedidos repetidos then 2 crear paquete de pedido 3 entregar al enlace para transmisión por broadcast 4 programar temporizador de repetición de pedido 5 end 166

167 CAPÍTULO 5. IMPLEMENTACIÓN DE MÓDULOS DE RED Algoritmo 20: EA-SPIN Expira temporizador de repetición de anuncio 1 if el dato nunca fue enviado Y no se superó la cantidad de anuncios repetidos then 2 crear paquete de anuncio 3 entregar al enlace para transmisión por broadcast 4 programar temporizador de repetición de anuncio 5 end 5.5. Resumen de módulos desarrollados En la siguiente tabla se enumeran los módulos C++ desarrollados para poder llevar a cabo la simulación con Omnet++. Módulo SAMF SPIN SPIN-BC SPIN-RL M-SPIN EA-SPIN NetworkStudy NetworkTracer NodeApplLayer SinkApplLayer Propósito Módulo que implementa el protocolo de red con consciencia de energía SAMF Implementa el protocolo de red de diseminación SPIN Protocolo de red SPIN-BC Protocolo de red SPIN-RL Protocolo de red M-SPIN Versión de diseminación M-SPIN con consciencia de energía estilo SAFM Módulo de red base, con utilidades para contabilizar paquetes y totalizar consumo y niveles de energía Módulo de recolección de estadísticas Módulo de aplicación de nodo sensor Aplicación del sumidero Cuadro 5.6: Módulos desarrollados 167

168 5.5. RESUMEN DE MÓDULOS DESARROLLADOS 168

169 Capítulo 6 Simulación y conclusiones Para las simulaciones se utilizó la interfaz de red Nic TI CC2420 ( ) como es sugerido por el ejemplo de encaminamiento en redes de sensores que trae la herramienta, implementando CSMA no ranurado (nonbeacon-enabled unslotted CSMA-CA). La interfaz alternativa Nic802154A ( a-2007) es apropiada para redes de muy baja carga según el estándar [28], por lo que se decidió no utilizar para los experimentos, ya que el patrón de tráfico seleccionado produce ráfagas de transmisiones no soportadas por ALOHA. Es importante mencionar que el módulo CSMA que viene con el framework MiXiM 2.1 no implementa el modo ranurado, y sólo funciona en el modo competitivo. El uso de CSMA no ranurado implica una importante limitación al modelo: los nodos sensores no se sincronizan y deben mantener el tranceptor encendido todo el tiempo para poder recibir los frames. Debido a esta limitación, los efectos del encaminamiento en la vida útil de la red no serán evidenciados analizando la cantidad de tiempo que transcurre hasta el agotamiento de nodos. En lugar de ello, se utilizaron métricas de consumo en transmisiones. Con respecto a la capa física se debe aclarar que se deshabilitó el ruido térmico. Las características completas del modelo son descriptas en detalle en la sección

170 6.1. ESCENARIOS 6.1. Escenarios Se hicieron simulaciones de red para los siguientes escenarios, con cada uno de los tres protocolos estudiados: Escenario Descripción Paquetes de datos 1 Sensar 1 muestra en cada uno de los 79 nodos 79 2 Sensar 100 muestras en cada uno de los 79 nodos nodos sensan 100 muestras cada uno Sensar 1 muestra cada 1 m, en cada uno de los 79 nodos, durante 24 h Cuadro 6.1: Escenarios simulados 6.2. Resultados Se debe tener en cuenta que, en todos los estudios, las estadísticas incluyen los paquetes enviados para diseminar la tarea, y todos los paquetes de control, STARTUP e INTEREST Complejidad M Para la comparación con las cotas teóricas, se asume que se ejecutó el algoritmo de asignación de capacidad/distancia una vez, y las negociaciones necesarias para encaminar la cantidad total de paquetes de datos, dada por el escenario. La cota de complejidad M es un límite superior muy alto de cantidad de paquetes necesarios para completar la consulta y se espera que la métrica de las simulaciones esté lejos de ese valor. Recordando, las cotas superiores de cantidad de mensajes para la asignación de distancia y la negociación son: M[M-SPIN D] n (n 1) en una iteración de asignación de distancia n = 80 n (n 1) = 6,320 M[M-SPIN N] 3 (n 1) por cada paquete a encaminar Escenario 1: 6, = 25,043 Escenario 2: 6, , 9 millones Escenario 3: 6, = 77,420 Escenario 4: 6, millones 170

171 CAPÍTULO 6. SIMULACIÓN Y CONCLUSIONES Escenario Protocolo M cota M simulación 1 M-SPIN EA-SPIN M-SPIN 1,9 millones EA-SPIN 1,9 millones M-SPIN EA-SPIN M-SPIN 27 millones 2,17 millones 4 EA-SPIN 27 millones 2,21 millones Cuadro 6.2: Cantidad total de paquetes enviados en cada escenario En la tabla 6.2 se compara la cota M, con la cantidad total de paquetes de red enviados en la simulación. 171

172 6.2. RESULTADOS Métricas obtenidas Escenario 1 En el escenario 1 todos los nodos responden la consulta con un dato. Figura 6.1: Escenario 1 - Latencia media en el sumidero Figura 6.2: Escenario 1 - Tasa de éxito 172

173 CAPÍTULO 6. SIMULACIÓN Y CONCLUSIONES Figura 6.3: Escenario 1 - Overhead Figura 6.4: Escenario 1 - Total de energía de transmisión 173

174 6.2. RESULTADOS Figura 6.5: Escenario 1 - Media y máxima de saltos Figura 6.6: Escenario 1 - Media y desviación de energía de transmisión 174

175 CAPÍTULO 6. SIMULACIÓN Y CONCLUSIONES Escenario 2 En el escenario 2, todos los nodos responden con 100 paquetes de datos. Figura 6.7: Escenario 2 - Latencia media en el sumidero Figura 6.8: Escenario 2 - Tasa de éxito 175

176 6.2. RESULTADOS Figura 6.9: Escenario 2 - Overhead Figura 6.10: Escenario 2 - Total de energía de transmisión 176

177 CAPÍTULO 6. SIMULACIÓN Y CONCLUSIONES Figura 6.11: Escenario 2 - Media y máxima de saltos Figura 6.12: Escenario 2 - Media y desviación de energía de transmisión 177

178 6.2. RESULTADOS Escenario 3 En este escenario, sólo 3 nodos responden con 100 paquetes de datos. Figura 6.13: Escenario 3 - Latencia media en el sumidero Figura 6.14: Escenario 3 - Tasa de éxito 178

179 CAPÍTULO 6. SIMULACIÓN Y CONCLUSIONES Figura 6.15: Escenario 3 - Overhead Figura 6.16: Escenario 3 - Total de energía de transmisión 179

180 6.2. RESULTADOS Figura 6.17: Escenario 3 - Media y máxima de saltos Figura 6.18: Escenario 3 - Media y desviación de energía de transmisión 180

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz 201321074-0 Jonathan Porta 201321054-6 Matías Contreras 201321034-1

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz 201321074-0 Jonathan Porta 201321054-6 Matías Contreras 201321034-1 REDES AD HOC INFORME DE REDES DE COMPUTADORES I Nombre ROL Felipe Muñoz 201321074-0 Jonathan Porta 201321054-6 Matías Contreras 201321034-1 Profesor: Agustín González Fecha: 28 de Julio del 2014 Nota:

Más detalles

El grupo de trabajo IEEE 802.15 ha definido tres clases de WPANs que se

El grupo de trabajo IEEE 802.15 ha definido tres clases de WPANs que se 2 Disposiciones generales. 2.1 Tipos de WPANs. El grupo de trabajo IEEE 802.15 ha definido tres clases de WPANs que se diferencian por su rango de datos, consumo de energía y calidad de servicio (QoS).

Más detalles

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 -

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 - Graballo+ Agosto de 2007-1 - Índice Índice...2 Introducción...3 Características...4 DESCRIPCIÓN GENERAL...4 COMPONENTES Y CARACTERÍSTICAS DE LA SOLUCIÓN...5 Recepción de requerimientos...5 Atención de

Más detalles

SISTEMAS DE INFORMACIÓN PARA ADMINISTRACIÓN DE OPERACIONES. Manufactura Integrada por Computadora (CIM) Qué es es CIM?

SISTEMAS DE INFORMACIÓN PARA ADMINISTRACIÓN DE OPERACIONES. Manufactura Integrada por Computadora (CIM) Qué es es CIM? SISTEMAS DE INFORMACIÓN PARA ADMINISTRACIÓN DE OPERACIONES 2003 Manufactura Integrada por Computadora (CIM) Qué es es CIM? Bajo el nombre de CIM se engloba a un conjunto de aplicaciones informáticas cuyo

Más detalles

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el para videovigilancia....... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el protocolo IP. La tecnología de las cámaras de red permite al usuario

Más detalles

Sistema de Monitoreo con Sensores Móviles usando Tecnología de Arquitectura Modular. Centro de Modelamiento Matemático Universidad de Chile

Sistema de Monitoreo con Sensores Móviles usando Tecnología de Arquitectura Modular. Centro de Modelamiento Matemático Universidad de Chile Sistema de Monitoreo con Sensores Móviles usando Tecnología de Arquitectura Modular Centro de Modelamiento Matemático Universidad de Chile Julio, 2012 Agenda Introducción Etapa previa: Conceptualización

Más detalles

Tema 3. TOPOLOGÍAS INALÁMBRICAS. Alejandro Carrasco Muñoz Jorge Ropero Rodríguez

Tema 3. TOPOLOGÍAS INALÁMBRICAS. Alejandro Carrasco Muñoz Jorge Ropero Rodríguez Tema 3. TOPOLOGÍAS INALÁMBRICAS. Alejandro Carrasco Muñoz Jorge Ropero Rodríguez 1. Implementación práctica Es necesario tener en cuenta : Distintas topologías posibles. Componentes de una red. Dispositivos

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Fundamentos de Ethernet. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia

Fundamentos de Ethernet. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Fundamentos de Ethernet. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Ethernet es el protocolo del nivel de enlace de datos más utilizado en estos momentos. Se han actualizado los estandares

Más detalles

INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia

INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia INTRODUCCION. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Qué es una Red? Es un grupo de computadores conectados mediante cables o algún otro medio. Para que? compartir recursos. software

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

OBLIGACIONES DE HACER INSTITUCIONES PÚBLICAS (INSTITUCIONES EDUCATIVAS, HOSPITALES Y CENTROS DE SALUD) DECRETO 2044 DE 2013

OBLIGACIONES DE HACER INSTITUCIONES PÚBLICAS (INSTITUCIONES EDUCATIVAS, HOSPITALES Y CENTROS DE SALUD) DECRETO 2044 DE 2013 OBLIGACIONES DE HACER INSTITUCIONES PÚBLICAS (INSTITUCIONES EDUCATIVAS, HOSPITALES Y CENTROS DE SALUD) DECRETO 2044 DE 2013 ANEXO 5 MONITOREO Y SISTEMAS DE INFORMACION JUNIO 2014 ÍNDICE DE CONTENIDOS MONITOREO

Más detalles

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones. Módulo Profesional: Servicios en Red. Código: 0227. Resultados de aprendizaje y criterios de evaluación. 1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

Más detalles

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS GRADO 11 Nombre(s) y Apellidos: Karen Andrea Marín Mendoza Documento: 98110301014 FICHA NÚMERO COLEGIO Instituto Madre Del Buen Consejo FECHA: 23 de abril 2014

Más detalles

Efectos de los dispositivos de Capa 2 sobre el flujo de datos 7.5.1 Segmentación de la LAN Ethernet

Efectos de los dispositivos de Capa 2 sobre el flujo de datos 7.5.1 Segmentación de la LAN Ethernet 7.5 Efectos de los dispositivos de Capa 2 sobre el flujo de datos 7.5.1 Segmentación de la LAN Ethernet 1 2 3 3 4 Hay dos motivos fundamentales para dividir una LAN en segmentos. El primer motivo es aislar

Más detalles

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

CAPÍTULO I. Sistemas de Control Distribuido (SCD). 1.1 Sistemas de Control. Un sistema es un ente cuya función es la de recibir acciones externas llamadas variables de entrada que a su vez provocan una o varias reacciones como respuesta llamadas variables

Más detalles

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV Pasa demasiado tiempo fuera de la oficina? Movilidad Solución móvil Dynamics NAV Avda. Autopista del Saler nº 4. Bloque 2, Puerta A7 (Edificio Politaria) 46013 Valencia T. +34 963 744 875 www.redmond.es

Más detalles

Universidad de Antioquia Juan D. Mendoza V.

Universidad de Antioquia Juan D. Mendoza V. Universidad de Antioquia Juan D. Mendoza V. El router es una computadora diseñada para fines especiales que desempeña un rol clave en el funcionamiento de cualquier red de datos. la determinación del mejor

Más detalles

En este capítulo se presenta el marco teórico sobre las redes inalámbricas que utilizan el

En este capítulo se presenta el marco teórico sobre las redes inalámbricas que utilizan el Capítulo 2 Estándar IEEE 802.11 En este capítulo se presenta el marco teórico sobre las redes inalámbricas que utilizan el WEP como protocolo de seguridad. Se mencionan las características generales de

Más detalles

Beneficios estratégicos para su organización. Beneficios. Características V.2.0907

Beneficios estratégicos para su organización. Beneficios. Características V.2.0907 Herramienta de inventario que automatiza el registro de activos informáticos en detalle y reporta cualquier cambio de hardware o software mediante la generación de alarmas. Beneficios Información actualizada

Más detalles

CONSEJO DE NORMALIZACIÓN Y CERTIFICACIÓN DE COMPETENCIA LABORAL NORMAS TÉCNICAS DE COMPETENCIA LABORAL

CONSEJO DE NORMALIZACIÓN Y CERTIFICACIÓN DE COMPETENCIA LABORAL NORMAS TÉCNICAS DE COMPETENCIA LABORAL I. Datos Generales de la Calificación CINF0286.01 Título Análisis y diseño de redes de datos Propósito Proporcionar un referente para evaluar la competencia en las funciones relativas al análisis y diseño

Más detalles

Resumen General del Manual de Organización y Funciones

Resumen General del Manual de Organización y Funciones Gerencia de Tecnologías de Información Resumen General del Manual de Organización y Funciones (El Manual de Organización y Funciones fue aprobado por Resolución Administrativa SBS N 354-2011, del 17 de

Más detalles

ESCUELA NORMAL PROF. CARLOS A CARRILLO

ESCUELA NORMAL PROF. CARLOS A CARRILLO ESCUELA NORMAL PROF. CARLOS A CARRILLO QUE ES UNA RED L A S T I C S E N L A E D U C A C I O N P R E E S C O L A R P R O F. C R U Z J O R G E A R A M B U R O A L U M N A : D U L C E C O R A Z Ó N O C H

Más detalles

TEMA: Las Redes. NOMBRE Torres Castillo Ana Cristina. PROFESOR: Genaro Israel Casas Pruneda. MATERIA: Las TICS en la educación.

TEMA: Las Redes. NOMBRE Torres Castillo Ana Cristina. PROFESOR: Genaro Israel Casas Pruneda. MATERIA: Las TICS en la educación. TEMA: Las Redes NOMBRE Torres Castillo Ana Cristina. PROFESOR: Genaro Israel Casas Pruneda. MATERIA: Las TICS en la educación. QUÉ ES UNA RED? Una red informática es un conjunto de dispositivos interconectados

Más detalles

M.T.I. Arturo López Saldiña

M.T.I. Arturo López Saldiña M.T.I. Arturo López Saldiña Hoy en día, existen diversas aproximaciones al tema de cómo hacer que las personas trabajen dentro de una organización de manera colaborativa. El problema se vuelve más difícil

Más detalles

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...

Más detalles

La Pirámide de Solución de TriActive TRICENTER

La Pirámide de Solución de TriActive TRICENTER Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de

Más detalles

TEMA 2 Componentes y estructura de una red de telecomunicación.

TEMA 2 Componentes y estructura de una red de telecomunicación. TEMA 2 Componentes y estructura de una red de telecomunicación. 1. Modelo para las telecomunicaciones Las redes de telecomunicación constituyen la infraestructura básica de transporte para el intercambio

Más detalles

Redes Informáticas Temas: Concepto de Red de computadoras, Propósito de la Red, Clasificación según su cobertura geográfica. Topologías.

Redes Informáticas Temas: Concepto de Red de computadoras, Propósito de la Red, Clasificación según su cobertura geográfica. Topologías. Redes Informáticas Temas: Concepto de Red de computadoras, Propósito de la Red, Clasificación según su cobertura geográfica. Topologías. Docente: Lic. Mariela R. Saez Qué es una Red Informática? Una red,

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

Control Satelital y gestión de ubicaciones en mapa. (CitiTrack)

Control Satelital y gestión de ubicaciones en mapa. (CitiTrack) Nuestra compañía CITICA S.A.S dedicada a brindar soluciones de Trazabilidad, Control y Gestión en tiempo real, hace de sus procesos, información, inversiones, tanto humanas como físicas, algo claro, pertinente

Más detalles

SEMANA 12 SEGURIDAD EN UNA RED

SEMANA 12 SEGURIDAD EN UNA RED SEMANA 12 SEGURIDAD EN UNA RED SEGURIDAD EN UNA RED La seguridad, protección de los equipos conectados en red y de los datos que almacenan y comparten, es un hecho muy importante en la interconexión de

Más detalles

Autenticación Centralizada

Autenticación Centralizada Autenticación Centralizada Ing. Carlos Rojas Castro Herramientas de Gestión de Redes Introducción En el mundo actual, pero en especial las organizaciones actuales, los usuarios deben dar pruebas de quiénes

Más detalles

Introducción a Wireless Sensor Networks

Introducción a Wireless Sensor Networks Introducción a Wireless Sensor Networks Ing. Ana Laura Diedrichs (UTN ) 1 Ayer y hoy IBM PC (1981) MicaZ Mote (2005) 4.77 Mhz 4 Mhz 16 256 KB RAM 128 KB RAM 160 KB Floppies 512 KB Flash ~ $6K ~ $35 ~ 64

Más detalles

TELECOMUNICACIONES Y REDES

TELECOMUNICACIONES Y REDES TELECOMUNICACIONES Y REDES Redes Computacionales I Prof. Cristian Ahumada V. Unidad VII: Capa de Enlace de Datos Contenido 1. Introducción. 2. Acceso al Medio. 3. Técnicas de Control de acceso al medio.

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services. Windows Server 2012: Identidad y Acceso Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services. Manual del Módulo Autor: Andrew J Warren, Content Master Publicado: Septiembre 10 de

Más detalles

Sesión No. 12. Contextualización: Nombre de la sesión: SAP segunda parte PAQUETERÍA CONTABLE

Sesión No. 12. Contextualización: Nombre de la sesión: SAP segunda parte PAQUETERÍA CONTABLE Paquetería contable PAQUETERÍA CONTABLE Sesión No. 12 Nombre de la sesión: SAP segunda parte Contextualización: Los sistemas ERP son actualmente las herramientas que se han impuesto y son la base operativa

Más detalles

TELECOMUNICACIONES Y REDES

TELECOMUNICACIONES Y REDES TELECOMUNICACIONES Y REDES Redes Computacionales I Prof. Cristian Ahumada V. Unidad V: Capa de Red OSI 1. Introducción. 2. Protocolos de cada Red 3. Protocolo IPv4 4. División de Redes 5. Enrutamiento

Más detalles

Gestión de Redes IP. Presentación realizada por: Ing. Pablo Borrelli. Gestión de Redes IP 1

Gestión de Redes IP. Presentación realizada por: Ing. Pablo Borrelli. Gestión de Redes IP 1 Gestión de Redes IP Lugar: Sala de I.T.I. (Instituto Tecnológico de Informática) Presentación realizada por: Ing. Pablo Borrelli Gestión de Redes IP 1 Presentación e introducción. Gestión de la Red de

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

Capítulo 1. 10I 1.0 Introducción 1.1 Diseño de LAN 1.2 El entorno conmutado. Presentation_ID 2

Capítulo 1. 10I 1.0 Introducción 1.1 Diseño de LAN 1.2 El entorno conmutado. Presentation_ID 2 Capítulo 1: Introducción a redes conmutadas Routing y switching Presentation_ID 1 Capítulo 1 10I 1.0 Introducción 1.1 Diseño de LAN 1.2 El entorno conmutado 1.3 Resumen Presentation_ID 2 Capítulo 1: Objetivos

Más detalles

OBSERVER Que topologías para el Análisis y Monitoreo de Redes contempla?

OBSERVER Que topologías para el Análisis y Monitoreo de Redes contempla? 1 OBSERVER Que topologías para el Análisis y Monitoreo de Redes contempla? LAN Control 10/100/1000 Ethernet; Token Ring; FDDI (Fibra Óptica) Decodifican y analizan más de 450 protocolos en tiempo real.

Más detalles

UNIVERSIDAD AUTÓNOMA DEL CARIBE PROCEDIMIENTO DE ATENCIÓN DE INCIDENTES Y REQUERIMIENTOS PARA EQUIPOS DE CÓMUPUTO Y/O PERIFÉRICOS GESTIÓN INFORMÁTICA

UNIVERSIDAD AUTÓNOMA DEL CARIBE PROCEDIMIENTO DE ATENCIÓN DE INCIDENTES Y REQUERIMIENTOS PARA EQUIPOS DE CÓMUPUTO Y/O PERIFÉRICOS GESTIÓN INFORMÁTICA Página: 1/5 UNIVERSIDAD AUTÓNOMA DEL CARIBE INCIDENTES Y REQUERIMIENTOS PARA EQUIPOS DE CÓMUPUTO Y/O GESTIÓN INFORMÁTICA Página: 2/5 1. OBJETO Satisfacer los requerimientos que hagan los usuarios para

Más detalles

I. E. S. Cristóbal de Monroy. DEPARTAMENTO: Informática. MATERIA: Sistemas Operativos en Red. NIVEL: 2º Sistemas Microinformáticos y Redes

I. E. S. Cristóbal de Monroy. DEPARTAMENTO: Informática. MATERIA: Sistemas Operativos en Red. NIVEL: 2º Sistemas Microinformáticos y Redes DEPARTAMENTO: Informática MATERIA: Sistemas Operativos en Red NIVEL: 2º Sistemas Microinformáticos y Redes 1. Objetivos. Competencias Profesionales, Personales y Sociales 2.1 Objetivos del ciclo formativo

Más detalles

Ahorro de energía visualizando páginas Web en dispositivos móviles heterogéneos

Ahorro de energía visualizando páginas Web en dispositivos móviles heterogéneos ROC&C 06 Ahorro de energía visualizando páginas Web en dispositivos móviles heterogéneos Dr. Juan Gabriel González Serna. M.C. Juan Carlos Olivares Rojas. Acapulco, Guerrero, México, 2006. Agenda Introducción

Más detalles

Unidad I: La capa de Red

Unidad I: La capa de Red ARP El protocolo de resolución de direcciones es responsable de convertir las dirección de protocolo de alto nivel (direcciones IP) a direcciones de red físicas. Primero, consideremos algunas cuestiones

Más detalles

Jhon Jairo Padilla Aguilar, PhD.

Jhon Jairo Padilla Aguilar, PhD. Redes de Datos-Redes WAN Jhon Jairo Padilla Aguilar, PhD. UPB Bucaramanga Red WAN WAN: Wide Area Network Pueden cubrir un país entero Requieren de Nodos que recogen/distribuyen la información de los usuarios

Más detalles

Empresa de estampado de metales atribuye a Plex su éxito en la gestión de datos

Empresa de estampado de metales atribuye a Plex su éxito en la gestión de datos Empresa de estampado de metales atribuye a Plex su éxito en la gestión de datos Panorama general: Vea cómo este estampador de metales para automóviles utiliza Plex para la gestión de datos en las operaciones

Más detalles

Técnico y sus funciones. 5. Función de los líderes. 6 Función del analista de datos. 6. Metas del Help Desk. 7 Definir el alcance del Help Desk.

Técnico y sus funciones. 5. Función de los líderes. 6 Función del analista de datos. 6. Metas del Help Desk. 7 Definir el alcance del Help Desk. 3 Qué es un Help Desk? 3 Cómo trabaja un Help Desk? 3 Cómo se mide el éxito de un Help Desk? 5 Funciones de los miembros del equipo del Help Desk. 5 Técnico y sus funciones. 5 Función de los líderes. 6

Más detalles

Casa Inteligente. Descripción general del Sistema

Casa Inteligente. Descripción general del Sistema Casa Inteligente Descripción general del Sistema El sistema que se describe a continuación permite la gestión y el control inteligente del hogar de modo de mejorar el confort y permitir una gestión eficiente

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000 1 INTRODUCCIÓN Dos de los objetivos más importantes en la revisión de la serie de normas ISO 9000 han sido: desarrollar un grupo simple de normas que sean igualmente aplicables a las pequeñas, a las medianas

Más detalles

Wireless Sensor Network in a nuclear facility: A technology aplication proposal

Wireless Sensor Network in a nuclear facility: A technology aplication proposal Wireless Sensor Network in a nuclear facility: A technology aplication proposal CNEA,IB (1) U. FASTA (2) Maciel, F. 1 - Fernández, R. O. 1 - Vilugron, R. M. 2 This work presents an overview of a pretended

Más detalles

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc. Página 1 BUSCADORES EN INTERNET Internet es una red de redes informáticas distribuidas por todo el mundo que intercambian información entre sí mediante protocolos 1 TCP/IP. Puede imaginarse Internet como

Más detalles

Especificaciones de la oferta Administración de dispositivos distribuidos Administración de activos

Especificaciones de la oferta Administración de dispositivos distribuidos Administración de activos Resumen del servicio Especificaciones de la oferta Administración de dispositivos distribuidos Administración de activos Los servicios de administración de dispositivos distribuidos le permiten realizar

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Clientes de XProtect Acceda a su vigilancia

Clientes de XProtect Acceda a su vigilancia Clientes de XProtect Acceda a su vigilancia Tres formas de ver la vídeovigilancia Para un fácil acceso a la vídeovigilancia, Milestone ofrece tres interfaces de usuario flexibles: XProtect Smart Client,

Más detalles

Sistemas de seguridad en redes inalámbricas: WEP, WAP y WAP2

Sistemas de seguridad en redes inalámbricas: WEP, WAP y WAP2 Sistemas de seguridad en redes inalámbricas: WEP, WAP y WAP2 Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www.acens.com Introducción Actualmente una de las formas más utilizadas para conectarse

Más detalles

Memoria de actividades: Participación en actividades concernientes al proyecto. Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico

Memoria de actividades: Participación en actividades concernientes al proyecto. Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico Memoria de actividades: Participación en actividades concernientes al proyecto Sistema de Alumbrado Público con Energía Solar y Autodiagnóstico Rábade García, Manuel Rodrigo Ingeniería en Computación Facultad

Más detalles

INFORME Nº 023-2014-GTI INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE

INFORME Nº 023-2014-GTI INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE INFORME Nº 023-2014-GTI INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE 1. Nombre del Área El área encargada de la evaluación técnica para la adquisición de una solución de optimización WAN, es el Departamento

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

TECNOLOGÍA 3G ACOSTA VENEGAS ALBERTO AGUILAR SALINAS GUILLERMO MIRANDA ELIZALDE CARLOS VENEGAS HURTADO JUAN

TECNOLOGÍA 3G ACOSTA VENEGAS ALBERTO AGUILAR SALINAS GUILLERMO MIRANDA ELIZALDE CARLOS VENEGAS HURTADO JUAN TECNOLOGÍA 3G ACOSTA VENEGAS ALBERTO AGUILAR SALINAS GUILLERMO MIRANDA ELIZALDE CARLOS VENEGAS HURTADO JUAN Qué es 3G? El significado de 3G es tercera generación de transmisión de voz y datos a través

Más detalles

Soluciones de Conectividad y Video Vigilancia en Estaciones Mineras.

Soluciones de Conectividad y Video Vigilancia en Estaciones Mineras. Soluciones Inalámbricas para la Industria Minera Soluciones de Conectividad y Video Vigilancia en Estaciones Mineras. La Minería es hoy en día una de las actividades más productivas de la riqueza Nacional

Más detalles

PERFILES OCUPACIONALES

PERFILES OCUPACIONALES PERFILES OCUPACIONALES A continuación se presenta la relación de los diferentes cargos que un ingeniero de sistemas de la Universidad de Lima puede desempeñar durante su vida profesional. También se presentan

Más detalles

Capítulo 1. Introducción

Capítulo 1. Introducción Capítulo 1. Introducción Nombre del Tema Aspectos de seguridad en aplicaciones basadas en WIFI. Asesor: Dr. Oleg Starostenko Basarab Actualidad y Definición del problema Desde hace ya tiempo nos hemos

Más detalles

1.2 SISTEMAS DE PRODUCCIÓN

1.2 SISTEMAS DE PRODUCCIÓN 19 1.2 SISTEMAS DE PRODUCCIÓN Para operar en forma efectiva, una empresa manufacturera debe tener sistemas que le permitan lograr eficientemente el tipo de producción que realiza. Los sistemas de producción

Más detalles

2.2 Conmutación de circuitos ópticos (OCS)

2.2 Conmutación de circuitos ópticos (OCS) Evaluación de Arquitecturas de Red Híbridas OBS/OCS 23 2.2 Conmutación de circuitos ópticos (OCS) 2.2.1 Redes dinámicas de conmutación de circuitos ópticos Como se ha visto en el apartado 2.1.2 la conmutación

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

Sistema de detección de incendios. Sergio Menéndez Muñiz Consultor: Jordi Bécares Ferrés Fecha: Junio 2012

Sistema de detección de incendios. Sergio Menéndez Muñiz Consultor: Jordi Bécares Ferrés Fecha: Junio 2012 Sistema de detección de incendios Autor: Sergio Menéndez Muñiz Consultor: Jordi Bécares Ferrés Fecha: Junio 2012 Índice 1. Introducción del sistema 2-3. Aplicación y posibilidades del sistema 4-5. Posicionamiento

Más detalles

Fundamentos de Redes LI. Unidad III Modelos de Comunicaciones 3.1 Modelo de referencia OSI.

Fundamentos de Redes LI. Unidad III Modelos de Comunicaciones 3.1 Modelo de referencia OSI. 3.1 Modelo de referencia OSI. Durante las últimas dos décadas ha habido un enorme crecimiento en la cantidad y tamaño de las redes. Muchas de ellas sin embargo, se desarrollaron utilizando implementaciones

Más detalles

http://www.statum.biz http://www.statum.info http://www.statum.org

http://www.statum.biz http://www.statum.info http://www.statum.org ApiaMonitor Monitor de Infraestructura BPMS Por: Ing. Manuel Cabanelas Product Manager de Apia Manuel.Cabanelas@statum.biz http://www.statum.biz http://www.statum.info http://www.statum.org Abstract A

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Cenditel, Mayo 2011 Licencia de Uso Copyright (c) 2010, Alvarez J., Solé S., Briceño R., Fundación CENDITEL. La Fundación CENDITEL

Más detalles

Introducción a las Redes

Introducción a las Redes Introducción a las Redes Tabla de Contenidos 1. Introducción a las Redes... 2 1.1 Clasificación de las redes y topología... 3 1.1.1 Según su distribución...3 1.1.2 Según su tamaño...6 1. Introducción a

Más detalles

CSIR2121. Administración de Redes I

CSIR2121. Administración de Redes I CSIR2121 Administración de Redes I Objetivos: Al finalizar la clase el estudiante podrá: Mencionar el propósito del desarrollo del modelo TCP/IP. Explicar cada una de las capas del modelo TCP/IP. Comparar

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica) Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica) Servinet Sistemas y Comunicación S.L. www.softwaregestionsat.com Última Revisión: Octubre 2014 FUNCIONALIDADES SAT

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Sistemas de información

Sistemas de información Sistemas de información Es un conjunto integrado de componentes que almacenan, recolectan y procesan datos, para la entrega de la información, el conocimiento y los productos digitales. Las empresas comerciales

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

Redes de Comunicaciones. José Manuel Vázquez Naya

Redes de Comunicaciones. José Manuel Vázquez Naya Redes de Comunicaciones José Manuel Vázquez Naya Contenido Introducción a las redes Conceptos básicos Ventajas de las redes Clasificación según su ubicación (LAN, MAN, WAN) Componentes básicos de una red

Más detalles

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores Martha Alicia Alles Es contadora pública nacional, doctora por la Universidad de Buenos Aires en la especialidad

Más detalles

DISEÑO E IMPLEMENTACION DE UN PROTOTIPO DE MEDICION DE ENERGIA POR MEDIO DE TECNOLOGIA ZIGBEE y WIFI MARCO TEORICO

DISEÑO E IMPLEMENTACION DE UN PROTOTIPO DE MEDICION DE ENERGIA POR MEDIO DE TECNOLOGIA ZIGBEE y WIFI MARCO TEORICO DISEÑO E IMPLEMENTACION DE UN PROTOTIPO DE MEDICION DE ENERGIA POR MEDIO DE TECNOLOGIA ZIGBEE y WIFI MARCO TEORICO 28 de marzo de 2011 2 Índice general 1. 1. ZigBee 1 1.1. Descripción de ZigBee......................

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

Curso Online de Microsoft Project

Curso Online de Microsoft Project Curso Online de Microsoft Project Presentación El curso a distancia estudia conceptos generales sobre las tecnologías relacionadas con Internet. Conceptos que cualquier usuario de ordenadores debe conocer

Más detalles

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS GRADO 11 Nombre(s) y Apellidos: Jorge Alexander Silva Gómez. Documento: 1095826555 FICHA NÚMERO COLEGIO: Instituto Madre del Buen Concejo FECHA: Abril 23 del

Más detalles

Planificación de Sistemas de Información

Planificación de Sistemas de Información Planificación de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...1 ACTIVIDAD 1: INICIO DEL PLAN DE SISTEMAS DE INFORMACIÓN...4 Tarea 1.1: Análisis de la Necesidad del...4 Tarea 1.2: Identificación

Más detalles

Bechtle Solutions Servicios Profesionales

Bechtle Solutions Servicios Profesionales Soluciones Tecnología Bechtle Solutions Servicios Profesionales Fin del servicio de soporte técnico de Windows Server 2003 No hacer nada puede ser un riesgo BECHTLE Su especialista en informática Ahora

Más detalles

Gestión de Configuración del Software

Gestión de Configuración del Software Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software

Más detalles

Sistema de marketing de proximidad

Sistema de marketing de proximidad Dizan Vasquez Propuesta de proyecto Sistema de marketing de proximidad ACME México Dizan Vasquez Índice general 1. Descripción 3 2. Resúmen ejecutivo 4 2.1. Objetivo.................................................

Más detalles

TIPOS DE REDES QUE CONFORMAN INTERNET. LAN, WAN, MAN, WLAN, WMAN, WWMAN, SAN y PAN: Qué significa cada término?

TIPOS DE REDES QUE CONFORMAN INTERNET. LAN, WAN, MAN, WLAN, WMAN, WWMAN, SAN y PAN: Qué significa cada término? TIPOS DE REDES QUE CONFORMAN INTERNET LAN, WAN, MAN, WLAN, WMAN, WWMAN, SAN y PAN: Qué significa cada término? En la actualidad, es casi imposible pensar en un mundo en donde las redes de computadoras

Más detalles

Ventajas del software del SIGOB para las instituciones

Ventajas del software del SIGOB para las instituciones Ventajas del software del SIGOB para las instituciones Podemos afirmar que además de la metodología y los enfoques de trabajo que provee el proyecto, el software, eenn ssi i mi issmoo, resulta un gran

Más detalles

Planificación de Sistemas de Información

Planificación de Sistemas de Información Planificación de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD 1: INICIO DEL PLAN DE SISTEMAS DE INFORMACIÓN... 4 Tarea 1.1: Análisis de la Necesidad del... 4 Tarea 1.2: Identificación

Más detalles

Universidad de Almería Máster en Administración, Comunicaciones y Seguridad Informática REDES MESH. Tania Pérez González Ginés Granados Bayona

Universidad de Almería Máster en Administración, Comunicaciones y Seguridad Informática REDES MESH. Tania Pérez González Ginés Granados Bayona Universidad de Almería Máster en Administración, Comunicaciones y Seguridad Informática REDES MESH Tania Pérez González Ginés Granados Bayona Estructura de la presentación Qué es la tecnología inalámbrica?

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

CAPÍTULO 3 TOPOLOGÍA DE RED MESH

CAPÍTULO 3 TOPOLOGÍA DE RED MESH CAPÍTULO 3 TOPOLOGÍA DE RED MESH 3.1 Definición La topología de red es la disposición física en la que se conecta una red de nodos. Un nodo dado tiene una o más conexiones con diferentes variedades de

Más detalles