INSTITUTO POLITÉCNICO NACIONAL
Escuela Superior de Ingeniería
Mecánica y Eléctrica
T E S I S
“ESTUDIO DEL DESEMPEÑO DEL PROTOCOLO DSDV
EN UNA
RED AD-HOC MEDIANTE UN SIMULADOR DE EVENTOS
DISCRETOS”
QUE PARA OBTENER EL GRADO DE
LIC. EN INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA
PRESENTA:
ROBERTO ESPARZA DELGADILLO
ASESOR:
M. EN C. ERIC GÓMEZ GÓMEZ
Agradecimientos a mi Familia
A mi familia fuente de apoyo constante incondicional en toda mi vida y más aún en mis duros años de carrera profesional y en especial quiero expresar mi más grande agradecimiento a mi abuelita Manuela y a mi abuelito Vicente que fueron los precursores
de este proyecto de vida, junto con mi mama, sin la ayuda de ellos nada de esto hubiese sido posible…
Agradecimientos a mis Amigos
Cuando pienso en mis amigos quisiera nombrar a tantas personas que de alguna u otra forma aportaron un granito de arena para lograr este objetivo. Sergio Gómez, Arq. Gonzalo, Jaime Delgado, Rubén Abasolo, el profesor Rubén Cabrera, Familia García, Alex,
Roció y compañía. ESIME: Víctor, Jorge y Damián.
Héctor, Alonzo, Yaz, Ponchito, Chester, José Luis, Fredy y mi primo Luis que siempre está para aportar motivación para mi vida y carrera profesional un abrazo.
Interexport: Miguel Mendoza por el apoyo y la confianza, Manuel Téllez gracias por el empujón que necesitaba, Israel Hernandez un enorme agradecimiento por la ultima
revisión y por las conversaciones tan amenas.
Ya en la recta final y no menos importantes Familia Coronel un gran abrazo para todos especialmente para Aline Coronel por su apoyo compresión y compañía.
Agradecimientos a mi Asesor
Mi más sincero agradecimiento a mi asesor Profeso Eric Gómez Gómez por su esfuerzo y dedicación, sus conocimientos, su manera de trabajar y su paciencia han sido fundamentales para mi formación de Ingeniero desde que lo conocí me ha inculcado a su
manera, sentido de seriedad, responsabilidad y rigor académico sin los cuales no podría tener una formación completa.
Objetivo
EVALUAR EL DESEMPEÑO DEL PROTOCOLO DSDV EN UN ENTORNO
INALÁMBRICO AD-HOC UTILIZANDO TÉCNICAS DE SIMULACIÓN
Índice de Contenido
Abstract ... 1
Resumen ... 2
Introducción General. ... 3
Objetivo del Trabajo. ... 4
Método de Investigación. ... 5
Contribución del Trabajo. ... 6
Capítulo 1 Estudio de los protocolos de enrutamiento en redes inalámbricas. ... 7
1.1 Introducción. ...7
1.1. Protocolos de enrutamiento proactivos, reactivos e híbridos. ...9
1.3. Algoritmo Vector-Distancia (Bellman - Ford). ...10
1.4. Enrutamiento en redes ad hoc. ...12
1.5. Enrutamiento ideal en una red Ad-hoc. ...13
1.6. Protocolo Destination - Sequenced Distance Vector (DSDV). ...14
Capítulo 2. Características de otros protocolos de enrutamiento ... 21
2.1. Introducción. ...21
2.2. Comparación de los protocolos de enrutamiento. ...21
2.3 Estadísticas y Comparación de protocolos de enrutamiento. ...26
Capítulo 3. Metodología de análisis. ... 30
3.1. Generalidades. ...30
3.2. Elección del método de análisis. ...34
3.3. Linux Ubuntu 14.04. ...35
3.4. Simulador de Redes Network Simulator (NS-2). ...36
3.5. Instalación de NS-2. ...38
3.6. Instalación de NS-2 en Linux distribución Ubuntu. ...38
3.7. Funcionamiento del NS-2. ...41
3.8. Tool Command Lenguage (Tcl)...43
3.9. Script OTcl. ...44
3.10. The Network Animation (NAM) ...44
3.11. Archivos de Traza de NS-2. ...47
3.13. TraceGraph. ...50
3.14. Características de TraceGraph. ...51
Capítulo 4. Evaluación del desempeño DSDV. ... 52
4.1. Medidas de desempeño. ...53
4.1. Escenario 1 simulación del protocolo DSDV con 5 nodos. ...55
4.2. Escenario 2 simulación DSDV con 10 nodos. ...60
4.3 Escenario 3 simulación DSDV con 20 nodos. ...64
4.4. Escenario 4.- simulación DSDV con 40 nodos. ...68
Capítulo 5. Resultados y Conclusiones. ... 72
5.1 Conclusiones. ...76
Índice de Términos... 78
Acrónimos. ... 82
Bibliografía ... 84
Índice de Figuras y Tablas
Capítulo 1 Estudio de los protocolos de enrutamiento en redes inalámbricas. ... 7
Figura 1.1.-Clasificación básica de los protocolos de enrutamiento de las redes inalámbricas [2]. 9
Figura 1.2.- Identificadores para el algoritmo Bellman-Ford [3]. 11
Figura 1.3.- Señalización del protocolo DSDV [4]. 17
Figura 1.4.- Envío de paquetes de señalización DSDV del Nodo B al nodo A. 18
Figura 1.5.- Estado de las tablas de enrutamiento durante el proceso de actualización. 19
Figura 1.6.- Estado de las tablas de enrutamiento durante la integración de un nuevo nodo. 19
Figura 1.7.- Estado de las tablas de enrutamiento durante la pérdida de un nodo. 20
Capítulo 2. Características de otros protocolos de enrutamiento ... 21
Figura 2.1.- Numero de paquetes recibidos escenario 1. 26
Figura 2.2.- Throughput del escenario 1 27
Figura 2.2.- Visualización del escenario 2 27
Figura 2.3.- Visualización del escenario 2 28
Figura 2.4.- Visualización del escenario 2 29
Figura 2.5.- Visualización del escenario 2: DSR 29
Capítulo 3. Metodología de análisis. ... 30
Tabla 3.1. Comparación de los simuladores (Características generales) 32
Tabla 3.2. Ventajas y Desventajas de los simuladores 33
Figura 3.1.- Funcionamiento interno de Network Simulator 2[14]. 41
Figura 3.2.- Jerarquía general de clases de Network Simulator 2[14] 42
Figura 3.3.- Interface de Network Simulator (NAM) [14] 45
Figura 3.4.- Ejemplo de Network Simulator de una Red Cableada 46
Figura 3.5.- Ejemplo de Network Simulator de una Red inalámbrica 47
Figura 3.6.- Estructura General de un archivo de traza 47
Figura 3.7.- Muestra de datos de un archivo de Traza 47
Capítulo 4. Evaluación del desempeño DSDV. ... 52
Tabla 4.1.- Características de los escenarios a simular. 52
Figura 4.1.- Simulación en la NAM de 5 nodos, enviando y recibiendo paquetes. 56
Figura 4.2.- Detalles de la simulación, instantánea tomada del archivo de Tracertgraph. 57
Figura 4.3.- Grafica del Throughput de los paquetes recibidos contra el tiempo de simulación. 57
Figura 4.4.- Grafica del Throughput de los paquetes enviados contra el tiempo de simulación. 58
Figura 4.5.- Grafica de los DroppedPackets (paquetes caídos). 58
Figura 4.6.- Grafica que muestra la Frecuencia de Distribución. 59
Figura 4.7.- Grafica que muestra da Distribución acumulativa 59
Figura 4.8.- Simulación en la NAM de 10 nodos, enviando y recibiendo paquetes y mostrando paquetes perdidos
durante la simulación. 60
Figura 4.9.- Detalles de la simulación con 10 nodos, instantánea tomada del archivo de Tracertgraph. 61
Figura 4.10.- Grafica del Throughput de los paquetes recibidos contra el tiempo de simulación. 61
Figura 4.11.- Grafica del Throughput de los paquetes enviados contra el tiempo de simulación. 62
Figura 4.12.- Grafica de los DroppedPackets (paquetes caídos). 62
Figura 4.13.- Grafica que muestra la Frecuencia de Distribución. 63
Figura 4.14.- Grafica que muestra da Distribución acumulativa. 63
Figura 4.15.- Simulación en la NAM de 20 nodos, enviando y recibiendo paquetes 65
Figura 4.17.- Gráfica del Throughput de los paquetes enviados contra el tiempo de simulación. 66
Figura 4.18.- Grafica del Throughput de los paquetes recibidos contra el tiempo de simulación. 66
Figura 4.19.- Grafica que muestra los Paquetes Caídos (Dropped Packets). 67
Figura 4.20.- Grafica que muestra la Frecuencia de Distribución. 67
Figura 4.21.- Grafica que muestra la Distribución Acumulativa. 68
Figura 4.22.- Simulación en la NAM de 40 nodos, enviando y recibiendo paquetes 69
Figura 4.23.- Detalles de la simulación con 40 nodos, instantánea tomada del archivo de Tracegraph. 69
Figura 4.24.- Grafica del Throughput de los paquetes enviados contra el tiempo de simulación. 70
Figura 4.25.- Grafica del Throughput de los paquetes recibidos contra el tiempo de simulación. 70
Figura 4.26.- Grafica que muestra los Paquetes Caídos (Dropped Packets). 71
Figura 4.27.- Grafica que muestra la Frecuencia de Distribución. 71
Figura 4.28.- Grafica que muestra la Distribución Acumulativa. 72
Capítulo 5. Resultados y Conclusiones. ... 72
Tabla 5.1.- Comparación de los diferentes parámetros contra el número de nodos en cada una de las
simulaciones. 73
Figura 5.1.- Paquetes Enviados contra el número de nodos. 74
Figura 5.2.- Paquetes Recibidos contra el número de nodos. 74
1
Abstract
The purpose of this Thesis is to analyze a routing protocol in a wireless network by using a computer simulation program, in order to evaluate its advantages and disadvantages, specifically in Ad-Hoc wireless technologies in their different environments and working conditions. Due to the need users have with their terminals and equipment, which are required to maintain in communication while providing mobility as well (such as Notebooks, Smartphones, etc.). For this analysis I have defined different types of scenarios with fixed dimensions on the three Cartesian axes to simulate an operational network, where parameters are constantly changing, such as the mobility of those nodes in a real time basis, changes on nodes positions considered in this scenario and quantity of nodes working simultaneously. My goal for this computer simulation is to obtain accurate results that could help to demonstrate service quality and speed operation of DSDV protocol. It means, my main goal is to meet its performance by measuring parameters such as packets sent, packets received, packets lost, and throughput, as well as other parameters.
2
Resumen
El objetivo de esta Tesis es realizar un análisis acerca de un protocolo de enrutamiento para redes inalámbricas usando técnicas de simulación por computadora, con el propósito de evaluar las ventajas y desventajas de este protocolo en redes de datos Ad-Hoc, específicamente en tecnologías inalámbricas de tipo Ad-hoc para diversos ambientes y condiciones de trabajo. Esto debido a que los usuarios requieren
que sus equipos personales tengan movilidad y comunicación al mismo tiempo (Notebooks, Smartphones, etc.). Dentro de este análisis he planteado diferentes escenarios de simulación para una red virtual con dimensiones definidas en los tres ejes cartesianos y sobre los cuales se variaron algunos parámetros de operación como son la movilidad de los nodos en tiempo real, cambio en las posiciones de los nodos que se integran en el escenario y hasta la cantidad de nodos trabajando al mismo tiempo. El objetivo del análisis es que la simulación por computadora obtenga datos precisos de la prueba, lo que servirá para evaluar la calidad del servicio y la velocidad de la operación del protocolo DSDV. Es decir, el objetivo primario es conocer su desempeño general, midiendo algunos parámetros como son los paquetes enviados, paquetes recibidos, paquetes perdidos, y rendimiento.
3
Introducción General.
El presente trabajo muestra tópicos relacionados con las telecomunicaciones y más específicamente con las redes de computadoras. También establece la importancia del estudio en los protocolos de enrutamiento de las redes de datos ya que estos son de suma importancia para que una red sea cada vez más eficiente y cumpla su objetivo primordial, que es transmitir la información completa, sin errores.
En este trabajo se ofrece información sobre varias herramientas informáticas montadas sobre una plataforma Linux, mismas que también son compatibles con sistemas operativos Windows. En este trabajo se usan técnicas de simulación por computadora debido a que realizar este análisis con otras técnicas como la analítica o la práctica que implican mayor complejidad, alto costo y requiere demasiado tiempo. La simulación nos facilita también evaluar diferentes escenarios en donde el modificar parámetros y datos como el número de nodos, dimensiones de los escenarios, tamaño de paquetes es relativamente fácil.
4
Objetivo del Trabajo.
El objetivo principal de este trabajo es evaluar el desempeño de un protocolo de enrutamiento del tipo proactivo o también llamado “basado en tablas” para redes inalámbricas. Dicho protocolo consiste en el descubrimiento de rutas a partir del algoritmo matemático llamado Bellman-Ford, denominado específicamente como DSDV (Destination Sequenced Distance Vector), generado a partir de un análisis basado en una simulación por computadora.
Se presentan a la comunidad docente y académica herramientas para el análisis de redes de datos, proponiendo el uso de un software libre (freeware), es decir software que es de fácil acceso y que mantiene la flexibilidad de un código fuente abierto, para que en algún determinado momento los usuarios de estas herramientas de computadora puedan implementar y modificar nuevos protocolos y redes de datos, cableadas e inalámbricas para su posterior evaluación.
Se muestra a la comunidad que la simulación de redes de datos es una forma muy segura, económica y rápida de evaluar ciertas tecnologías antes de su implementación.
5
Método de Investigación.
Para realizar esta Tesis de investigación se tomaron en cuenta las siguientes bases.
Estudio sobre los antecedentes de las redes inalámbricas.
Técnicas de comunicación de las redes inalámbricas Ad-hoc.
Documentación sobre los tipos y formas de trabajo de los protocolos de enrutamiento enfocados a las redes inalámbricas y específicamente los basados en algoritmo matemático Bellman-Ford.
Propuesta de escenarios de simulación, así como la determinación de los parámetros a medir necesarios para evaluar la eficiencia de un protocolo de enrutamiento.
Implementación de los escenarios a simular en código de línea basados en Tcl para su posterior evaluación en el simulador. Creación de los scripts para NS-2.
Análisis y evaluación de los protocolos de enrutamiento a través de simulador de eventos y discretos Network Simulator 2.
Evaluación visual en tiempo real de los eventos ocurridos durante la presentación del simulador gráfico “The Network Animation”.
Interpretación de los resultados obtenidos por el simulador con la herramienta TraceGraph.
6
Contribución del Trabajo.
Con esta investigación pretendo dar a conocer a la comunidad académica, docente y de investigación, un software simulador de eventos discretos que puede facilitar el análisis y estudio de las características de la redes de datos inalámbricas, cableadas, satelitales e hibridas.
Para logarlo satisfactoriamente documente los antecedentes críticos de la evolución de las redes inalámbricas y el comportamiento de las redes Ad-hoc, así como la viabilidad de los protocolos empleados en estas. Posteriormente, genere una metodología tendiente a construir una simulación por computadora tras analizar varios métodos alternativos; con el conjunto de herramientas utilizadas en el desarrollo de este trabajo, es posible evaluar el rendimiento del protocolo de enrutamiento dejando propuesta una plataforma paralela de despegue útil para futuras investigaciones que retomen esta propuesta.
Una ventaja adicional es que las herramientas empleadas para el análisis de este protocolo no solo pueden aplicarse para este tipo de proyectos, sino que son susceptibles de aplicarse en otros estudios que integren análisis de protocolos reactivos o híbridos y aplicados en redes cableadas o satelitales, así como ir adaptando el contexto a las necesidades del análisis.
7
Capítulo 1 Estudio de los protocolos de enrutamiento en redes inalámbricas.
1.1 Introducción.
El enrutamiento (encaminamiento o ruteo) es la función de dirigir los paquetes destinados a redes locales y remotas mediante la determinación del mejor camino para enviar y reenviar paquetes de datos, apoyado muchas veces en una “tabla de enrutamientos”. Cuando se requiere la transmisión de un paquete, se examina la dirección destino y selecciona la mejor coincidencia con una dirección de la red en la tabla de enrutamiento [1].
El diseño de protocolos de enrutamiento para redes inalámbricas se ha convertido en un aspecto muy importante debido a la escasez de recursos y a la topología dinámica que caracteriza a este tipo de redes de datos.
Los algoritmos usados regularmente en las redes fijas no pueden ser implementados en las redes inalámbricas debido al frecuente envío de mensajes y el cambio constante de la posición de emisor y receptor. Debido a esto, los recursos necesarios para recopilar información que contenga la topología de red y realizar la definición que ayude a para optimizar el intercambio de datos son muy grandes, lo que ocasiona la necesidad de implementar y optimizar protocolos diseñados específicamente para redes inalámbricas.
8 La mayoría de los protocolos de enrutamiento han sido diseñados con base a dos importantes algoritmos:
- Algoritmo de estado de enlace, basado en el modelo matemático de Dijkstra
- Algoritmos vector-distancia, basados en el modelo matemático de Bellman-Ford.
Cuando se diseña un protocolo de enrutamiento para redes inalámbricas se deben considerar los siguientes puntos:
El intercambio de información sea mínimo.
La complejidad del algoritmo de cálculo de rutas debe ser baja.
Fácil adaptación a una topología dinámica.
9 1.1. Protocolos de enrutamiento proactivos, reactivos e híbridos.
En general podemos clasificar los protocolos de enrutamiento en tres categorías diferentes:
Protocolos proactivos o basados en tablas (también denominados como globales).
Protocolos reactivos o de baja demanda.
Protocolos híbridos.
En la Figura 1.1 se pueden observar esta clasificación de los protocolos de enrutamiento, mencionando los protocolos más importantes.
Figura 1.1.- Clasificación básica de los protocolos de enrutamiento de las redes inalámbricas [2].
10 Este protocolo opera en redes en las cuales se hace necesario que el procedimiento de descubrimiento de ruta no sea excesivamente lento en referencia al tiempo de convergencia y que la red pueda asumir el gasto derivado de mantener una estructura global.
A continuación se presentan una descripción y funcionamiento del protocolo de enrutamiento DSDV proactivo, del mismo tipo sobre el que realizare la implementación en el simulador. Empezare por describir el funcionamiento del algoritmo vector-distancia basado en Bellman-Ford y después se realizará un análisis de cómo funcionan estos, es decir cuál es el proceso de descubrimiento de rutas.
1.3. Algoritmo Vector-Distancia (Bellman - Ford).
Dadas las necesidades de este trabajo de investigación, el enfoque se centra en los algoritmos basados en el Vector-Distancia, que a su vez está desarrollado a partir del modelo matemático de Bellman-Ford.
El algoritmo Vector-Distancia a través de un procedimiento simple es capaz de determinar las rutas para enrutamiento identificando las rutas de menor costo con respecto a su medida de desempeño específico. Con este algoritmo cada nodo de la red estima el costo de las posibles rutas para comunicarse con el nodo receptor, basado en los costos proporcionados por sus nodos aledaños. Periódicamente cada nodo intercambia con los nodos más cercanos su tabla de ruteo. De este modo, cada nodo es capaz de calcular cuál de los nodos vecinos es el mejor candidato para comunicarse con el nodo receptor. En este algoritmo, cada nodo i administra una tabla de enrutamiento en la cual almacena el nodo inmediato, el cual permite alcanzar al nodo receptor j de manera óptima. El mecanismo que permite determinar el
11 Considere Dj,i como el costo de la ruta óptima para comunicar a nodo i con el nodo j y km se define como
di,km. Asumiendo que los costos de los enlaces son aditivos, la ruta con el menor costo para comunicar los nodos i y j pueden ser obtenidas tras resolver las ecuaciones del Bellman-Ford [3]:
, = , ∀ Ec. 1.1
, = min( , �+ �, ) ≠ Ec. 1.2 Con la condición inicial.
, = ∞ + ≠ Ec. 1.3
Para resolver la ecuación 1.1, cada nodo i de la red utiliza la información proveniente de sus m nodos
vecinos, recabando información acerca de las distancias optimas Dkm,j, como se observar en la figura 1.2. El nodo i añade los costos del enlace di,km a la distancia recolectada Dkm,j y estima el conjunto de m costos
para comunicarse con el nodo j. El nodo vecino que proporcione el menor costo total para la trayectoria, será seleccionado como el salto inmediato para comunicarse con el nodo j. Este procedimiento es
realizado periódicamente y de manera distribuida en la red; la sucesión de nodos elegidos de este modo selecciona la trayectoria que minimiza el costo de la ruta. La complejidad computacional de este algoritmo para hallar las rutas de menor costo desde un nodo fuente hacia todos los posibles destinos de la red, es N3 donde N es el número de nodos que componen la red.
12 1.4. Enrutamiento en redes ad hoc.
El enrutamiento de una red inalámbrica Ad-hoc tiene como objetivo principal el establecimiento de trayectorias de comunicación entre los dispositivos inalámbricos que conforman la red. Sin embargo se deben tomar en cuenta las características de las redes Ad-hoc como son el movimiento constante de los nodos, la constante adición y separación de los nodos, el enrutamiento enfrenta retos complejos entre los que se destacan:
-Topología dinámica: Este es uno de los aspectos más problemáticos para un protocolo de enrutamiento en redes Ad-hoc. El movimiento aleatorio de los nodos que componen la red origina
cambios constantes en la red, demandando la existencia creciente de paquetes de señalización que permiten detectar y responder oportunamente a dichos cambios.
-Enlaces asimétricos: El medio inalámbrico de las redes Ad-hoc tiende a sufrir un comportamiento asimétrico y a presentar variables de las propiedades en lo que son los enlaces. Este comportamiento surge de las diferencias cualitativas del medio, es decir la calidad del enlace entre dos nodos. Por ejemplo, la calidad entre los nodos 1 y 2 puede arrojar valores diferentes si evaluamos la calidad de la comunicación en el sentido del nodo 1 al nodo 2 en comparación a valorar la calidad de la comunicación en el sentido del nodo 2 al nodo 1.
-Interferencia: La interferencia entre las transmisiones de los nodos que componen la red es otra de las dificultades a las que se enfrenta un protocolo de enrutamiento para las redes Ad-hoc. Dado que
13 -Escalabilidad: Las redes Ad-hoc pueden ser conformadas por una gran cantidad de nodos. Esta
propiedad demanda que la convergencia de un protocolo de enrutamiento no sea significativamente afectada por el número de nodos o elementos existentes o bien, de los que se van anexando a la red.
1.5. Enrutamiento ideal en una red Ad-hoc.
Idealmente un protocolo de enrutamiento debe poseer diferentes propiedades que le permitan adaptarse a las necesidades presentes en una red inalámbrica, tales como adaptarse al movimiento constante de los nodos en la red, o bien que la eficiencia de la red no se vea significativamente afectada por el incremento de elementos en la red [4]. Algunas de las propiedades más representativas para mencionar son las siguientes:
-Funcionamiento distribuido: Debido a que en las redes ad hoc se carece de un dispositivo centralizado similar a un Access point, el enrutamiento debe ser ejecutado de manera distribuida entre
las computadoras de la red.
-Libre de bucles: Un protocolo de enrutamiento debe optimizar los recursos de la red, de tal forma que las rutas de comunicación deben evitar la presencia de bucles, debido a que tener este tipo de afectación representa una pérdida considerable en el ancho de banda y obviamente en la eficiencia de esta.
14 -Mínimo consumo de energía: Una de las características limitantes de los nodos que componen una red Ad-hoc es la limitante energética. La movilidad de los nodos requiere que la energía individual de estos dispositivos provenga de contenedores propios. El protocolo de enrutamiento debe tomar en cuenta esta limitante y reducir al mínimo el consumo de energía.
-Sencillez: La capacidad de procesamiento de los dispositivos móviles que conforman la red es limitada. A consecuencia de esto, un protocolo de enrutamiento debe contar con una baja demanda de procesamiento, la cual debe ser fácil de implementar y tener una baja latencia
-Escalabilidad: El aumento considerable en la cantidad de nodos que interactúan en una red no debe afectar la calidad de las prestaciones de una red. El protocolo de enrutamiento debe ser capaz de ser funcional aún con la tendencia a crecer de la red.
1.6. Protocolo Destination - Sequenced Distance Vector (DSDV).
15 Regularmente, la movilidad y los cambios constantes de la topología de las redes ad hoc requieren que cada nodo sea capaz de detectar oportunamente la ausencia de un nodo, con el fin de evitar el envío de información a través de bucles en las trayectorias.
Es por eso que en este trabajo he agregado a algunos de los nodos la propiedad de desplazamiento en el área de trabajo durante la simulación. De esta manera será posible observar la eficiencia del protocolo en condiciones más reales.
Para darle una posible solución al problema de los bucles, el protocolo DSDV utiliza números de secuencia y al mismo tiempo mantiene la simplicidad del algoritmo de Bellman-Ford. Como este protocolo es de carácter proactivo, tanto el intercambio de información de enrutamiento como el cálculo de rutas de comunicación se realizan de manera periódica, de este modo cada nodo obtiene y procesa la información actualizada y confiable de la organización de la red. De esta manera, el funcionamiento distribuido del protocolo demanda que todos los nodos que componen la red compartan su tabla de enrutamiento con los nodos más cercanos o dentro de su alcance. De este modo cada nodo puede calcular una ruta para cada destino dentro de la red, seleccionando así al nodo más cercano que proporcione la mejor ruta de comunicaciones.
16 Para poder construir esta tabla de enrutamiento tan detallada es necesario conocer la topología de red. Una forma de hacerlo es a través de la cooperación de los elementos que la componen. El protocolo DSDV exige que cada uno comparta su visión de la red con sus nodos vecinos y al mismo tiempo la reciba de estos. Cuando este procedimiento se realiza en repetidas ocasiones, cada nodo puede tener una visión global. Con esta información, cada nodo puede determinar cuál es el nodo vecino que ofrece el mejor camino de comunicación hacia el nodo destino; este resultado es almacenado en tablas de enrutamiento y compartido de nueva cuenta con los nodos vecinos. Cada una de las rutas que se almacena en esta tabla de enrutamiento es etiquetada con un número de secuencia. Este número de secuencia es un contador, administrado por cada nodo receptor, el cual es adjuntado e incrementado por cada paquete de señalización enviado por este nodo. Este identificador permite discernir la información actualizada de aquella que no lo está.
Para mantener actualizada la información sobre la topología de red en cada nodo, el protocolo DSDV requiere que estos nodos compartan periódicamente los datos que residen en su tabla de enrutamiento. Para que este procedimiento sea relevante, la frecuencia con la que comparten información debe ser suficiente como para detectar los cambios que suceden en la red, cambios como la nueva posición de un nodo en determinado momento o como el agregar/eliminar nodos en la red. En la Figura 1.3 se ejemplifica de forma gráfica la señalización necesaria para la utilización del protocolo DSDV en una red compuesta por 9 nodos. Cada mensaje de señalización en su forma básica está compuesto por los siguientes puntos:
- Su número de secuencia actualizado, correspondiente al nodo que envía el paquete de señalización.
- El identificador del nodo destino.
- El número de saltos necesarios para llegar al nodo destino.
17 Cada que un nodo recibe la tabla de enrutamiento de sus nodos vecinos, almacena o actualiza la ruta de comunicaciones tomando como base las siguientes condiciones:
- Cualquier ruta con un número de secuencia más reciente, comparada con la misma ruta almacenada, será seleccionada.
- Si una ruta tiene el mismo número de secuencia pero menor costo de almacenamiento, entonces dicha ruta será seleccionada.
Figura 1.3.- Señalización del protocolo DSDV [4].
Haciendo referencia a la Figura 1.4, cuando el nodo A recibe información proveniente de B sobre la ruta
de comunicación con C, y asumiendo que el último número de secuencia de C visto por A es Ac y el último visto por B es Bc, el proceso de actualización de la ruta deberá satisfacer las siguientes condiciones:
- Si Ac>Bc, la información de enrutamiento se ignora recibida por B.
- Si Ac = Bc, se toma en consideración el costo de la ruta. Aquella cuyo costo sea el menor será almacenada en la tabla de enrutamiento.
18
Figura 1.4.- Envío de paquetes de señalización DSDV del Nodo B al nodo A.
Cuando un enlace de comunicación se pierde, ocasionado principalmente por movilidad de los nodos, la distancia hacia este nodo se define como infinita. Si este nodo es un nodo vecino que sirve de salto inmediato para llegar a otros nodos, la distancia hacia estos nodos también se considera infinita. La información de este nodo se envía inmediatamente para que se propague en la red y altere a los otros nodos. La movilidad, es un evento que puede provocar la pérdida de enlaces de comunicación, en un entorno altamente dinámico sus efectos serían desastrosos debido a que la cantidad de mensajes de señalización para dar aviso de estos eventos se incrementa al grado de consumir una gran porcentaje del ancho de banda disponible en la red. Una posible solución para este tipo de eventos resulta de utilizar dos tipos de mensajes de control: el primero (full duplex) contiene toda la información de la tabla de
enrutamiento y el segundo (Incremental Dump) solo los cambios menores que han sufrido la tabla de
enrutamiento desde el ultimo full dump enviado.
Para clasificar el proceso de actualización de las tablas de enrutamiento, se muestra en la figura 1.5 un ejemplo básico de este proceso. En la Figura 1.5a podemos observar el estado de la tabla de enrutamiento de los nodos A, B y C, antes de la actualización. En este ejemplo podemos ver al nodo B
incrementar su número de secuencia y enviar su tabla de enrutamiento hacia sus nodos vecinos dado que ha detectado un cambio en el costo de un enlace.
19 En este momento los nodos A y C actualizan su tabla de enrutamiento y almacenan el nuevo número de
secuencia correspondiente al nodo que envío el paquete, tal como se muestra en la Figura 1.5b.
(a) Estado previo de la actualización (b) Estado después de recibir la actualización
Figura 1.5.- Estado de las tablas de enrutamiento durante el proceso de actualización.
Cuando un nuevo nodo se integra a la red difunde su tabla de enrutamiento a sus nodos vecinos, como se muestra en la figura 1.6a. En este ejemplo, el nodo D ingresa a la red y difunde su tabla de enrutamiento al nodo C. El nodo C al momento de recibir esta información, incluye al nodo D en su
tabla de enrutamiento y difunde a su nodo vecino B esta nueva información, no sin antes incrementar su
número de secuencia, tal y como se muestra en la Figura 1.6b. El mismo proceso lo realiza el nodo B y envía la información al nodo A, de modo que todos los nodos en la red detectan la presencia del nodo D.
a) Estado previo de la actualización (b) Estado después de recibir la actualización
Figura 1.6.- Estado de las tablas de enrutamiento durante la integración de un nuevo nodo.
20 En la figura 1.7a se muestra como el nodo D pierde conectividad con su nodo vecino C. Al momento en que el nodo C detecta que no existe el enlace de comunicación con el nodo D, en su tabla de enrutamiento
se asigna el costo ∞ a esta trayectoria y de inmediato se envía la notificación a sus nodos vecinos, como se muestra en la Figura 1.7b. Aun cuando el nodo C reciba notificación de la ruta hacia D, éste las ignora debido a que cuenta con un número de secuencia actualizado para la secuencia de esta trayectoria. Los nodos A y B, al momento de recibir la notificación de la ausencia del nodo D inmediatamente le asignan
el costo ∞ a la ruta, lo cual indica que dicho nodo es inalcanzable en la red.
(a) Estado a la notificación (b) Estado después de recibir la notificación
21
Capítulo 2. Características de otros protocolos de enrutamiento
2.1. Introducción.
Las principales características de las redes Móviles Ad-hoc (MANET), es que todos los dispositivos que forman parte de la red, además de funcionar como terminales finales, realizan también funciones de retransmisión de paquetes típicamente asociados a routers.
Esta cualidad nos permite encaminar paquetes a destinos sin cobertura directa a través de otros nodos intermedios que se encuentren en la red. De este modo se nos ofrece la posibilidad de incrementar de una manera descomunal la movilidad y el tamaño de una red de datos inalámbrica. Las características principales de estas redes es crear de una manera eficaz y eficiente una red temporal en lugares carentes de infraestructura de red. Las principales aplicaciones para las que estas redes fueron desarrolladas son la operación de búsqueda y rescate de emergencia (bomberos), entornos militares (campos de batalla), redes de sensores, creación de vehículos y carreteras inteligentes.
Para que lo descrito en el párrafo anterior sea una opción para implementarse en la vida real, se hace completamente necesaria la inclusión en la red de protocolos de enrutamiento que nos permitan crear rutas hacia los destinos deseados. Los protocolos de redes fijas mencionados en el capítulo anterior no se adaptan bien a este tipo de entornos tan dinámicos, por lo tanto es necesario el diseño específico de protocolos, mismos que proporcionaran un comportamiento eficiente a la red.
2.2. Comparación de los protocolos de enrutamiento.
Dependiendo de sus características, se pueden tener las siguientes comparaciones entre los protocolos:
22 información de enrutamiento para que en cualquier momento cualquier nodo pueda comunicarse con otro de los nodos de la red. Esta característica proporciona una rápida respuesta ante solicitudes de ruta y ofrece un buen comportamiento en situaciones donde la tasa de movilidad es alta. Sin embargo la sobrecarga que se introduce en la red con información de control también es alta. Entre estos protocolos podemos destacar el protocolo DSDV (Destination-Sequenced Distance Vector) [5]. Por otra parte, los protocolos reactivos sólo crean rutas cuando es necesario. Son protocolos que operan en una modalidad que podemos considerar bajo demanda, donde la sobrecarga es mucho menor aunque los retrasos de establecimiento de rutas son mayores. Podemos nombrar AODV (Ad hoc On-Demand Distance Vector) [6] como un ejemplo de protocolo reactivo. Existen algunos protocolos híbridos en los que se mantiene una filosofía proactiva en un ámbito local y reactiva a nivel más global, como el protocolo ZRP (Zone Routing Protocol) [7].
• Jerárquico vs. Plano: En los protocolos jerárquicos, los nodos pertenecen a diferentes niveles y su función en la retransmisión depende del nivel en el que operen. En este caso, normalmente las redes se dividen en grupos de nodos llamados clusters. En los protocolos planos, todos los nodos se considera están al mismo nivel, tienen las mismas funciones y responsabilidades. Uno de los protocolos jerárquicos más destacables es CGSR (Clusterhead Gateway Switch Routing) [8].
• Geográficos vs. No Geográficos: En los protocolos geográficos, se tiene en cuenta la posición geográfica exacta de cada nodo para realizar los enrutamientos. Su gran inconveniente es la necesidad de dispositivos de posicionamiento global (GPS), ya que estos todavía no lo suficientemente comunes en todos los sitios. Entre estos protocolos podemos encontrar DREAM (Distance Routing Effect Algorithm for Mobility) [9].
23 Por esta característica, la necesidad de proceso en los nodos intermedios es prácticamente nula, en cambio se incrementa el volumen de los paquetes. Por el contrario, en el enrutamiento salto a salto, en cada nodo únicamente se decide cuál será el nodo siguiente. El protocolo más conocido y extendido que utiliza enrutamiento en el origen es DSR (Dynamic Source Routing) [10].
• Multipath vs. Singlepath: Los protocolos singlepath sólo mantienen una ruta única hacia cada destino, en cambio los multipath mantienen varias. El protocolo TORA (Temporally-Ordered Routing Algorithm) [11] es un ejemplo de protocolo multipath.
Con el fin de ofrecer una base teórica al estudio práctico realizado, presentamos aquí brevemente las características más relevantes de los protocolos analizados en las simulaciones:
A. Destination - Sequenced Distance Vector (DSDV)
24 Los mensajes incrementales pueden utilizarse para actualizaciones intermedias entre envíos periódicos (fulldump) de la tabla entera de enrutamiento. Además se realizan estimaciones de los tiempos de establecimientos de ruta que retrasarán el envío de mensajes incrementales para evitar envíos en cadena de estos mensajes.
B. Optimized Link-State Routing Algorithm (OLSR)
El protocolo OLSR incorpora la filosofía utilizada en protocolos tradicionales como OSPF de ‘Estado de los Enlaces’. En este algoritmo todos los nodos se intercambian mensajes para formarse una visión consistente de toda la red y así poder decidir el enrutamiento de paquetes. El protocolo OLSR adolece del mismo problema que el protocolo DSDV debido a la necesidad de intercambio de un gran número de mensajes periódicos. Aquí, el problema podría llegar a ser mayor, ya que además de mensajes HELLO a los vecinos envía mensajes de control TC (Topology Control), los que se retransmiten a todos los nodos de la red. Sin embargo se ha conseguido una gran optimización en la retransmisión de estos mensaje con la incorporación de la Técnica de Retransmisión Multipunto, a través de la cual, los mensajes sólo son retransmitidos por el mínimo número de nodos necesarios para alcanzar a todos los demás. Estos nodos son conocidos como Grupo de Retransmisores Multipunto (MPR's).
C. Dynamic Source Routing (DSR)
25 el destino. Tampoco son un problema, a diferencia de la mayoría de protocolos de enrutamiento en este tipo de redes, los enlaces unidireccionales. Para poder realizar el enrutamiento en el origen, a cada paquete de datos se le inserta una cabecera DSR de opciones que se colocará entre la cabecera de transporte y la IP. Entre dichas opciones se incluirá la ruta que debe seguir el paquete nodo a nodo. Cada nodo mantiene una memoria caché de rutas en la que se van almacenando las rutas obtenidas a través de procesos de descubrimiento de rutas ya sean propios u obtenidos a través de escuchas en la red. En los procesos de descubrimiento de rutas se generan mensajes de solicitud, respuesta y error siendo estos mensajes ROUTE REQUEST, REPLY y ERROR respectivamente.
D. Ad Hoc On-Demand Distance Vector (AODV)
26
2.3 Estadísticas y Comparación de protocolos de enrutamiento.
En otros estudios realizados con la misma herramienta de simulación de redes NS-2 realizado por Roberto Subiela Durá y el Dr. Antonio León Fernández de la Universidad Politécnica de Valencia, se encontraron los datos que se observan en la figura 2.1, haciendo un primer escenario de simulación en donde someten una red de datos a diferentes cambios durante 100 segundos. La red está compuesta por tres dispositivos, dos de los cuales se comunican utilizando protocolo de transporte TCP. En unos instantes se comunica de forma directa, en otros a través de un nodo intermedio mientras que en otros momentos es imposible la comunicación. La figura 2.1 muestra los paquetes recibidos. Los mejores resultados los ofrece el protocolo AODVUU debido a su apoyo en el servicio de mensajes HELLO, el cual le proporciona una rápida detección de vecinos. Sin embargo, el protocolo DSDV para este caso ofrece los peores resultados debido a que utiliza un periodo de actualización muy alto.
Figura 2.1.- Numero de paquetes recibidos escenario 1.
27
Figura 2.2.- Throughput del escenario 1
En un segundo escenario, más simple, dos nodos sin cobertura directa intentan sin éxito comunicarse utilizando el protocolo de transporte UDP (Ver Figura 2.3a), para posteriormente comunicarse vía un dispositivo intermedio (Ver Figura 2.3b).
28 La figura 2.3 muestra el tiempo trascurrido desde que se establece la comunicación hasta el momento en que cada protocolo logra establecer la comunicación. El estudio se ha realizado para todos los protocolos, aquí se presenta los correspondientes al protocolo OLSR. La línea vertical negra muestra el instante desde que existe conectividad y las azules corresponden a los intercambios de dos mensajes periódicos para establecer la comunicación. Este hecho es debido a que en un primer intercambio cada nodo da a conocer a sus vecinos y así todos los nodos eligen sus MPR’s, mientras que en el segundo estos se comunican con los demás y así pueden crearse todas las tablas.
Figura 2.3.- Visualización del escenario 2
En un tercer escenario, se estudió una situación contraria al caso anterior que también utilizo una transmisión UDP. En primer instancia, los nodos tienen conectividad directa (Ver Figura 2.4a). En un movimiento pierden la conectividad directa y deben restablecer la conectividad a través de un nodo intermedio, este movimiento se puede observar en la Figura 2.4b.
29 En el momento de perdida de conectividad, observamos como la reacción del protocolo es instantánea. El motivo principal es que el DRR detecta instantáneamente la perdida de la conectividad a través de la capa de enlace y solicita un nuevo descubrimiento de ruta de inmediato.
Figura 2.4.- Visualización del escenario 2
Figura 2.5.- Visualización del escenario 2: DSR
30
Capítulo 3. Metodología de análisis.
3.1. Generalidades.
Para el estudio de los métodos y parámetros planteados en el desarrollo de esta investigación fue necesaria la utilización de una herramienta de medición que se acople a las necesidades que se requerían para el análisis del protocolo. Seguido de esto, tuve la necesidad de buscar opciones y elegir la más viable. A continuación se plantean mis opciones, eligiendo la más adecuada para lograr el objetivo planteado.
La evaluación del desempeño es muy importante a la hora de analizar un protocolo, este me permitirá elegir uno sobre otro en determinados tipos de redes o dependiendo de las necesidades de los usuarios. Esto con el fin de optimizar el funcionamiento de los sistemas y proveer un servicio más eficiente de la red a los usuarios terminales.
Para este propósito existen tres técnicas para la evaluación:
- Medición Física (Práctico).
- Modelos Analíticos (Matemático).
- Simulación (por Computadora).
31 Por último, la simulación incorpora más detalles que permiten obtener una mejor descripción del objeto en estudio con relación al modelo analítico o matemático y es muy funcional aun cuando no se cuenta con la infraestructura o se disponga del tiempo, el cual es considerable para el estudio.
Con respecto a la simulación, existen varios tipos: Emulación, Simulación Monte Carlo, Simulación trace-driven y Simulación de eventos discretos.
Una simulación estática o sin variable en el tiempo es llamada simulación Monte Carlo. Este tipo de simulación se utiliza para fenómenos de modelo probabilístico1, mismo que no cambia sus características con el tiempo a diferencia de las simulaciones dinámicas que requieren la generación de números pseudo-aleatorios. Las simulaciones Monte Carlo también son usadas para evaluar expresiones no - probabilísticas usando métodos probabilísticos.
Una simulación trace-driven se maneja generalmente por un archivo de traza. Este tipo de simulación se utiliza usualmente en el análisis o valoración de los algoritmos de administración de recursos, análisis de cache, algoritmos de planificación y algoritmos para dinámicas de asignación de recursos de la red. Estos son algunos ejemplos de casos donde simulaciones trace-driven han sido usadas satisfactoriamente.
Una simulación utilizando un modelo de estado discreto del sistema es llamada simulación de eventos discretos contrariamente a la simulación de eventos continuos. Los modelos de estado continuo son usados en simulaciones químicas, donde el estado del sistema es descrito por la concentración de una substancia química. En sistemas computacionales, se utilizan modelos de eventos discretos cuando el estado de sistema es descrito por el número de tareas en varios dispositivos.
1 Son aquellos fenómenos en los que se desconocen algunas variables, pero si se reúnen las conocidas, tendrán la
32 La siguiente tabla muestra una breve descripción de algunos de los simuladores existentes.
Tabla 3.1.- Comparación de los simuladores (Características generales)
SIMULADOR LICENCIA TIPO DE REQUERIMIENTOS S.O. PROTOCOLOS Y TECNOLOGÍAS CARACTERÍSTICAS GENERALES
NS-2 Software libre
-Plataforma Unix (Free BSD, Linux, SunOS, Solaris) y plataformas Windows.
-Procesador Pentium II de 200 Mhz, 32 MB -Espacio H.D. 20MB
HTTP, FTP, CBR, TCP, UDP, RTP, SRM, entre otros.
Es una herramienta con un amplio rango de uso, soporta una gran cantidad de protocolos de las capas de aplicación y transporte, además de otros utilizados para el enrutamiento de los datos. Permite simular redes cableadas, inalámbricas, satelitales: y aplicaciones a grandes redes con topologías complejas y generadores de tráfico.
Opnet (OPNET) Licencia
- Plataforma Windows NT, 2000, XP y tipo UNIX
- Procesador Pentium II de 250 MHz o
equivalente - RAM 32 MB - Espacio H.D. 20 MB
HTTP, TCP, IP OSPF, BGP, RIP,
RSVP, FrameRelay, FDDI, Ethernet, ATM, LAN 802.11, PNNI, DOCSIS, UMTS, IP, Multicast, CircuitSwitch, MANET, IP Móvil,
entre otras
Permite diseñar y estudiar redes dispositivos, protocolos y aplicaciones brindando escalabilidad y flexibilidad, cualidades que les permiten ofrecer a sus usuarios trabajar en procesos de investigación y desarrollo.
Está basado en la teoría de redes de colas e incorpora librerías para facilitar el modelado de las topologías de red
Packet Tracer (CISCO) Licencia
- Plataforma Windows 98, ME, XP y
Macintosh
- Procesador Pentium II de 250 MHz o
equivalente - RAM 64 MB - Espacio H.D. 30 MB
Tecnologías Ethernet, Fast Ethernet, Gigabit
Ethernet, inalámbricas, VLAN, NAT, PAT,
Protocolos DHCP, RIP
PacketTracert es un simulador de entorno de redes de comunicaciones de fidelidad media, que permite crear y configurar redes incluyendo los dispositivos como computadoras, router y swicht.
Detecta los errores en las topologías de redes de comunicación
NCTUns Software Libre
- Plataforma Red hat, Fedoracore 3.0
- Procesador Pentium II de 250 MHz o
equivalente - RAM 256 MB - Espacio H.D. 200 MB
Protocolos creados por el usuario
Es un simulador y emulador de redes y sistemas de telecomunicaciones avanzado, permite desarrollar, evaluar y diagnosticar el desempeño de protocolos y aplicaciones en diferentes redes (LAN, WAN) familiarizando al usuario con interfaces similares a las de los sistemas reales. Genera resultados de simulación de alta fidelidad
SSFNet Software Libre
- Plataforma UNIX - Procesador Pentium II de 450 MHz o
equivalente -RAM 64MB
- Espacio H.D. 20 MB
TCP, UDP, Sockets, OSPFv2,
OSPF, BGP4, HTTP, NetFlow;
IP, NIC
Es una colección Java SSF basadas en componentes para el modelo y simulación de protocolos de internet y de redes por encima del nivel de paquetes IP
J-Sim 1.3 Software Libre
- Plataforma Windows NT, 2000, XP y tipo UNIX
Proporciona soporte a la gran mayoría
de protocolos Multicast y QoS
33 - Procesador Pentium II
de 400 MHz o equivalente - RAM 128 MB - Espacio H.D. 250 MB
componentes y su comportamiento está definid en términos de contratos.
Tabla 3.2.- Ventajas y Desventajas de los simuladores
SIMULADOR VENTAJAS DESVENTAJAS
NS-2
Este programa contiene módulos que cubren un extenso grupo de aplicaciones, protocolos de ruteo, transporte, diferentes tipos de enlaces, estrategias y mecanismos de ruteo; entre otros. Algunos de estos son: http, TcpApp, telnet, CBR (Constat Bit Rate), TCP, RTP, algoritmos de ruteo, enrutamiento jerárquico y enrutamiento manual.
Por ser uno de las más antiguas herramientas de simulación, el NS se ha convertido en un estándar de su área, esto ha llevado a que sea ampliamente utilizado y a que se encuentre en internet un gran número de ayudas y proyectos realizados sobre NS.
La configuración de las simulaciones es a través de código, esto hace que sea mayor el tiempo de desarrollo. Además también se incrementa el tiempo necesario para el aprendizaje del software.
NS requiere varios componentes adicionales instalados para su correcto funcionamiento.
OPNet
El programa incluye las librerías para acceder a un extenso grupo de aplicaciones y protocolos como HTTP, TCP, IP, OSFD, BGP, EIGRP, RIP, RSVP, FrameRelay, FDDI, Ethernet, ATM, LNAs 802.11, aplicaciones de voz, MPLS, PNNI, OCSIS, UMTS, IP, Multicast, CircuitSwitch, MANET, IP móvil; entre otras.
Tiene interfaces para visualización del modelo en 3D. Los APIs de simulación permiten acceder libremente al código fuente, lo cual facilita la programación de nuevos protocolos de red. Maneja topologías de red complejas con subredes anidadas ilimitadas. Permite mostrar el tráfico por la red a través de una animación durante y después de la simulación. Los resultados se exhiben mediante gráficos estadísticos.
Es un software propietario, lo cual lo hace costoso para ambientes universitarios. Es necesario obtener la licencia para poder utilizar el software ya que no existen versiones académicas o de prueba.
La determinación de los intervalos de confianza es complicada
El tiempo de aprendizaje es elevado.
Packet Tracert
El enfoque pedagógico de este simulador hace que sea una herramienta muy útil como complemento de los fundamentos teóricos sobre redes de comunicaciones.
El programa posee una interfaz de usuario muy fácil de manejar, e incluye documentación y tutoriales sobre el manejo del mismo. Permite ver el desarrollo por capas del proceso de trasmisión y recepción de paquetes de datos de acuerdo con el modelo de referencia OSI. Permite la simulación del protocolo de enrutamiento RIP V2 y la ejecución del protocolo STP y el protocolo SNMP para realizar diagnostico básicos a las conexiones entre dispositivos del modelo de la red.
Es un software propietario, y por ende se debe pagar una licencia para instalarlo.
Solo permite modelar redes en termino de filtrado y retransmisión de paquetes. No permite crear topologías de red que involucren la implementación de tecnologías diferentes a Ethernet, es decir que con este programa no se pueden implementar simulaciones con tecnologías de red como FremeRelay, ATM XDSL, Satelitales, telefonía celular entre otras.
Ya que su enfoque es pedagógico, el programa se considera de fidelidad media para implementarse con fines comerciales.
34 conjunto de protocolos TCP/IP de Linux, por
consiguiente se generan resultados de simulación de alta fidelidad y permite que la configuración y el uso de una red simulada, sea exactamente igual a los usados en redes IP del mundo real.
Pueden ser utilizados como emulador. Esto permite un host externo conectado a una red del mundo real, puedan intercambiar paquetes con nodos (por ejemplo: hosts, enrutadores o estaciones móviles celulares) en una red simulada en NCTUns. Puede utilizar cualquier aplicación de UNIX existe en la vida real, como un generador de tráfico, además puede utilizar las herramientas de configuración y monitoreo de UNIX. Puede simular redes fijas, inalámbricas, redes celulares, redes GPRS, redes ópticas.
y configuraciones adicionales. Existe muy poca información sobre el funcionamiento y configuraciones de software. El anterior punto lleva a que sea mayor el tiempo de aprendizaje del simulador. El servicio de soporte proporcionado por los autores del proyecto NCTUns es deficiente y en algunas ocasiones no funciona.
SSFNet
Es un software libre hasta cierto punto, esta codificado en C++ y Java. Proporciona dos interfaces.
Es altamente escalable y permite el uso de prácticamente todos los protocolos en internet.
Existen varios errores en la implementación y a última instancia los usuarios son responsables de verificar la validez de los resultados.
Presenta una falta de rendimiento considerable en las versiones gratuitas, ya que la versión optimizada es comercial.
J-Sim 1.3
J-Simesta implementado completamente en Java, pero también provee una interfaz de script para la integración con diferentes lenguajes de script como Perl, Tcl o Python. La extensión para usar J-Sim con Tcl se llama Jacl.
A diferencia de NS-2, en J-Sim las clases, métodos y ”fields” no necesitan ser exportados explícitamente para ser accesibles en el ambiente Tcl.+
Simulador en tiempo real y discreto, permite el uso de casi todos los protocolos, tiene la capacidad de simular mediante scripts.
No ha recibido una actualización importante por los desarrolladores desde el 2005, a pesar de contar con patrocinadores importantes.
Cuenta con muy poca información como tutoriales guía lo que sigue haciendo al NS-2 más viable.
3.2. Elección del método de análisis.
Después de analizar las características de cada uno de los métodos descritos, se concluyó que el uso de un simulador sería la herramienta más útil ya que nos permite asemejarnos a la realidad, sin tener que contar necesariamente con la infraestructura, lo que lo hace económico y al alcance de todos.
35 alta flexibilidad, y aunque no es muy amigable o fácil de utilizar en internet existe bastante información sobre este simulador. Esto nos permite realizar una gran variedad de aplicaciones, además de estar avalado por comunidades de investigación de Internet quienes utilizan estas herramientas desde hace varios años y que también se ha llegado a usar para probar el funcionamiento de nuevos sistemas de gestión de buffers. Este software simulador será montado sobre una plataforma Linux, específicamente la distribución UBUNTU ya que los desarrolladores recomiendan sea usado preferentemente sobre LINUX.
3.3. Linux Ubuntu 14.04.
Ubuntu es una distribución GNU/Linux basada en Debian GNU/Linux, que proporciona un sistema operativo actualizado y estable para el usuario medio, con un fuerte enfoque en la facilidad de uso e instalación del sistema. Al igual que otras distribuciones como Redhat, Mandrake, SuSE etc., se compone de múltiples paquetes de software normalmente distribuidos bajo una licencia libre o de código abierto.
Está patrocinado por Canonical Ltd., una compañía británica propiedad del empresario sudafricano Mark Shuttleworth que en vez de vender la distribución con fines lucrativos, se financia por medio de servicios vinculados al sistema operativo y la venta de soporte técnico. Además al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los desarrolladores de la comunidad en mejorar los componentes de su sistema operativo. Canonical también apoya y proporciona soporte para cuatro derivados de Ubuntu: Kubuntu, Xubuntu, Edubuntu y la versión Ubuntu orientada a servidores.
36 liberan cada dos años reciben soporte durante tres años en los sistemas de Escritorio y cinco para versión orientada a servidores.En el desarrollo de este trabajo elegí una versión LTS, para ser más preciso la Ubuntu 10.04. Cabe mencionar que se realizó un pedido a la empresa directamente en su página de internet y lo enviaron a la dirección proporcionada sin ningún costo.
3.4. Simulador de Redes Network Simulator (NS-2).
Network Simulador 2 o mejor conocido como NS-2 es un simulador de eventos discretos pensado para el desarrollo de redes con un gran nivel de detalle [14], y es utilizado principalmente en ambientes académicos debido a que está escrito en código abierto. Es capaz de simular tanto protocolos unicast como multicast y regularmente es utilizado para la investigación de redes Ad-hoc. Puede simular una amplia gama de protocolos tanto para redes cableadas o redes inalámbricas, así como redes mixtas, redes vía satélite con una gran cantidad de protocolos a distintos niveles, la capa de trasporte (tcp, udp, etc...), la capa de aplicación (ftp, cbr, http, etc.) o la capa de enlace de datos (como el CSMA/CA). Además de que utiliza diversos algoritmos para la planificación de colas (como el DDR (Deficit Round Robin), FIFO (First In First Out), FQ (encolamiento justo), o SFQ (encolamiento estocástico justo) en caso de que se produzca un cuello de botella en algún nodo.
37 Aunque la herramienta se encuentra implementada en C++, se usa un segundo lenguaje llamado Tcl que se implementa mediante una modificación de este denominada Otcl, que en realidad es la versión orientada a objetos de Tcl. Esto hace que deba de existir una interacción entre ambos lenguajes dentro de la propia herramienta. Sin embargo, se puede optar por usar únicamente Tcl cuando se tenga que implementar mediante scripts la configuración de las topologías y usar C++ cuando queramos modificar directamente la herramienta. Consideramos un script como un conjunto de líneas de comandos o programa, que simula el funcionamiento de la topología de una red.
La distribución del NS-2 para Linux se acompaña de varias herramientas para complementar el análisis, dentro de ellos un visualizador de las diferentes topologías que se crean en NS-2, así como la simulación de los flujos que recorren dichas topologías. Esta utilidad se conoce como Network Animator (NAM), y está diseñada con Tcl/Tk. El funcionamiento de esta utilidad resulta muy simple de usar, ya que únicamente es necesario pasarle como parámetro en la llamada del programa de la vía de acceso del fichero que contiene la traza que queremos visualizar.
Los usos más habituales que se le dan a este simulador son los siguientes:
Simulación de estructuras y protocolos de redes.
Desarrollo de nuevos protocolos y comprobar su funcionamiento utilizando las herramientas que lo acompañan (NAM Xgraph).
Comparar distintos protocolos en cuanto a prestaciones.
38 3.5. Instalación de NS-2.
El simulador está pensado para ejecutarse en cualquier distribución de Linux, pero también existe una versión diseñada para ejecutarse sobre Microsoft Windows 9x/ME/2000/XP/Vista/Seven. Sin embargo esta última versión no está probada tanto como la original, por lo cual puede contener errores de funcionamiento. Sabiendo esto trabajare sobre una distribución Linux, para ser específico una versión Ubuntu.
3.6. Instalación de NS-2 en Linux distribución Ubuntu.
Esta versión de NS-2 está basada en la distribución del simulador “ns-allinone-2.34” este paquete es un compendio de las herramientas que trabajan en conjunto con NS como el NAM, Xgraph y se trata de una versión todo en uno.
Paso a seguir:
1.- Descargar el archivo ns-allinone-2.34.tar.gz de la siguiente dirección de internet.
http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.34/
2.- Una vez descargado se necesita tener instalado en Ubuntu los compiladores gcc, g++ y cpp. Para esto iniciamos la consola de comandos de Ubuntu y ejecutamos las siguientes líneas de comandos.
$ sudo apt-get update
$ sudo apt-get install build-essential
39 3.- Crear una carpeta llamada “simulador” en la siguiente dirección: /home/Nombre_Usuario/
4.- Dentro de la carpeta “simulador”, pegamos el archivo descargado en el paso 1.
5.- Abrimos la Terminal de Ubuntu y ejecutamos las siguientes líneas de comandos para entrar a la
carpeta “simulado”, de esta forma se accede a los archivos necesarios para la instalación de NS-2.
$ cd /home/Nombre_Usuario/simulador
$ tar -xvf ns-allinone-2.34.tar
6.- Descargamos e instalamos los paquetes de los repositorios
$ sudo apt-get install build-essential autoconf automake libxmu-dev
7.- Entramos a la carpeta que descomprimimos con el paso 5 e instalamos el NS-2 con las siguientes líneas de comandos.
$ cd ns-allinone-2.34
$ ./install
8.-Abrimos y editamos el archivo Makefile.in que está en la dirección:
/home/Nombre_Usuario/simulador/ns-allinone-2.34/ns-2.34
En este archivo, hay que sustituir las siguientes líneas:
De: CC=@CC@ a CC=gcc-4.3
9.- Modificar los Paths del archivo bashrc con la siguiente líneas de comando, las que son ejecutadas en la terminal de Ubuntu cuando se abre el archivo:
40 Los Paths deben quedar como se muestra:
# LD_LIBRARY_PATH
OTCL_LIB=/home/Nombre_Usuario/simulador/ns-allinone-2.34/otcl-1.13
NS2_LIB=/home/Nombre_Usuario/simulador/ns-allinone-2.34/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
export
LD_LIBRARY_PATH=/home/Nombre_Usuario/Escritorio/Tracegraph205UNIX/bin/glnx86/:$LD_LIB
RARY_PATH
# TCL_LIBRARY
TCL_LIB=/home/Nombre_Usuario/simulador/ns-allinone-2.34/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/Nombre_Usuario/simulador/ns-allinone-2.34/bin:/home/roberto/simulador/ns-allinone-2.34/tcl8.4.18/unix:/home/Nombre_Usuario/simulador/ns-allinone-2.34/tk8.4.18/unix
41
NAM=/home/Nombre_Usuario/simulador/ns-allinone-2.34/nam-1.13/
export PATH=$PATH:$XGRAPH:$NS:$NA
10.- Una vez editado este archivo lo actualizados los Path con las siguientes líneas de comandos en la
Terminal de Ubuntu.
$ source ~/.bashrc
11.- Entramos a la carpeta ns-2.34 y validamos con las siguientes líneas de comando.
$ cd ns-2.34
$ ./validate
3.7. Funcionamiento del NS-2.
El simulador consta de un núcleo principal escrito en C++ que se puede ejecutar simplemente tecleando ns en las líneas de comandos. Para actuar sobre el simulador se utiliza un interfaz específico. Este interfaz es Otcl que deriva del Tcl pero orientado a objetos. En la figura siguiente se muestra de manera gráfica el funcionamiento a grandes rasgos del simulador.
42 Los objetivos de NS-2 son por una parte manejar todos los protocolos de simulación, manejando bytes y grandes volúmenes de datos en un tiempo de ejecución corto. El lenguaje C++ se encarga de manejar este volumen de datos de forma rápida a la hora de realizar simulaciones de protocolos de comunicación. Por otro lado, es necesario realizar los scripts de los escenarios, estos se plantearan en Capitulo 4. Los scripts se realizan en el lenguaje OTcl que es de ejecución más lenta pero permite realizar cambios de forma más rápida e interactiva, lo que facilita hacer cambios como numero de nodos, topologías, protocolos de enrutamiento, tipo de paquetes que se enviaran, tamaño de paquetes etc.
Para poder separar la parte de datos de la parte de la configuración, el NS-2 utiliza un mecanismo que concede en control de los objetos escritos en C++ a Otcl. Esto quiere decir que se pueden escribir scripts de simulación de una red sin tener que escribir nada en C++. Véase la figura 3.1 Funcionamiento interno del simulador.
Esto cambia cuando se quiere implementar cualquier clase o protocolo que estuviera previamente introducido en NS-2, de tal manera que se deberá escribir en C++ y posteriormente compilar el programa para que la modificación quede establecida. Véase la figura 3.2 Jerarquía parcial de clases del NS-2.
43 El simulador NS-2 interpreta los scripts escritos en Otcl, el cual tiene un planificador de eventos de simulación, librerías, objetos de componentes de red y librerías de módulos de instalación de red, como se muestra en la siguiente figura 3.2.
3.8. Tool Command Lenguage (Tcl).
El Tcl o Lenguaje de herramientas de comando, es un lenguaje de scripts que ha sido concebido con una sintaxis sencilla para facilitar su aprendizaje sin deteriorar la funcionalidad y la expresividad.
Se utiliza principalmente para el desarrollo rápido de prototipos, aplicaciones “script”, interfaces gráficas y pruebas.
El Tcl es un lenguaje interpretativo y su código puede ser creado y modificado dinámicamente. Sus reglas sintácticas son extremadamente simples y posee reglas de alcance dinámico. Los “script” son
a menudo más compactos y legibles que los programas funcionales equivalentes que existen entre otros lenguajes de programación. Es un lenguaje de programación multiplataforma, con intérpretes que se ejecutan sobre Linux, Unix, MacOS, Windows y OSX e incluso en microprocesadores PIC.
Una de las características más usadas de Tcl es su extensibilidad. Por ejemplo, si una aplicación requiere algo de funcionalidad no ofrecida por Tcl pueden ser implementados utilizando lenguaje C, un integrado sumamente fácil. El Tcl es extensible a través de C, C++ y java. Mediante una extensión, permite la programación orientada a objetos.