Capítulo 3. Redes Wireless Ad-hoc CAPÍTULO 3 REDES WIRELESS AD-HOC 3.1 Ad-hoc Network y Mobile Ad-hoc Network (MANET) La reciente proliferación de los dispositivos portátiles y la difusión de la tecnología sin cables han permitido prosperar a las denominadas redes wireless ad-hoc. Últimamente el interés por la comunicación a través de las redes inalámbricas ad-hoc ha aumentado en modo consistente [10]. La atención por parte de la comunidad científica es evidente, por las múltiples publicaciones ya presentes al cuidado de las instituciones de numerosos grupos de trabajo, como el IETF (Internet Engineering Task Force) y el IRTF (Internet Research Task Force), en torno a los cuales se centra la actividad de investigación. 39 Capítulo 3. Redes Wireless Ad-hoc Figura 3.1: Ejemplo de red wireless ad hoc. En aquellos casos en los que no es posible servirse de una infraestructura de comunicación fija, o como en el caso de conferencias en salas desprovistas de una infraestructura de red, o para compartir información, es posible utilizar la “ad-hoc network (red de comunicación ad-hoc)”. Las redes ad-hoc son un tipo particular de redes sin control central y sin conexión con el “mundo externo”: pertenecen a la tipología de las redes de comunicaciones sin infraestructuras (infrastructurless networks), a diferencia de las WLAN, que son de tipo fiable (reliabile infrastructured). En este caso, la única infraestructura consentida es aquella formada por los nodos que participan en la red (figura 3.1). Una red ad-hoc puede ser formada cuando se quieren intercambiar datos en ausencia de un punto de acceso (Access Point) centralizado: la red se forma “espontáneamente”; simplemente porque los dispositivos móviles se encuentran cercanos entre ellos, necesitan comunicarse, y no existen infraestructuras de red preexistente en la sede [10]. La ventaja de estar libre en cualquier infraestructura implica para estas redes una intrínseca facilidad y velocidad de instalación que la hace muy versátil. Cada nodo perteneciente a la red ad-hoc tiene la capacidad de un router, por lo tanto, no es necesario que dos nodos deban tener visibilidad radio para comunicarse entre ellos (se piensa, por ejemplo, en la presencia de un obstáculo o si están a una excesiva distancia entre ellos). Basta que un nodo, en lugar de enviar directamente los 40 Capítulo 3. Redes Wireless Ad-hoc paquetes al nodo destinatario, pueda encaminar los paquetes hacia otro nodo con los cuales está en visibilidad radio y este último se encargue de retransmitir los paquetes hacia el destino [18]. Se puede tener de esta manera caminos a saltos múltiples (multihop) y ampliar notablemente el área geográfica en la cual puede operar una red ad-hoc. Tal sistema se revela particularmente útil para las operaciones de protección civil y en campos militares [24]. Las tecnologías utilizadas a nivel físico por las redes de comunicación ad-hoc no se diferencian de aquellas usadas en las redes WLAN. Esencialmente se utilizan las siguientes tres técnicas [1]: ¾ Spread Spectrum ¾ Infrarrojos ¾ OFDM Si a estas características se le añade la funcionalidad de movilidad de los nodos, obtenemos una Mobile Ad-hoc Network (MANET) [20]. Resulta evidente que en este caso los nodos están conectados mediante enlaces (links) altamente inestables: los servidores móviles pueden aislarse completamente formando grupos de servidores que evolucionan independientemente organizándose en células (cluster), como viene mostrado en la figura 3.2, que pueden sucesivamente unirse. Figura 3.2: Móvil ad-hoc network consituida por 3células. 41 Capítulo 3. Redes Wireless Ad-hoc Considerando que los nodos móviles tienen un rango de transmisión limitado, los nodos puestos a grandes distancias se comunican a través de caminos a saltos múltiples, es decir, a través de más nodos antes de alcanzar al destinatario. Su facilidad de instalación convierte a la MANET, y a la ad-hoc en general, en una elección idónea para muchas variedades de aplicaciones [19]. Con la utilización de MANET se puede, sin embargo, encontrar algunos inconvenientes: el medio de propagación inalámbrico, el aire, goza de características variables e impredecibles; la potencia de la señal y el tiempo de propagación varían en el tiempo y en base al ambiente. Considerando que, tanto la duración de las baterías de los dispositivos portátiles como la disponibilidad de banda, tienen recursos limitados, es necesario que todos los protocolos no consuman excesivamente tales recursos. La movilidad de los nodos, creando un continuo cambio en la topología, requiere protocolos en grado de crear caminos de enrutamiento a modo dinámico y eficiente para evitar incurrir en el típico problema del link failure (fallos de enlaces). Este se verifica cuando no se le señala oportunamente a un nodo que otro no está en su radio de visibilidad. Al interno del IETF, en el 1997, fue constituido un grupo de trabajo llamado MANET Working Group, con la finalidad de estudiar y desarrollar los protocolos de enrutamientos estándares para las redes sin cables basadas en el protocolo IP, adaptadas a topologías tanto estáticas como dinámicas [18]. Además, este grupo de trabajo, junto con el que se ocupa de MANET del IRTF, estudia cuestiones relativas a los problemas de ejecución y seguridad en las redes móviles ad-hoc [20] [18]. 3.2 Principios generales sobre el enrutamiento Como se observa al interno de una red de computadoras, para transferir informaciones desde un servidor a otro, son necesarios algoritmos de enrutamiento (algoritmos de routing). En el caso de la arquitectura TCP/IP, esta tarea está confiada al nivel Internet, en el cual se implementan los denominados algoritmos de enrutamiento, responsables de la determinación del camino seguido por cada paquete hasta alcanzar al destinatario. 42 Capítulo 3. Redes Wireless Ad-hoc Igualmente, la responsabilidad de la red de conexión de internet (internetworking) es delegada al protocolo IP. En Internet cada nodo es individualizado mediante una dirección IP, única en toda la red. Las direcciones IP se generan bajo la autoridad de la Internet Coorporation for Assigned Names and Numbers (ICANN), en base a las directivas impuestas por la RFC (Request for Comments) 2050 [25], que se organizan en muchas clases jerárquicas. En particular, en Internet, cada datagrama IP transmitido lleva al interno la dirección IP del servidor remitente y del receptor: es, pues, tarea de los encaminadores (routers) hacer llegar el paquete al terminal de destino. La operación de tramitación de cada paquete viene llevada a cabo consultando la llamada tabla de routing. Una tabla de routing puede verse como una lista en la cual, a cada dirección de destinatario, le corresponde una puerta de salida hacia la que se transmite las informaciones. Tal lista se construye y se actualiza mediante un algoritmo de enrutamiento que implica el uso de protocolos y algoritmos entre más encaminadores [22]. De los algoritmos de direccionamiento dependen determinadas propiedades de las redes. En primer lugar, la robusteza, o la capacidad de tolerar los daños del router. A continuación, la imparcialidad, que atañe a la posibilidad de que todas las conexiones vean igualmente digeridos su tráfico. Y, finalmente, la optimización, que prevé que el algoritmo busque optimizar un parámetro de la red [26]. La elección del parámetro a optimizar depende de las exigencias del usuario y varía de algoritmo a algoritmo. Este parámetro puede consistir o, en el retardo medio de los paquetes a lo largo de la red o, en el volumen de datos transmitidos a lo largo de la red o, incluso, en el número de saltos (hop) que el paquete debe atravesar para alcanzar el destino. Según el tipo de parámetro, a cada enlace de la red, se le atribuye un costo: el algoritmo de enrutamiento buscará elegir, para cada paquete, el camino a “menor costo”. Existen diversas tipologías de algoritmo de enrutamiento; aquellas más usadas en las redes cableadas tradicionales son [10]: Link State, Distance Vector, Source Routing, Random e Flooding. • Con el Link State se asigna un costo a cada link o conexión. Cada nodo administra un mapa completo de la topología de la red. Periódicamente cada nodo manda en broadcast (difusión) el costo de los enlaces a los cuales está 43 Capítulo 3. Redes Wireless Ad-hoc conectado, y los restantes actualizan el mapa de la red y la tabla de enrutamiento aplicando un algoritmo que tiene en cuenta el camino a menor costo. • En el Distance Vector cada nodo conoce ya el costo de los enlaces a los que está conectado. Cada nodo comunica con su vecino a que otros nodos puede alcanzar y a qué costo. Así cada nodo recalcula la propia tabla de enrutamiento siguiendo las informaciones que ha recibido, y usando un algoritmo que tiene en cuenta, por ejemplo, el camino a menor costo. • Con el Source Routing, las decisiones pertinentes al router vienen tomadas de la fuente y los paquetes de información siguen un camino ya establecido. • El direccionamiento Random es de tipo casual ya que la rama de salida del nodo, a menos que el servidor destinatario del paquete no esté directamente conectado al nodo en cuestión, viene elegida casualmente. De este modo, sin embargo, el algoritmo garantiza una utilización óptima de los recursos de la red, ya que goza de la simplicidad de implementación y gestión [4]. • Finalmente, en el Flooding sucede que cada paquete de información recibido viene transmitido y replicado sobre todos los enlaces salientes, a menos que la dirección de destino no sea un servidor directamente conectado al mismo nodo. Obtenemos una red muy robusta, utilizable en particular, en las aplicaciones militares; aunque sea necesario adoptar destreza para limitar el tráfico interno a la red poco a poco, mientras los paquetes atraviesan los nodos de tránsito [4]. 3.3 Protocolos de enrutamiento en las redes wireless ad-hoc. En el caso en el que se encuentren redes no dotadas de una infraestructura como por ejemplo, las redes ad-hoc, de las cuales hemos hablado, se hace necesario los algoritmos de enrutamiento adecuados en los que hay que tener en cuenta la característica dinámica de tales sistemas (en las redes inalámbricas ad-hoc, los nodos podrían moverse modificando así la topología de la red). En este tipo de redes, por otro lado, cada nodo debe tener la capacidad de un router. 44 Capítulo 3. Redes Wireless Ad-hoc Los algoritmos de direccionamiento existentes para las redes wireless ad-hoc pueden clasificarse en tres categorías: proactive, reactive e hybrid [21], como viene representado en la figura siguiente: Figura 3.3: Clasificación de los protocolos de enrutamiento ad-hoc. Aquellas de tipo proactive mantienen constantemente actualizados la información de direccionamiento a través de intercambios de paquetes a intervalos temporales fijos. Esto permite tener un direccionamiento disponible a cada petición de enrutamiento, pero está la desventaja de producir tráfico de señalización incluso cuando no se transmite ningún paquete de datos; esto puede provocar sobrecarga en la red. En los protocolos de tipo reactive viene invocado un procedimiento para determinar el correcto direccionamiento sólo en el momento en el que el paquete deba efectivamente transmitirse. De este modo, se reduce el tráfico de señalización en detrimento de un aumento de los tiempos de entrega. El tercer tipo de protocolos, hybrid, busca, como dice su nombre, de unir las ventajas de ambos protocolos precedentes, limitando la aplicación de algoritmos proactive sólo a los nodos adyacentes del que quiere transmitir. A continuación se describen algunos de los algoritmos de direccionamiento más usados en las redes wireless ad-hoc: ¾ AODV (Ad-hoc On Demand Vector), ¾ DSDV (Destination Sequenced Distance Vector), 45 Capítulo 3. Redes Wireless Ad-hoc ¾ DSR (Dynamic Source Routing), ¾ TORA (Temporally Ordered Routing Algorithm). 3.3.1 AODV (Ad-hoc On Demand Vector) El protocolo AODV [27] es un protocolo de enrutamiento de tipo reactive basado en el algoritmo Distance Vector. Una característica fundamental del protocolo es que los nodos destino de un trayecto, antes de proporcionar información de direccionamiento, crean un número de secuencia de destino (destination sequence number), que proporciona a los nodos un instrumento para evaluar cuanto se ha actualizado un determinado recorrido evitando la formación de lazos (loop) en el camino de enrutamiento. Un terminal que deba elegir entre varios caminos hacia un cierto destino, elegirá aquel caracterizado por el número de secuencia mayor, correspondiente a una información de routing mas reciente. Además, el protocolo soporta el enrutamiento multidifusión (multicast) [22]. Este protocolo usa mensajes particulares llamados RREQ (Route Request), RREP (Route Replies) y RERR (Route Errors) que son enviados y recibidos mediante el protocolo UDP. Cuando un nodo quiere encontrar un camino hacia otro nodo de la red: 1) envía en broadcast un mensaje del tipo RREQ (figura 3.4); 2) atiende una respuesta del destinatario o, de otro nodo, que posee un camino de enrutamiento bastante reciente hacia aquel destino. Esta respuesta llegará con un mensaje de tipo RREP (figura 3.5) confirmando incluso que el camino buscado está disponible. 46 Capítulo 3. Redes Wireless Ad-hoc Figura 3.4: Transmisión broadcast de RREQ. Figura 3.5: Transmisión unicast de RREP. Por nodo que posea un camino de direccionamiento bastante reciente se entiende un nodo que conozca un trayecto asociado a un número de secuencia destino que sea de grande, al menos, como aquel contenido en el mensaje RREQ [23]. Además, los nodos de la red que forman parte de trayectos activos pueden transmitir periódicamente mensajes especiales de RREP, llamados mensajes “Hello”, a sus nodos más cercanos. La falta de mensajes “Hello” por parte de los nodos vecinos viene interpretada como pérdida de la conexión con ese nodo y hace que el nodo que debería haber recibido tal mensaje proceda a corregir su tabla de enrutamiento, eliminando aquel trayecto [23]. En la fase de extracción de la tabla de enrutamiento de una puerta de acceso a un nodo vecino, con motivo de que ya no es alcanzable, el nodo se preocupa de mandar un mensaje RERR a los nodos adyacentes que usaban el trayecto, informándoles del 47 Capítulo 3. Redes Wireless Ad-hoc acontecimiento. Todo esto sucede sin dificultad en cuanto a que cada nodo conserva una lista de los nodos cercanos que están activos en cualquier comunicación [23]. El procedimiento del mensaje RERR viene, por tanto, repetido por los nodos intermedios determinando así la actualización de las tablas de direccionamiento de todos los nodos de la red [23]. 3.3.2 DSDV (Destination Sequenced Distance Vector) El DSDV [23] es un protocolo de direccionamiento de tipo proactive que pertenece a la familia de los algoritmos Distance Vector. Cada nodo perteneciente a la red tiene una tabla de enrutamiento que indica para cada destino cuantos saltos (hop) hacen falta atravesar y cual es el sucesivo. Derivando del Distance Vector, la actualización de las tablas de enrutamiento se producen mediante el intercambio de información entre nodos cercanos y reaplicando los algoritmos de camino mínimo a menor costo. Cada camino viene etiquetado con un número de secuencia (sequence number), que da una indicación temporal sobre la validez de aquel camino: a números de secuencia más altos corresponden caminos más fiables. Cuando dos caminos tienen el mismo número de secuencia viene elegido aquel que tiene el menor costo (por ejemplo el que menor número de saltos tenga que atravesar). En caso de que un nodo notase que un trayecto hacia un destino no funciona, asigna al número de salto un valor alto (que significa infinito) y al número de secuencia un número impar. Un número de secuencia identificado con un número impar señala que aquel camino es inalcanzable mientras que, por el contrario, un número par indica que el destino sí es alcanzable [28]. 3.3.3 DSR (Dynamic Source Routing) El protocolo DSR [29], de tipo reactive, se caracteriza por el uso del Source Routing y del mecanismo de tipo “On Demand” [27]. En tal sistema el source routing hace que los nodos fuente conozcan “paso a paso” (hop by hop) el camino que deben 48 Capítulo 3. Redes Wireless Ad-hoc efectuar para alcanzar al destinatario. Esto se lleva a cabo gracias a una memoria de enrutamiento (route cache) que memoriza todos los caminos a efectuar. Si el nodo que quiere enviar un paquete informativo pertenece a una red inalámbrica ad-hoc, se inicia un proceso de Routing Discovery. Tal proceso consiste en el envío, por parte del nodo, de mensajes RREQ en Flooding sobre la red, mensajes que todos los otros nodos receptores enviarán a su vez en Flooding. En cambio, en el caso en el que el nodo sea el nodo destinatario o son nodos que tienen, en la propia memoria de enrutamiento, un trayecto válido, responden al mensaje RREQ, transmitiendo al nodo solicitante un paquete RREP. Habitualmente, este último sigue un camino inverso respecto al del RREQ y mantendrá toda la información de direccionamiento que se memorizará desde el nodo solicitante [27]. Por último, si una conexión se interrumpe, vienen notificados una serie de paquetes RERR de modo que todos los nodos actualicen su memoria de direccionamiento y no usen más ese enlace. El protocolo DSR hace un uso intenso de la memoria de direccionamiento y de la fuente de direccionamiento para evitar los lazos (loop) [27]. 3.3.4 TORA (Temporally Ordered Routing Algorithm) El protocolo TORA [23], de tipo reactive, se caracteriza por proporcionar al nodo remitente, no sólo uno, sino múltiples trayectos para hacerle llegar al destino. El procedimiento es el siguiente: cada nodo realiza una copia de TORA para cada destino y el protocolo crea, mantiene y cancela los trayectos de enrutamiento. El TORA asocia un peso a cada nodo de la red respecto a un destino, y los mensajes se desplazan desde un nodo con mayor peso hacia uno con peso menor; mientras los caminos descubiertos con paquetes de tipo QRY (Query) vienen actualizados con aquellos de tipo UPD (Update). Si un nodo necesita conocer un trayecto hacia un destino manda en difusión (broadcast) un paquete QRY que se propaga, hasta que no alcanza el nodo destinatario o a un nodo que posea un trayecto válido hacia el destino. El nodo que responda se servirá a su vez de un paquete UPD que agregará también su peso. Los paquetes UPD se enviarán en difusión de modo que permitan a todos los nodos intermedios modificar su peso convenientemente. Se deriva, por tanto, que los nodos que quieran alcanzar 49 Capítulo 3. Redes Wireless Ad-hoc destinos lejanos o directamente inalcanzables, aumentan su peso local hasta el máximo valor consentido, mientras que el nodo que encuentre un nodo cercano con un peso que tienda a infinito, cambiará el trayecto. El paquete de tipo CLR (Clear) interviene en algunos casos para resetear todos los estados de direccionamiento de una porción de red cuando el destino sea completamente inalcanzable [23]. El protocolo TORA se apoya en el protocolo para redes MANET llamado IMEP (Internet MANET Encapsulation Protocol) que proporciona un servicio de expedición fiable para protocolos de enrutamiento [30]. La agregación en un único bloque de los mensajes IMEP y TORA reduce el overhead de la red y prueban el estado de los nodos vecinos. Para obtener tal agregación se utiliza periódicamente un intercambio de mensajes llamados BEACON y HELLO. 50