proyecto fin de carrera - universidad de...

65
i Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería de Telecomunicación Desarrollo de un simulador para redes tolerantes a retrasos Autor: Francisco Luis Medina Puche Tutor: Daniel Gutiérrez Reina Dep. de Ingeniería Electrónica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017

Upload: others

Post on 07-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

i

Equation Chapter 1 Section 1

Proyecto Fin de Carrera

Ingeniería de Telecomunicación

Desarrollo de un simulador para redes tolerantes a

retrasos

Autor: Francisco Luis Medina Puche

Tutor: Daniel Gutiérrez Reina

Dep. de Ingeniería Electrónica

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2017

Page 2: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 3: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

iii

Proyecto Fin de Carrera

Ingeniería de Telecomunicación

Desarrollo de un simulador para redes tolerantes a

retrasos

Autor:

Francisco Luis Medina Puche

Tutor:

Daniel Gutiérrez Reina

Profesor titular

Dep. de Ingeniería Electrónica

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2017

Page 4: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 5: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

v

Proyecto Fin de Carrera: Desarrollo de un simulador para redes tolerantes a retrasos

Autor: Francisco Luis Medina Puche

Tutor: Daniel Gutiérrez Reina

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2017

El Secretario del Tribunal

Page 6: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 7: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

i

Agradecimientos

Este proyecto no hubiera sido posible sin la ayuda de mi tutor, Daniel Gutierrez Reina, el cual me ha falicitado

el material y los medios apropiados para llevar a cabo el desarrollo e implementación del simulador. Además,

su total disponibilidad ante las dudas y experiencia en el lenguaje de programación utilizado me ha ayudado a

comprender mejor los conocimientos básicos para cumplir satisfactoriamente con los objetivos marcados.

A la familia, amigos y compañeros, agradecer todo el apoyo que me han brindado durante la realización del

proyecto y el interés que han mostrado por conocer cuál era el estado del mismo.

Muchas gracias.

Francisco Luis Medina Puche

Sevilla, 2017

Page 8: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 9: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

iii

Resumen

La simulación se ha convertido en una herramienta clave para el diseño y análisis de sistemas, como pueden ser

las redes de comunicaciones o las redes de colas. Gracias a la simulación, podemos optimizar los sistemas, o

elegir un sistema u otro en función de los resultados obtenidos tras la simulación. Podemos obtener la carga

máxima que aceptará un sistema, pudiendo ajustarlo de manera bastante aproximada antes de implantar el

sistema. Se pueden prevenir errores gracias a la simulación, que, de otra manera solo se producirían con el

sistema ya implantado.

Dado esto, el presente proyecto pretende dar una visión más amplia acerca de un tipo de redes que se escapa de

los estándares que todos bien conocemos y da solución a una serie de inconvenientes que se presentan cuando

el modelo actual de Internet resulta ineficiente.

En resumen, el objetivo del simulador consiste en medir las prestaciones o el rendimiento de un determinado

sistema. En este proyecto, además queremos que un simulador también sea sencillo de usar, polivalente y actual.

Por ello, la elección de desarrollarlo en Python, es por su versatilidad y por su rápida expansión en los tiempos

actuales, ya que cada vez está siendo más usado.

Las diferentes etapas del código han sido validadas mediante simulación y pruebas experimentales. La

herramienta Anaconda, a través de su intérprete Spyder, nos ha permitido tanto la codificación como la posterior

simulación del mismo.

Por último, analizaremos los resultados obtenidos en diferentes simulaciones para poder perfilar ciertas líneas

futuras de investigación.

Page 10: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 11: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

v

Índice

Agradecimientos i

Resumen iii

Índice v

Índice de Tablas vii

Índice de Figuras ix

1 Introducción 1 1.1 Motivación 1 1.2 Objetivos 2 1.3 Estructura del documento 2

2 Internet en la actualidad 3 2.1 Capas del protocolo de Internet 4

3 Redes de comunicaciones inalámbricas 6 3.1 Evolución de las redes inalámbricas 6 3.2 El estándar WIFI 8 3.3 Tipos de redes inalámbricas 9

3.3.1 Redes de área personal inalámbricas (WPAN) 10 3.3.2 Redes de área local inalámbricas (WLAN) 10 3.3.3 Redes de área metropolitana inalámbricas (WMAN) 11 3.3.4 Redes de área extendida inalámbricas (WWAN) 11

3.4 Ventajas de las comunicaciones inalámbricas respecto a las tradicionales 13 3.5 Limitaciones de las comunicaciones inalámbricas respecto a las tradicionales 13

4 Redes DTN 15 4.1 Origen de las redes DTN 15 4.2 Aplicaciones de las redes DTN 16 4.3 Nodos 18 4.4 Método de almacenamiento y reenvío 19 4.5 Tipos de contactos 20 4.6 La capa Bundle 21 4.7 Protocolos de encaminamiento en DTNs 22

4.7.1 Encaminamiento determinista 22 4.7.2 Encaminamiento estocástico 23

5 Simulador “DpyThoN” 26 5.1 Herramientas utilizadas 26 5.2 Diagrama de bloques 29 5.3 Desarrallo del simulador 30 5.4 Resultados del simulador 32

6 Conclusión y futuros trabajos 37

7 Bibliografía 38

Page 12: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

Anexo A: Código bloque principal 39

Anexo B: Código de las funciones 45

Anexo C: Código de las clases 49

Page 13: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

vii

ÍNDICE DE TABLAS

Tabla 5–1 Medidas para nodo destino 3 33

Tabla 5–2 Medidas para nodo destino 13 34

Tabla 5–3 Medidas para nodo destino 12 35

Page 14: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 15: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

ix

ÍNDICE DE FIGURAS

Figura 2-1. Estrategia de reenvío de paquetes en Internet 3

Figura 2-2. Capas de protocolos de Internet 4

Figura 2-3. Esquema mecanismo de enrutamiento en Internet 5

Figura 3-1. Esquema ALOHA 7

Figura 3-2. Esquema de conexión Ad-hoc 7

Figura 3-3. Esquema conexión Infraestructura 8

Figura 3-4. Logo Wi-Fi 8

Figura 3-5. Clasificación redes inalámbricas 9

Figura 4-1. Nodos de las DTNs 19

Figura 4-2. Esquema almacenamiento y reenvío de las DTNs 20

Figura 4-3. Arquitectura de las DTNs 21

Figura 4-4. Interconexión de regiones con diferentes protocolos 22

Figura 4-5. Esquema del modelo de enrutamiento Epidemic 24

Figura 5-1. Logo Python 27

Figura 5-2. Logo Spyder 28

Figura 5-3. Diagrama de bloques 29

Figura 5-4. Archivo de trazas 30

Figura 5-5. Eventos ‘E’ y ‘G’ 31

Figura 5-6. Eventos ‘T’ y ‘R’ 31

Figura 5-7. Diagrama contacto entre nodos 32

Figura 5-8. Medidas para nodo destino 3 33

Figura 5-9. Medidas para nodo destino 13 34

Figura 5-10. Medidas para nodo destino 12 35

Figura 5-11. Número de contactos de todos los nodos 36

Page 16: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 17: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

1

1 INTRODUCCIÓN

1.1 Motivación

Debido al gran éxito obtenido por el desarrollo de Internet y la creciente dependencia a dispositivos

inalámbricos, tales como ordenadores personales portátiles o teléfonos móviles, añadido a la gran movilidad de

los usuarios y la evolución de las nuevas tecnologías como las redes de satélites y redes móviles, ha dado lugar

a que en los últimos años sean cada vez más los investigadores que están presentando un importante interés

sobre una nueva rama de las redes. Dichas redes nos permiten llegar a las zonas más remotas permitiendo la

comunicación en las condiciones más extremas e inestables, donde los beneficios del gran modelo que domina

la red mundial no llegan.

Si bien en los países en desarrollo el acceso a las comunicaciones sigue creciendo de manera significativa,

continúan existiendo regiones cuya limitación comunicativa sigue siendo muy pobre o prácticamente nula. Es

por ello que las redes tolerantes a retrasos (DTNs) nos ofrecen una solución a estos desafíos que se nos presentan

ya que existen ciertas diferencias con respecto a las redes tradicionales, las cuales son:

• Alto retardo, baja eficiencia y retardo de cola elevado. El retraso extremo a extremo nos indica la suma

total de los retrasos de cada uno de los saltos de la ruta. El retraso es considerado tiempo de espera,

tiempo de cola y tiempo de transmisión. El retraso en cada salto puede ser muy elevado debido al hecho

de que las DTN mantienen una conexión intermitente durante un tiempo muy largo, lo que conduce

además a una menor velocidad de datos y muestra las características asimétricas en la velocidad de

datos en enlaces ascendente-descendente. Además, los retrasos de cola juegan un papel importante en

los retrasos extremo a extremo y las fragmentaciones frecuentes en las DTN hacen que los retrasos de

cola aumenten.

• Conectividad intermitente. Como la movilidad de los nodos y la energía están limitados, las DTN se

desconectan con frecuencia, lo que resulta un cambio continuo en la topología de las DTN. Esto quiere

decir que la red mantiene el estado de conexión intermitente y parcial por lo que no existe garantía para

establecer una ruta extremo a extremo.

• Recursos limitados. La computación de los nodos, la habilidad de procesamiento, la habilidad de

comunicación y el espacio de almacenamiento es más débil que en una computadora corriente, debido

a los contrastes de precio, volumen y potencia. Además, el límite de almacenamiento provoca una

mayor pérdida de paquetes de información.

• Tiempo de vida del nodo limitado. En algunas circunstancias especiales de la red restringida, el nodo

es capaz de usar la alimentación de la batería en situaciones de ambiente hostil o condiciones muy duras,

lo que reducirá el tiempo de vida del nodo. Cuando la alimentación está apagada, el nodo no puede

garantizar un funcionamiento normal, es decir, es muy probable que el equipo esté apagado cuando el

mensaje está siendo transmitido.

• Topología dinámica. La topología de las redes DTN cambia de manera dinámica por algunas razones

como los cambios ambientales, agotamiento de la energía u otros fallos, lo cual provoca el abandono

de la red.

• Baja seguridad. En general, las DTN presentan vulnerabilidad, además de las propias amenazas por ser

una red de comunicación inalámbrica, al espionaje, modificación de mensajes, suplantación de

enrutamiento, negación del servicio (DoS), y otras amenazas a la seguridad debido a la falta de servicios

especializados y de mantenimiento del mundo real.

• Interconexión heterogénea. DTN es una red superpuesta dedicada a la transmisión de mensajes

asíncronos. Introduce la capa Bundle, donde la DTN puede trabajar en diferentes protocolos de red

diferentes y la puerta de enlace de las DTN asegura una transmisión fiable de los mensajes de

interconexión.

Page 18: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

Por consiguiente, las redes tolerantes a retardos pueden significar una gran solución a varios desafíos presentes

en entornos remotos, además el uso de un simulador nos servirá de gran ayuda para poder analizar determinados

escenarios.

1.2 Objetivos

El objetivo del presente Proyecto Fin de Carrera, es el de ofrecer una visión algo más amplia de las redes de

comunicación e incentivar el desarrollo de la investigación en redes poco habituales como son las DTN (Delay-

Tolerant Network), las cuales representan un tipo de red poco conocida pero que pueden llegar a ofrecernos

grandes avances tanto en el campo tecnológico como en el desarrollo humano ya que, entre otras

funcionalidades, nos permite que entornos aislados puedan beneficiarse al poder comunicarse con el mundo sin

las barreras tecnológicas que el modelo actual de redes representan. Los objetivos a abordar en este proyecto

son:

• Estudio de la tecnología DTN para ofrecer servicios de conexión en entornos remotos mediante la

retransmisión de información entre dispositivos inalámbricos móviles aprovechando la movilidad de

los mismos para llevar servicios a estos lugares.

• Desarrollo de un simulador sencillo basado en eventos para redes multi-salto tolerante a retrasos que

nos proporcione una solución a la situación expuesta en el punto anterior.

• Evaluación de protocolos sencillos de diseminación de mensajes.

1.3 Estructura del documento

Esta memoria ha sido redactad para describir con detalle todo el trabajo realizado durante el desarrollo del

proyecto. La estructura sigue el orden en el que se han abordado las distintas tareas y se divide en los siguientes

capítulos o secciones:

• Capítulo 1 – Introducción.

• Capitulo 2 – Internet en la actualidad: se hace una breve introducción sobre el punto en el que se

encuentra internet y las capas que la constituyen.

• Capítulo 3 – Redes de comunicaciones inalámbricas: evolución de las redes inalámbricas a lo largo de

la historia, sus diferentes tipos y las limitaciones que presentan.

• Capítulo 4 – Redes DTN: se define tanto el origen, evolución e implementación en la sociedad, así

como los distintos elementos que la constituyen.

• Capítulo 5 – Desarrollo y resultados del simulador DpyThoN: se recogen las simulaciones realizadas y

los resultados obtenidos.

• Capítulo 6 – Conclusiones y trabajos futuros: aportaciones personales a la consecución del proyecto.

Page 19: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

3

2 INTERNET EN LA ACTUALIDAD

nternet ha logrado un gran éxito en la interconexión de dispositivos de comunicación a través de la Tierra.

Lo ha hecho mediante el uso de un conjunto homogéneo de protocolos de comunicación, llamados como la

familia de protocolos TCP / IP. Todos los dispositivos en los cientos de miles de redes que forman Internet

usan estos protocolos para el enrutamiento de datos y aseguran la fiabilidad de los intercambios de mensajes.

La conectividad en Internet se basa principalmente en enlaces cableados, incluyendo el cable de red telefónico,

aunque las tecnologías inalámbricas, como el satélite y enlaces móviles de corto alcance también son una parte

esencial de la red. Estos enlaces, como los utilizados en Internet, están conectados de forma continua de extremo

a extremo, caminos de bajo retardo entre los orígenes y destinos. Presentan bajas tasas de error y velocidades de

datos bidireccionales relativamente simétricas.

La comunicación en Internet se basa en la conmutación de paquetes. Los paquetes son piezas de un bloque

completo de datos de usuario (por ejemplo, piezas de un mensaje de correo electrónico o una página web) que

viajan independientemente desde origen al destino a través de una red de enlaces conectados por routers. Los

routers encaminan la dirección en la que los paquetes se moverán. El origen, el destino y los routers son llamados

colectivamente nodos.

Cada paquete que conforma un mensaje puede tomar un camino diferente a través de los routers de la red. Si se

desconecta un enlace, los routers redirigen los paquetes utilizando un enlace alternativo. Dichos paquetes

contienen datos de usuario de aplicación del programa y una cabecera. La cabecera contiene una dirección de

destino y otra información que determina cómo el paquete se conmuta de un router a otro. Los paquetes en un

mensaje dado pueden llegar fuera de orden, pero el mecanismo de transporte del destino los devuelve en el orden

correcto. La facilidad de uso de Internet depende de algunos supuestos importantes:

• Enlaces extremo a extremo continuos y bidireccionales: Una conexión bidireccional continuamente

disponible entre el origen y el destino para apoyar la interacción de extremo a extremo.

• Viajes cortos ida y vuelta: Pequeños y relativamente contantes retrasos en la red (milisegundos), no

horas ni días. Se envían paquetes de datos y se reciben los correspondientes paquetes de confirmación.

• Tasas de datos simétrica: tasas de datos relativamente constantes en ambas direcciones entre el origen

y el destino.

• Tasas de errores baja: Relativamente poca pérdida o corrupción de datos en cada enlace.

Figura 2-1. Estrategia de reenvío de paquetes en Internet

I

Page 20: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

2.1 Capas del protocolo de Internet

Los terminales (ordenadores que actúan como origen o destino de los datos) implementan usualmente al

menos cinco capas de protocolo que realizan las siguientes funciones [1]:

• Capa de Aplicación: Generan o consumen los datos de usuario.

• Capa de transporte: Segmenta los datos de usuario en trozos en el origen, y vuelve a montar las piezas

en el destino, con control de errores y control de flujo. En Internet, el Protocolo de Control de

Transmisión (TCP) es el encargado de hacer esto.

• Capa de red: enrutamiento de la dirección que comunica el origen y el destino a través de nodos

intermedios, con la fragmentación y reensamblaje si es necesario. En Internet, el protocolo de Internet

(IP) hace esto.

• Capa de enlace: transmisión enlace a enlace y recepción de piezas direccionadas de los datos del usuario

con el correspondiente control de errores. Los protocolos de la capa de enlace incluyen redes de área

local (LAN) y protocolos punto a punto (PPP) para módems dial-up o conexiones de alta velocidad.

• Capa física: transmisión y recepción de flujos de bits enlace a enlace. Los medios físicos incluyen cable

de categoría 5 (CAT5), trenzado sin blindaje par (UTP), cable de teléfono, cable coaxial, cable de fibra

óptica y de RF.

Figura 2-2. Capas de protocolos de Internet

La siguiente figura muestra el mecanismo básico. Cada salto en una ruta puede utilizar una capa de enlace y una

capa física diferente, pero el protocolo IP se ejecuta en todos los nodos y el protocolo TCP se ejecuta sólo en los

terminales de origen y de destino. Los routers, en su función de retransmitir los datos, usa solamente los tres

protocolos inferiores. Otros varios protocolos de Internet y aplicaciones también se utilizan para proporcionar

nuevos caminos de enrutamiento, selección de rutas, resolución de nombres y servicios de recuperación de

errores [2].

Page 21: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

5

Figura 2-3. Esquema mecanismo de enrutamiento en Internet

Page 22: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

3 REDES DE COMUNICACIONES INALÁMBRICAS

esde un punto de vista general, entendemos por comunicaciones inalámbricas a aquellas que se

establecen entre dispositivos, móviles o no, o entre personas que intercambian información sin necesidad

de un soporte físico, es decir, utilizando únicamente el espectro electromagnético. Tanto la transmisión

como la recepción se realizan a través de puertos. Una de sus principales ventajas es el ahorro en costes, ya que

se elimina todo el cableado Ethernet y las conexiones físicas entre nodos.

Las tecnologías de interconexión inalámbrica van desde redes de voz y datos globales, que permiten a los

usuarios establecer conexiones inalámbricas a través de largas distancias, hasta las tecnologías de luz infrarroja

y radiofrecuencia que están optimizadas para conexiones inalámbricas a distancias cortas. Numerosos son los

dispositivos que son utilizados a día de hoy que presentan esta característica: equipos portátiles, teléfonos

móviles, tabletas, agendas electrónicas de bolsillo (PDA), etc…

Las tecnologías inalámbricas presentan una infinidad de usos prácticos, por ejemplo, ya sean los usuarios de

teléfonos móviles pueden usarlo para tener acceso al correo electrónico, navegar por internet, comunicarse con

otros usuarios mediante aplicaciones de mensajería instantánea entre otras muchas prestaciones; aquellas

personas que viajan con equipos portátiles pueden conectarse a Internet a través de estaciones base instaladas en

aeropuertos, estaciones de trenes u otros lugares públicos; o en el propio domicilio, donde los usuarios pueden

conectar sus dispositivos a su equipo de escritorio para sincronizar datos y transferir archivos.

Sin lugar a dudas, las comunicaciones inalámbricas constituyen actualmente el segmento más dinámico y de

mayor crecimiento en el sector de las Tecnologías de la Información y Comunicaciones (TIC).

3.1 Evolución de las redes inalámbricas

Las redes inalámbricas están adquiriendo un éxito sin precedentes debido a una combinación de factores: una

tecnología eficaz con el uso del espectro, muy orientada al despliegue de redes locales de pequeño tamaño, un

entorno regulatorio que permite su libre uso, una lógica fácilmente integrable y de muy bajo coste, y una

interoperabilidad de equipos generalmente exitosa.

Para empezar a hablar de redes inalámbricas es necesario que nos remontemos al año 1880, en el que Graham

Bell y Summer Tainter inventaron el primer aparato de comunicación sin cables, el fotófono, pero no tuvo mucho

éxito debido a que entonces todavía no se distribuía electricidad y las primeras bombillas se habían inventado

un año antes.

En 1888 el físico alemán Rudolf Hertz realizó la primera transmisión si cables con ondas electromagnéticas

mediante un oscilador que uso como emisor y un resonador que hacía de receptor. En 1894 las ondas de radio

ya eran un medio de comunicación. En 1899 Guillermo Marconi consiguió establecer comunicaciones

inalámbricas a través del canal de La Mancha.

En 1907 se transmitían los primeros mensajes completos a través del Atlántico. Durante la Segunda Guerra

Mundial se produjeron importantes avances en este campo.

La primera red inalámbrica no tuvo lugar hasta 1971, cuando un grupo de investigadores, en la universidad de

Hawái, dirigidos por Norman Abramson crearon el primer sistema de conmutación de paquetes mediante una

red de comunicación por radio, dicha red se llamó ALOHA [3].

D

Page 23: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

7

Figura 3-1. Esquema ALOHA

A finales de los sesenta se publicaron los resultados de un experimento consistente en utilizar enlaces de

infrarrojos para crear una red local en una fábrica llevado a cabo por IBM en Suiza. Como hemos visto se usan

ondas electromagnéticas para transportar información de un punto a otro, para este objetivo se hace uso de ondas

portadoras (la señal que contiene la información a transmitir). La onda moduladora se acopla con la portadora,

a esto se le llama modulación, surgiendo una señal de radio que ocupa más de una frecuencia debido a que la

frecuencia de la primera se acopla a la segunda. Gracias a esto pueden existir varias portadoras simultáneamente

en el mismo espacio sin interferirse, siempre y cuando se transmitan en diferentes frecuencias. Otra ventaja es

la mayor facilidad en la transmisión de la información. Resulta más barato transmitir una señal de alta frecuencia

(como es la modulada) y el enlace es mayor. El receptor se sintoniza para seleccionar una frecuencia de radio y

rechaza las demás, tras esto demodula la señal para obtener los datos originales. A grosso modo este es el

funcionamiento de las redes inalámbricas. Para que las redes inalámbricas se pudieran expandir sin problemas

de compatibilidad había que establecer unos estándares, por ello IEEE creó un grupo de trabajo específico

llamado 802.11, se definiría con este estándar el uso del nivel físico y de enlace de datos de red, especificando

sus normas de funcionamiento. La diferencia entre una red inalámbrica y otra que no lo es reside en la forma en

que se transmiten los paquetes de datos, el resto es idéntico y como consecuencia todo el software que vaya a

funcionar con la red no debería tener en cuenta que tipo de red es ya que ambos tipos de redes son totalmente

compatibles. IEEE 802.11 define dos modos básicos de operación:

• Ad-hoc: los terminales se comunican libremente entre sí. Se suele encontrar en entornos militares,

operaciones de emergencias, redes de sensores, comunicación entre vehículos, etc [4].

Figura 3-2. Esquema de conexión Ad-hoc

• Infraestructura: los equipos están conectados con uno o más puntos de acceso al medio, es mayoritario,

podemos ver este modo de operación en hogares, empresas e instituciones públicas.

Page 24: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

Figura 3-3. Esquema conexión Infraestructura

En 1999 Nokia y Simbol Technologies crearon la asociación Wireless Ethernet Compatatibility Alliance

(WECA), que en 2003 fue renombrada a WI-FI Alliance (Wireless Fidelity) con el objetivo de crear una marca

que permitiese fomentar más fácilmente la tecnología inalámbrica y asegurar la compatibilidad de equipos. En

2000 la WECA certifico según la norma 802.11b (revisión del 802.11 original) que todos los equipos con sello

Wi-Fi podrán trabajar juntos sin problemas.

Actualmente existe una norma de transmisión de datos llamada WIMAX (IEEE 802.16) que utiliza las ondas de

radio en las frecuencias 2,5 y 5Ghz, es una tecnología dentro de las conocidas como tecnologías de última milla.

Está diseñada para dar servicios de banda ancha en zonas donde el despliegue de cable o fibra por baja densidad

de población representa unos costes por usuarios muy elevados. Este sistema cubre distancias de hasta 80km y

una velocidad máxima de 75Mbps.

3.2 El estándar WIFI

Figura 3-4. Logo Wi-Fi

Wifi es una red inalámbrica basada en la transmisión de datos mediante ondas electromagnéticas en la cual el

alcance es bastante limitado por lo que se utiliza principalmente a nivel doméstico y en oficinas de trabajo.

Gracias a que nos permite la eliminación del cableado para la conexión a Internet, se ha convertido en la red más

popular.

En 1999, los principales vendedores de soluciones inalámbricas se asociaron bajo el nombre de WECA

(Wireless Ethernet Compability Aliance) la cual fue renombrada en 2003 a WI-FI Alliance. El objetivo de ésta

era crear una marca que permitiese fomentar más fácilmente la tecnología inalámbrica y asegurar la

Page 25: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

9

compatibilidad de equipos. El estándar original es el 802.11, éste ha ido evolucionando y ahora las posibilidades

de alcance y velocidad son varias. Algunas variantes de Wifi son estas [3]:

• IEEE 802.11b y IEEE 802.11g: ambos disponen de una banda de 2.4 GHz. El primero alcance una

velocidad de 11 Mbps y el segundo de 54 Mbps. Son de los estándares más extendidos.

• IEEE 802.11a: trabaja a una frecuencia de 5 GHz, por lo que es conocido como Wifi5. Dispone de

menor alcance que el estándar anterior. Sin embargo, al ser un sistema reciente no hay otras tecnologías

que lo usen por lo que la conexión a internet es limpia y sin interferencias.

• IEEE 802.11n: presenta también una banda de 2.4 GHz, pero la velocidad es mucho mayor que la de

sus predecesores, 108 Mbps.

3.3 Tipos de redes inalámbricas

Lo mismo que las redes con cable, las redes inalámbricas se pueden clasificar en diferentes tipos en función de

las distancias a través de las que se pueden transmitir los datos. Según su alcance, se establecen tres grandes

grupos:

• Redes de área personal inalámbrica (WPAN: wireless personal area networks).

• Redes de área local inalámbrica (WLAN: wireless local area networks).

• Redes de área metropolitana inalámbrica (WMAN: Wireless Metropolitan Area Networks)

• Redes de área extendida inalámbrica (WWAN: wireless wide area networks). Podemos diferenciar dos

tipos de WWAN, según quién controle su acceso:

➢ Comunicación fija (FWWAN: fixed wireless wide area networks).

➢ Comunicación móvil (MWWAN: mobile wireless wide area networks).

Figura 3-5. Clasificación redes inalámbricas

Page 26: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

3.3.1 Redes de área personal inalámbricas (WPAN)

Las WPAN presentan una importante limitación de alcance: los dispositivos que pretenden comunicarse han de

estar poco separados. Generalmente, se acepta como límite el espacio de una habitación o un despacho. Las

redes WPAN es una tecnología que ha llegado de manera progresiva a nuestra vida cotidiana con el objetivo de

hacer las comunicaciones más cómodas y más fáciles de utilizar: la tecnología Bluetooth permite comunicar una

impresora y un ordenador sin ningún cable, siempre que estén a una distancia de aproximadamente diez metros;

mediante la tecnología Wi-Fi la distancia puede llegar a ser de hasta cien metros.

Las tecnologías más utilizadas de WPAN son Bluetooth, DECT, IrDa, NFC10 y Zigbee.

3.3.2 Redes de área local inalámbricas (WLAN)

Una WLAN es una red de cobertura geográfica limitada, velocidad de transmisión relativamente alta, bajo nivel

de errores y administrada de manera privada, que se comunica básicamente mediante microondas.

3.3.2.1 Ventajas y limitaciones de las WLAN

La necesidad de una WLAN no se justifica por una posible mejora en ancho de banda o en fiabilidad, seguridad

o eficiencia de las comunicaciones, sino por la comodidad que proporciona al usuario y la movilidad que le

permite y por su fácil y rápida instalación.

Las WLAN son una extensión y/o una alternativa a las LAN cableadas. Los usuarios de una WLAN pueden

acceder a los recursos que les ofrece la LAN sin tener que depender de infraestructuras de red (cableado,

conectores, etc..). La gran difusión de este tipo de redes se debe a las importantes ventajas que presentan respecto

a las LAN:

• Movilidad: los usuarios de una WLAN pueden acceder a información en tiempo real desde cualquier

lugar de la organización.

• Instalación simple: no hay que preocuparse por la instalación de cables dentro del radio de cobertura.

• Flexibilidad: permite acceder a lugares que una LAN cableada no alcanzaría nunca.

• Bajo coste: aunque el coste inicial de instalación de las WLAN puede ser superior a las LAN con cable,

a largo plazo puede suponer un ahorro, sobre todo en entornos con cambios frecuentes de ubicación de

los dispositivos.

• Escalabilidad: las WLAN se pueden configurar con diferentes topologías de una manera sencilla según

la necesidad del entorno. Podemos tener las WLAN ad hoc (donde los dispositivos se van añadiendo a

la red) y las WLAN con puntos de acceso conectados a la red principal.

A pesar de las ventajas mencionadas anteriormente, las WLAN tienen una serie de limitaciones y requisitos

como:

• Velocidad: las WLAN deben poder transmitir información a velocidades comparables a las LAN (más

de 500 Mbps).

• Retardos: son importantes en cualquier aplicación, pero especialmente en las transmisiones

inalámbricas.

• Accesos difíciles: dentro de un edificio podemos encontrar factores que amortiguan la señal. Un

dispositivo móvil puede recibir mucha menos potencia que otro.

• Consumo: los dispositivos móviles se suelen alimentar con baterías; por lo tanto, hay que diseñarlos

para que tengan un consumo eficiente (modo reposo, modo bajo consumo, poco gasto en la transmisión

de paquetes, etc.).

• Máximo número de nodos y máxima cobertura: una WLAN puede necesitar soportar centenares de

nodos. El área de cobertura típica de una WLAN es de entre 10 y 100 m2, lo que implica retardos de

propagación inferiores a 1.000 nseg.

• Seguridad: el medio en el que se transmite la información (ondas electromagnéticas) es abierto para

Page 27: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

11

cualquiera que esté en el radio de cobertura. Para garantizar la seguridad, se utilizan algoritmos de

cifrado.

• Interferencias: se pueden producir a causa de dos transferencias simultáneas (colisiones) o de dos

emisores que comparten la misma banda de frecuencia. Las colisiones también se producen cuando

varias estaciones que esperan que el canal esté libre empiezan las transmisiones al mismo tiempo. A

diferencia de las redes locales con hilos, en las WLAN se produce un efecto de nodo oculto que conlleva

un aumento de colisiones.

3.3.3 Redes de área metropolitana inalámbricas (WMAN)

Para redes de área metropolitana se encuentran tecnologías inalámbricas basadas en WiMAX (Worldwide

Interoperability for Microwave Access, es decir, Interoperabilidad Mundial para Acceso con Microondas), un

estándar de comunicación inalámbrica basado en la norma IEEE 802.16. WiMAX es un protocolo paracido a

Wi-Fi, pero con más cobertura y ancho de banda. También podemos encontrar otros sistemas de comunicación

como LMDS (Local Multipoint Distribution Service).

3.3.4 Redes de área extendida inalámbricas (WWAN)

Las WWAN permiten la conexión de redes y usuarios de zonas geográficamente distantes. Se distinguen dos

tipos:

• WWAN fijas, que utilizan radioenlace o satélite.

• WWAN móviles, que utilizan las compañías u otros servicios públicos en la transmisión y recepción

de señales.

Sin ningún tipo de duda, las redes WWAN móviles (MWWAN) son las que han vivido una expansión más

espectacular en los últimos años. Actualmente las MWWAN son el sistema de comunicación inalámbrico más

utilizado, ya que es el que utilizan las operadoras de telefonía móvil y cuenta con más de 5.000 millones de

usuarios en todo el mundo.

3.3.4.1 WMAN fijas (FWWAN)

Las redes WWAN fijas pueden utilizar dos tecnologías:

• Radioenlace. Utilizando radioenlaces se pueden conectar redes separadas geográficamente con

diferentes bandas del espectro electromagnético (infrarrojos, microondas, láser, etc.), que pueden ser de

punto a punto o de punto a multipunto.

• Satélite. Las comunicaciones por satélite cubren una gran superficie de la Tierra, tienen un gran ancho

de banda y el coste de la transmisión es independiente de la distancia; presentan el inconveniente de los

retardos de propagación de la señal.

Actualmente, la mayor parte de las redes de satélite se utilizan para la difusión de televisión. El uso de estas

redes para la transmisión de datos inalámbricas es muy limitado, dado que es necesario tener en cuenta los

grandes gastos que conllevan en equipamiento, los problemas del retardo que se produce al propagarse la señal

y el coste elevado por minuto de transmisión.

3.3.4.2 WWAN móvil (MWWAN)

En las redes MWWAN el terminal que envía y recibe la información está en movimiento. En estas redes

normalmente hay muchos usuarios conectados simultáneamente (acceso múltiple) que utilizan los servicios.

Actualmente en Europa existen diferentes tecnologías de MWWAN, agrupadas por generaciones, donde las más

destacadas son las cinco siguientes:

Page 28: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

3.3.4.2.1 2G (Segunda generació n)

Tecnología de segunda generación, utilizada para describir las redes móviles digitales, como las GSM, que

sustituyeron a las redes móviles analógicas de primera generación. Básicamente estaban diseñadas para

comunicaciones de voz, mensajería instantánea (SMS) y, esporádicamente, para transmisión de datos básicos

que requieren muy poco ancho de banda. La generación abarca el sistema GSM:

• GSM. El Group Special Mobile fue el organismo que se encargó de la configuración técnica de una

normativa de transmisión y recepción para la telefonía móvil. En Europa, las bandas de frecuencias ISM

que se utilizan son 900 MHz y 1.800 MHz. Esta tecnología apareció en el año 1990 con una velocidad

de transmisión de 9,6 kbps. GSM opera por comunicación de circuitos; esto quiere decir que existe una

fase de establecimiento de la conexión que añade tiempo de espera y que la llamada siempre estará

abierta, aunque no haya transferencia de datos, mientras no se cierre la conexión.

3.3.4.2.2 2.5G (Segunda generació n y media)

Considerada una tecnología intermedia entre 2G y 3G basada en las actualizaciones tecnológicas de las redes

móviles GSM para aumentar la velocidad de transmisión de datos y su eficacia. La generación abarca los

sistemas GPRS y EDGE:

• GPRS. Es una técnica de conmutación de paquetes que empezó a utilizarse en el 2001 y que se integró

con la estructura actual de redes GSM. Esta tecnología permite una velocidad de datos de entre 56 y

115 kbps. Sus ventajas son múltiples y se aplican fundamentalmente a las transmisiones de datos que

requieren tráfico discontinuo, como por ejemplo Internet y mensajería electrónica (SMS y MMS). Con

esta tecnología, desaparece el concepto de tiempo de conexión y dejan paso al de cantidad de

información transmitida, y se pasa de conmutación de circuitos a conmutación de paquetes. Los

proveedores de servicio de telefonía móvil podrán facturar por los paquetes realmente enviados y

recibidos. El ancho de banda podrá ser entregado a la carta, en función de las necesidades de la

comunicación.

• EDGE. También conocida como EGPRS (Enhanced GPRS), es una tecnología que apareció en el 2003

y considerada una evolución del GPRS. EDGE proporciona un ancho de banda superior a la de GPRS,

entre 236 y 384 kbps, que permite ejecutar aplicaciones que requieren una mayor velocidad de

transferencia de datos, como vídeo y otros servicios multimedia.

3.3.4.2.3 3G (Tercera generació n)

Las tecnologías de 3G son la respuesta a la especificación IMT-2000 de la Unión Internacional de

Telecomunicaciones (ITU) para disponer de banda ancha en telefonía móvil y transmitir un volumen de datos

importante mediante la red. Con la tercera generación serán posibles las videoconferencias, descargar vídeos,

ver televisión en tiempo real y poder realizar la mayoría de las operaciones desde el móvil. La generación abarca

el sistema UMTS:

• UMTS. El estándar UMTS está basado en la tecnología WCDMA. UMTS está gestionado por la

organización 3GPP versión 4, también responsable de GSM, GPRS y EDGE. UMTS se comercializó

por primera vez en el 2005 y su velocidad máxima de transmisión de datos es 1,92 Mbps.

3.3.4.2.4 3.5 (Tercera generació n y media)

De la misma manera que el 2.5G, es considerada una tecnología intermedia entre 3G y 4G, con el principal

objetivo de aumentar considerablemente la velocidad de transmisión de datos por las necesidades actuales de

los clientes consumidores. Es, por lo tanto, la evolución de 3G y se considera el paso previo de la cuarta

generación 4G. La generación abarca los sistemas HSPA y HSDPA:

• HSPA. Es la combinación de tecnologías posteriores y complementarias a 3G, como HSDPA o

HSUPA. Teóricamente, admite velocidades de hasta 14,4 Mbps en bajada y hasta 2 Mbps en subida,

dependiendo del estado o la saturación la red y de su implantación.

• HSDPA. Es la optimización de la tecnología espectral UMTS/WCDMA, incluida en las

Page 29: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

13

especificaciones de 3GPP versión 5 y consiste en un nuevo canal compartido en el enlace descendente

(downlink) que mejora significativamente la capacidad máxima de transferencia de información hasta

llegar a tasas de 14,4 Mbps, soportando tasas de transmisión media próximas a 1 Mbps. Es totalmente

compatible con UMTS y la mayoría de los proovedores UMTS dan soporte a esta tecnología.

3.3.4.2.5 4G (Cuarta generació n)

El WWRF (Wireless World Research Forum) define 4G como una integración de red que funciona con la

tecnología de Internet donde toda la red es IP, combinándola con otros usos y tecnologías, como WiFi y

WiMAX. En estos momentos, 4G no es una tecnología o estándar definido, sino una colección de tecnologías y

protocolos que permiten el máximo rendimiento y con una red inalámbrica más barata. 4G incluye técnicas

inalámbricas de alto rendimiento, como MIMO y para el acceso radio abandona el acceso tipo CDMA

característico de UMTS (3G) para pasar a OFDMA para optimizar el acceso. La generación abarca los sistemas

LTE y WiMax:

• LTE. Es el estándar de la norma 3GPP versión 8, 9 y 10, definida como una evolución de la norma

3GPP UMTS (3G) y un nuevo concepto de arquitectura evolutiva (4G). LTE es la clave para el

despegue de Internet móvil, ya que posibilita la transmisión de datos a más de 300 Mbps en movimiento,

lo que permite la transmisión de vídeos o TV de alta definición.

• WIMAX. Es una tecnología, entre WLAN y WWLAN, que permite hacer conexiones a grandes

distancias, con grandes anchos de banda y sin necesitar línea de visión directa entre antenas. WiMAX

cumple los estándares IEEE 802.16 y es compatible con otros estándares, como el IEE 802.11, para

establecer sistemas de telecomunicaciones conjuntos.

3.4 Ventajas de las comunicaciones inalámbricas respecto a las tradicionales

Algunas de las ventajas que supone la utilización de la tecnología inalámbrica respecto a la comunicación

tradicional con cable son las siguientes:

• Accesibilidad y flexibilidad. Las comunicaciones inalámbricas llegan a lugares donde los cables no

tienen acceso.

• Coste. Las comunicaciones inalámbricas nos ahorran el coste asociado a la instalación del cableado y

los derivados de los cambios de entorno físico, que podrían ser todavía más importantes.

• Movilidad. Las comunicaciones inalámbricas permiten tener información en tiempo real y en cualquier

lugar del mundo. Esta funcionalidad puede permitir a muchas empresas mejorar su productividad y sus

posibilidades de negocio.

• Comodidad. El hecho de poder prescindir de los cables que conectan los dispositivos hace que con el

uso de comunicaciones inalámbricas se adquiera una importante comodidad.

• Escalabilidad. Las comunicaciones sin cables se adaptan fácilmente a los cambios de topología de la

red y, además, la reubicación de los terminales se facilita enormemente.

3.5 Limitaciones de las comunicaciones inalámbricas respecto a las tradicionales

Las limitaciones principales que podemos encontrar en las comunicaciones inalámbricas son las siguientes:

• Consumo. Los terminales móviles suelen trabajar con baterías que limitan la potencia de transmisión

de los dispositivos, lo que repercute directamente en el alcance de las redes.

• Capacidad de transferencia limitada. El espectro electromagnético es un recurso limitado.

• Calidad. Las transferencias inalámbricas se ven sometidas a interferencias y ruidos.

• Seguridad. La utilización del espectro electromagnético como medio de comunicación implica que

cualquier persona puede acceder a la información sin ningún tipo de limitación física.

Page 30: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9
Page 31: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

15

4 REDES DTN

4.1 Origen de las redes DTN

Una Red Tolerante a Retrasos (DTN, Delay Tolerant Network) representa la clase de redes donde las conexiones

entre los nodos inalámbricos pueden sufrir la falta de conectividad continua [1].

Este tipo de redes usualmente tiene una densidad de nodos escasa, con rangos de comunicación cortos en cada

nodo. La conexión a través de estos nodos puede ser interrumpida debido a los límites del alcance del radio

inalámbrico, debido a la escasez de nodos móviles, recursos de energía, ataques, interferencias ambientales o

ruido.

Este tipo de redes se caracteriza por:

• Intermitencia en la conectividad: Si no hay una ruta de punto a punto entre el origen y el destino, la

comunicación punto a punto usando protocolos de TCP/IP no funciona. Se requerirán otros protocolos.

• Retardo grande o variable: Adicionalmente a la intermitencia, largos retardos de propagación entre los

nodos y retardos de espera variables, añadidos al retardo de la ruta de punto a punto pueden vences a

los protocolos de Internet y a las aplicaciones que requieran de acuses de recibo inmediatos o retorno

de información.

• Tasas de datos asimétricas: Internet soporta asimetrías moderadas en tasa de datos bidireccionales

(como en la TV por cable o ADSL). Pero si estas asimetrías son muy grandes, los protocolos de

conversación son derrotados.

• Elevadas tasas de error: Errores en el envío de bits requieren corrección (lo que requieres mayor

cantidad de bits y mayor procesamiento) o retransmisión del paquete entero (lo que resulta en mayor

tráfico de red).

Las Redes tolerantes al retardo e interrupciones surgieron como parte del proyecto “Internet Interplanetaria”

(IPN). Este proyecto comenzó en el Laboratorio de Propulsión a Chorro de EEUU con el objetivo de

proporcionar una nueva tecnología para las comunicaciones entre naves espaciales.

Se concebía el sistema interplanetario como una red de redes globales, no limitada a usar los protocolos de

internet convencionales. La arquitectura resultante presenta una estructura en capas del mismo grado de

abstracción que internet, y puede operar tanto en internet convencional como sobre protocolos de transportes

subyacentes, más adecuados a largos retardos e interrupciones.

En esta nueva arquitectura el equivalente a IP se denomina Protocolo de Paquetes (Bundle Protocol) y puede

correr lo mismo sobre TCP, UDP, sobre el nuevo Protocolo de Transporte Licklider para aplicaciones en el

espacio profundo o sobre otro protocolo de transporte. Esta arquitectura de red llamada Redes tolerantes al

retardo e interrupciones ha demostrado ser útil en aplicaciones terrestres.

Las redes DTN implementan una arquitectura de conmutación de mensajes con almacenamiento y reenvío. Esta

funcionalidad se consigue con la introducción de una capa de mensajes o fardo, bundle layer, situada entre la

capa de aplicación y la capa de transporte con el objetivo de unir redes distintas y de naturaleza heterogénea.

El almacenamiento de los datos se realiza de forma persistente (en discos o memorias flash) en los nodos

intermedios para ser retransmitidos ante una interrupción. Otra característica de las redes DTN es la transferencia

de mensajes bajo custodia. Los encaminadores DTN almacenan los mensajes con garantías hasta que el siguiente

nodo en la ruta esté disponible.

Page 32: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

4.2 Aplicaciones de las redes DTN

Debido a razones técnicas o factores económicas, la topología de la red cambia constantemente y los enlaces

extremo a extremo raramente están disponibles en las DTNs. La mayoría de las aplicaciones tradicionales no

funcionan en este tipo de redes. Como consecuencia, diversas aplicaciones DTNs, que explotan las

características inherentes de las DTNs para transmitir mensajes, han sido desarrolladas. Como el área de las

DTNs está en desarrollo, solo veremos algunas de las principales aplicaciones prácticas de las mismas.

• REDES EN ENTORNOS SALVAJES.

Las redes tolerantes a retrasos han sido ampliamente utilizadas en el rastreo de la fauna salvaje. El

sistema de comunicación tolerante al retraso más típico es Zebranet, que se utiliza para realizar un

seguimiento de la cebra mediante la aplicación de técnicas de red inalámbricas de igual a igual (peer-

to-peer). El sistema Zebranet consta de collares de rastreo (nodos) realizados por las cebras en el marco

del estudio a través de las vastas praderas de África. Dicha estructura consta de un sistema de

posicionamiento global (GPS), una memoria flash, un transceptor inalámbrico y una CPU de baja

potencia. Los collares operan como la forma de conexión oportuna para transmitir datos a los

investigadores. Cuando dos cebras se encuentran, los collares registrarán la información encontrada e

intercambian los datos almacenados en la memoria local. A través de estos encuentros intermitentes, la

información de encuentro se registra y es difundida a aquellas cebras con collares de rastreo. Los

investigadores del entorno salvaje, regularmente conducen con estaciones bases de telefonía móvil a

través del área de seguimiento para recopilar información sobre la población dispersa de cebras.

• REDES EN ZONAS RURALES.

Durante la última década, los servicios de comunicación se han ido convirtiendo en más y más

persuasivos. Sin embargo, debido a la falta de infraestructuras fijas, la comunicación sigue siendo muy

cara y un inconveniente en los países en vías de desarrollo o aldeas remotas. Esto implica una

oportunidad para las DTNs, las cuales podrían proporcionar servicios de comunicación en tiempo no

real con un bajo coste extraordinario. La red de comunicación más representativa en este ámbito es

DakNet, una red tolerante a retrasos Ad-hoc que utiliza tecnología inalámbrica para proporcionar

servicios de conectividad digitales asíncronos. La DakNet es desarrollado por investigadores del MIT

Media Lab, y ha sido implementado con éxito en lugares remotos de la India y Camboya. DakNet

combina medios físicos de transporte con la transferencia inalámbrica de datos a fin de extender la

conectividad a Internet proporcionada por un enlace ascendente central o Hub (por ejemplo, un

cibercafé, VSAT, o la oficina de correos) a los quioscos en las aldeas circundantes. Básicamente, en el

escenario DakNet, un nodo se mueve a lo largo de un camino predefinido. Un vehículo se detiene en el

destino durante un tiempo durante el cual se produce la carga y descarga de datos. El vehículo puede

ser un autobús, moto o cualquier otro dispositivo dependiendo de las ubicaciones rurales. DakNet, en

lugar de tratar de transmitir datos a larga distancia (que puede ser caro), transmite los datos a través de

enlaces punto a punto de corta longitud entre los quioscos y dispositivos de almacenamiento portátiles

llamados puntos de acceso móvil (MAP). Montado en un autobús, motocicleta, e incluso una bicicleta,

el MAP transporta físicamente los datos entre los quioscos públicos y dispositivos de comunicaciones

privadas (como una intranet) y entre los quioscos y un ordenador (para acceso a Internet en tiempo no

real). Mediante el uso de radiotransmisores WiFi de bajo coste, los datos transportados por el MAP se

transfieren automáticamente y de forma inalámbrica con alto ancho de banda para las conexiones punto

a punto.

La red desarrollada por DakNet se puede utilizar para una amplia variedad de aplicaciones, tales como:

➢ Distribución/difusión de información: Incluye tableros de anuncios de la comunidad,

transferencia de materiales educativos, anuncios de salud pública, noticias, música y

transmisiones de vídeo.

➢ Recogida de información: Esto puede incluir la recolección de información de datos

ambientales, información de centros de votación, censo, encuestas, registros de salud, etc.

Page 33: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

17

➢ Búsqueda de información, servicios web: Mediante la incorporación de nuevos tipos de

aplicaciones de Internet que están diseñadas para el acceso en tiempo no real.

• REDES EN VEHICULOS AD-HOC.

La red de vehículos Ad-hoc (VANET) [4] es una red móvil que proporciona servicios de comunicación

entre vehículos y acceso a internet. El CarTel, un VANET clásico, es un sistema de comunicación de

sensores distribuidos diseñado para recoger, transmitir y visualizar los datos de los sensores móviles

situados en lugares como los automóviles. Este tipo de redes se caracterizan principalmente por

limitaciones de potencia, memoria y capacidad del CPU, sin embargo, permiten crear redes compuestas

por miles o millones de nodos, en la cual la comunicación se planifica a fin de conservar energía.

Utilizan la arquitectura de las DTN que consiste fundamentalmente en un conjunto de regiones,

compartiendo una capa en común (“bundle layer”), dicho de otra manera, simplemente una capa de

mensaje que opera entre la capa de aplicación y la capa de transporte.

• SERVICIOS DE ATENCIÓN MÉDICA PARA REGIONES EN VIAS DE DESARROLLO.

En las regiones en desarrollo, debido a las pobres condiciones médicas, la gente a menudo muere por

enfermedades que se pueden prevenir o haber curado, si se trata adecuadamente. Una posible solución

para resolver el problema anterior es el sistema de telemedicina donde médicos a distancia pueden

ayudar a los médicos locales para el diagnóstico de un paciente a través de fotos o videos. Sin embargo,

debido a la falta de estabilidad en la fuente de alimentación, el sistema de telemedicina es inútil para

grandes cantidades de tiempo. Por tanto, es difícil de programar el tiempo cuando una consulta de

telemedicina puede ocurrir. Un sistema de atención médica para las regiones en desarrollo se está

implementando en Sudáfrica. Este sistema combina un método de almacenamiento y reenvío con VoIP

para proporcionar comunicación en esa zona. El enfoque de almacenamiento y reenvío permite la

transmisión de mensajes entre los hospitales y clínicas, incluso si no hay un suministro de potencia

estable. VoIP permite realizar llamadas telefónicas entre las clínicas y hospitales. Además, el vídeo

podría incluso ser transmitido de la clínica al hospital a través de una cámara web de bajo costo. Se ha

demostrado que el sistema de salud de hecho ayuda a los médicos locales para dar diagnóstico correcto

y su correspondiente tratamiento.

• REDES MOVILES SOBRE RELACIONES SOCIALES.

DTN es una red emergente que ha atraído considerablemente la atención, que no sólo ofrece los

servicios sociales como los populares servicios de redes sociales basadas en la Web sin Internet, sino

que también emplea los lazos sociales entre los nodos para ofrecer servicios de transmisión de datos.

D-book, una aplicación de la red móvil basada en relaciones sociales, ofrece servicios sociales tales

como crear, modificar y compartir perfiles. Estos perfiles contienen información básica sobre los

usuarios, información del contacto y los intereses. En el D-book, los usuarios no sólo poseen y editan

un perfil personal, sino que también buscan otros perfiles basados en intereses comunes u otros criterios

de búsqueda. Además, permite a los usuarios enviar mensajes a otros usuarios y suscribirse al perfil de

otros usuarios. En adición, el D-book ha sido desarrollado sobre la plataforma .NET y puede ser

utilizado en dispositivos basados en la plataforma de Windows. Al igual que en D-book, Uttering

también suministra servicios de redes sociales a través de “micro-blogging” sin Internet. Entre 2010 y

2011 se desarrolló un middleware con la finalidad de difundir mensajes entre dispositivos móviles en

sistemas de distribución tolerantes a retrasos. Este middleware consta de tres componentes principales.

La API permite que las aplicaciones accedan a los servicios de las capas de sesión; la estructura de

contenidos divide el contenido en temas lógicos y permite la coincidencia de las operaciones de

búsqueda y la descarga eficiente en virtud de la conectividad del nodo perturbador; el protocolo de

solicitud permite que los nodos para solicitar contenido de meta-información para poder encontrar

contenidos disponibles y descargarlos en nodos vecinos. A diferencia de las arquitecturas de red

existentes, este middleware tiene como objetivo difundir el contenido. Cuando los nodos están sin

rango de comunicación, los contenidos son intercambiados a través de caminos de diseminación

basados en intereses. En otras palabras, los contenidos se entregan implícitamente por una combinación

Page 34: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

del protocolo de solicitud del nodo receptor y la movilidad del nodo actual. Con la popularidad de los

teléfonos inteligentes, las redes móviles basadas en relaciones sociales reciben cada vez más atención.

Estos teléfonos están siempre equipados con algunas tecnologías avanzadas tales como sistemas de

posicionamiento global (GPS), Wi-Fi y sensores como acelerómetros. Estas tecnologías ayudan a la

gente a grabar su historial de ubicaciones como una secuencia de lugares con fecha y hora (llamados

trayectorias), lo que implica algunas relaciones entre las ubicaciones y los intereses de los usuarios (o

preferencias).

Geolife, una red social basada en la localización, incorpora los usuarios, los lugares y trayectorias GPS

generadas por el usuario para proporcionar diversos servicios como el intercambio de experiencias en

la vida, recomendaciones de viajes genéricos, amigo personal y recomendaciones de localizaciones. Un

gráfico jerárquico se construye mediante el uso de registros GPS, y luego la puntuación similar de la

gráfica jerárquica de dos usuarios se computa. Por otra parte, el nivel de interés de un usuario en algunas

regiones geográficas se predice mediante el uso de un filtro colaborativo y luego se lleva a cabo un

sistema de recomendación híbrido. Por último, las mejores regiones geográficas, que son más propensas

a atraer a los usuarios, son recomendadas y se muestra en un mapa web.

PeopleNet, una red social virtual inalámbrica, imita la forma en que las personas buscan información a

través de redes sociales. En la PeopleNet, los usuarios procesan o buscan alguna información mediante

la introducción de una consulta en sus dispositivos móviles, y luego la consulta es entregada a través de

una infraestructura (por ejemplo, celular) para unos pocos usuarios en una región específica (llamada

bazar). Dentro de cada bazar, la consulta se propaga aún más entre los nodos vecinos a través de una

conexión peer-to-peer hasta que encuentra una coincidencia de consultas. Cuando una consulta

encuentra coincidencia, el usuario que envió la consulta es informado automáticamente a través de

correo electrónico o mensaje de texto. La PeopleNet es una arquitectura simple, escalable y de bajo

coste para una eficiente búsqueda de información de una manera distribuida.

4.3 Nodos

En una red DTN, un nodo es una entidad con un agente en el protocolo bundle superpuesto sobre la capa inferior

de los protocolos de comunicación [5]. En cualquier momento, un nodo dado puede actuar como una fuente,

destino o transporte de paquetes:

• Origen o destino: un nodo envía o recibe paquetes hacia o desde otro nodo, pero no reenvía paquetes

hacia otros nodos. Si el nodo opera sobre enlaces de largo retardo, su protocolo de paquete requiere un

almacenamiento persistente en el que se guarden los datos en cola hasta que los enlaces salientes estén

disponibles. Opcionalmente soportan transmisión bajo custodia (“Custody Transfers”)

• Elemento de reenvío: Un nodo DTN puede reenviar paquetes entre dos o más nodos actuando como

una de estas dos situaciones:

➢ Router: El nodo reenvía paquetes entre dos o más nodos, cada uno de los cuales implementan

los mismos protocolos de capa inferior como el nodo de transmisión. Si un nodo de reenvío

opera sobre enlaces de largo retardo, su protocolo de paquetes requiere almacenamiento

persistente en el que se guarden los datos hasta que los enlaces salientes estén disponibles.

Opcionalmente soportan transmisión bajo custodia (“Custody Transfers”)

➢ Gateway: El nodo reenvía paquetes entre dos o más nodos, cada uno de los cuales implementan

diferentes protocolos de capa inferior, mientras que el nodo de transmisión implementa todos

estos protocolos. El nodo debe tener un almacenamiento persistente. Opcionalmente soportan

transmisión bajo custodia (“Custody Transfers”) pero normalmente aconsejable.

Page 35: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

19

Figura 4-1. Nodos de las DTNs

4.4 Método de almacenamiento y reenvío

Cuando tenemos un enlace entre dos nodos que se comunican y están al mismo tiempo en movimiento, podemos

encontrarnos con el inconveniente de que la conexión entre ambos pueda verse obstruida, ocasionando que la

comunicación se inhabilite con el fin de ahorrar energía hasta que el enlace vuelva a estar disponible; esto

ocasiona que la conectividad sea intermitente. En Internet, la conectividad intermitente provoca la pérdida de

datos. Los paquetes que no pueden ser inmediatamente transmitidos son normalmente desechados y TCP debe

volver a retransmitirlos.

En las DTNs, por el contrario, se soporta la comunicación entre nodos con conexiones intermitentes, mediante

una técnica clave para estas redes como lo es la del almacenamiento y reenvío de datos [6], con la cual se hace

frente al problema de la intermitencia en la conectividad, los retardos variables y tasas de datos asimétricas

mediante el uso del método de conmutación de datos a través del almacenamiento y reenvío, tales como los

utilizados por el correo electrónico o el correo de voz.

Al contrario del modelo de Internet (en el cual lo routers utilizan chips de memoria para almacenar los paquetes

entrantes durante unos pocos milisegundos mientras esperan por su búsqueda del siguiente salto en la tabla de

enrutamiento y un puerto disponible del router de salida), en las DTNs para que el método de almacenamiento

de datos sea posible es necesario que los lugares de acopio de la información (como un disco duro) puedan

almacenar los mensajes de forma indefinida. Estos son llamados “almacenadores persistentes”.

Los routers que se usan en las DTNs necesitan un almacenamiento persistente para encolar sus datos, por las

siguientes razones:

• La vía de comunicación con el siguiente salto puede no estar disponible durante un largo periodo de

tiempo.

• Un nodo puede enviar o recibir datos mucho más rápidamente o de forma más fiable que el otro nodo.

• Un mensaje, una vez transmitido, puede que tenga que ser retransmitido si se produce un error en el

enlace de transmisión o si un nodo declina hacer el reenvío del mensaje.

Al trasladar todos los mensajes (o fragmentos de ellos) en una única transferencia, la técnica de conmutación de

mensajes proporciona a los nodos de la red un conocimiento inmediato del tamaño de los mensajes, y por tanto

los requisitos para el almacenamiento de la información y el ancho de banda de transmisión necesario. Dado que

la constante de este tipo de redes es la movilidad debido a que los nodos suelen estar en movimiento con

alimentación limitada, es fundamental que en su arquitectura se contemple el almacenamiento de datos ya que

de alguna manera los datos deben resguardarse.

Page 36: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

Figura 4-2. Esquema almacenamiento y reenvío de las DTNs

4.5 Tipos de contactos

En DTN se supone que no todos los nodos son alcanzables y pueden ser contactados en cualquier momento.

Esta característica contrasta fuertemente con el internet convencional, donde se considera que las entidades

comunicantes están siempre alcanzables. Un concepto importante que debe ser considerado en esta arquitectura

es el “contacto”. Un contacto corresponde a una ocasión favorable para que los nodos intercambien datos. La

posibilidad de fallos siempre existirá para cualquier tipo de contacto, pero dependiendo de éste los fallos pueden

ser más o menos frecuentes.

Los contactos entre nodos DTN serán oportunistas, programados, bajo demanda o persistentes; en dependencia

de la zona donde se utilice la tecnología.

• Contactos oportunistas: En una red con tolerancia a retardos, los nodos involucrados pueden necesitar

comunicarse durante contactos oportunistas, en el cual un emisor y un receptor hacen contacto en un

tiempo no programado. Personas que se desplazan, vehículos, aviones o satélites pueden entrar en

contacto e intercambiar información cuando están dentro de la línea de visión y lo suficientemente cerca

para comunicarse usando un dispositivo de comunicación. Todos nosotros utilizamos contactos

oportunistas para la comunicación: cuando nos ha tocado, por oportunidad, para contactar con ciertas

personas con las que deseamos hablar, comenzamos una conversación. Este mismo modelo se puede

aplicar a la comunicación electrónica. Sin embargo, estos contactos oportunistas permiten que dichos

nodos puedan intercambiar datos entre ellos, a cambio de un retraso adicional en la entrega de los

mensajes, ya que estos a menudo se almacenan en la red a la espera de una ruta disponible hacia el

destino.

• Contactos programados: En una DTN cuando tenemos un origen y un destino que aún no estando en

contacto directo siguen un patrón de movilidad (por ejemplo, un satélite alrededor de la tierra) podemos

en cierta forma planificar el envío y/o recepción de datos. Pero también pueden implicar el

almacenamiento de información hasta que pueda ser reenviada, o hasta que la aplicación receptora

pueda ponerse al día con la tasa de datos del remitente. Los contactos programados requieren tiempo de

sincronización de todo el DTN.

• Contactos bajo demanda. En los contactos bajo demanda se requiere que se inicie una petición de

contacto para comenzar a funcionar para luego pasar a comportarse como contactos persistentes.

Ejemplo de este tipo de contactos sería una conexión de acceso telefónico ya que primero se inicia una

petición de contacto que durara hasta que se termine la comunicación.

• Contactos persistentes. Este tipo de contactos son aquellos que están siempre disponibles para realizar

la transmisión de datos. Conexiones de este tipo sería una conexión de ADSL o cable modem.

Page 37: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

21

4.6 La capa Bundle

Como hemos visto, la arquitectura de las DTNs proporciona comunicaciones de extremo a extremo en entornos

donde las comunicaciones requieren un mayor esfuerzo debido a la conectividad intermitente, retardos variables,

y altas tasas de error; y en el que las capas que la conforman, se comunican entre sí mediante sesiones simples

en el cual el acuse de recibo dependerá de la clase de servicio seleccionada.

Para que esto sea posible, el grupo de Investigación DTN define una nueva capa, denominada “Bundle Layer”

que se encuentra entre la capa de aplicación y transporte, formando una red superpuesta encargada del

almacenamiento y reenvío de datos, a causa de las interrupciones constantes [7].

Figura 4-3. Arquitectura de las DTNs

Para proporcionar interoperabilidad entre distintas redes, se utiliza un esquema de nombres flexible (basado en

identificadores uniformes), capaz de encapsular diferentes esquemas de nombres y números. También cuenta

con un modelo de seguridad básica con el fin de proteger la infraestructura de un uso no autorizado. La

funcionalidad de la capa bundle no difiere mucho de la capa de red de la arquitectura de Internet. Mientras que

esta se centra en la conmutación de paquetes, la capa bundle se centra en el reenvío de mensajes. En la capa de

red del modelo actual de Internet, los paquetes se almacenan por un corto tiempo, en cambio, en la capa bundle

los mensajes se almacenan de forma persistente (en disco o memoria flash) listos para ser retransmitidos en caso

necesario.

Una muestra de un paquete bundle consta de tres partes:

• Datos fuente de la aplicación.

• Control de la información: Esto se proporciona por la propia aplicación ya que indica como manipular,

almacenar, reenviar y disponer de los datos.

• Encabezado Bundle: Insertado por la bundle layer de esta manera los datos pueden ser fragmentados y

posteriormente vueltos a ensamblar.

La nueva capa es capaz de fragmentar los mensajes, igual que como actúa IP. En este caso, será el mismo

protocolo en encargado de re-ensamblarlos cuando sea necesario.

En el modelo de Internet, el protocolo TCP proporciona fidelidad en la transmisión de los paquetes de extremo

a extremo mediante la retransmisión de cualquier segmento que no haya sido recibido en el destino; además de

esto las capas de red, enlace y física ofrecen otro tipo de integridad en los datos. En contraparte en el modelo de

las DTNs, la capa bundle se basa en los protocolos de capa inferior para dar fiabilidad en la comunicación. Para

garantizar que no se pierdan los mensajes ante interrupciones se utiliza la custodia de mensajes. Una vez que el

gateway se compromete a almacenar el mensaje no podrá eliminarlo hasta tanto no reciba del destino la

Page 38: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

confirmación de recepción del mensaje, o hasta que otro gateway intermedio acepte la custodia del mismo.

Los gateways eligen el camino hacia el destino tomando como criterio el tamaño del mensaje y la calidad de

servicio solicitada por la aplicación.

Figura 4-4. Interconexión de regiones con diferentes protocolos

4.7 Protocolos de encaminamiento en DTNs

El problema de enrutamiento en redes DTN es quizás uno de los de mayores temas de investigación, la razón

es, que no hay un método exacto o preferido para manejar los problemas de enrutamiento. Los protocolos de

enrutamiento que operan en las redes tradicionales realizan sus funciones bajo el supuesto de la existencia de

una conectividad permanente, un bajo retardo y una tasa de pérdida de paquetes muy baja. Por ello, los

protocolos de enrutamiento tradicionales no funcionan correctamente en las redes DTN debido a la inexistencia

de una ruta permanente de un extremo a otro, lo que genera que al no encontrar por donde encaminar los datos,

estos terminen siendo descartados. Esto conlleva el uso de nuevos protocolos de enrutamiento [8] y un sistema

de arquitectura propia desarrollada para las DTNs.

Algunos de los protocolos de enrutamiento en las redes DTN se pueden clasificar como:

• Encaminamiento determinista.

• Encaminamiento estocástico.

4.7.1 Encaminamiento determinista

La suposición básica es que el movimiento futuro de los nodos y sus conexiones con otros nodos son conocidos

o totalmente predecibles. Las técnicas utilizadas en este tipo de enrutamiento se basan en la formulación de

modelos para los gráficos en función del tiempo y la búsqueda de un camino más corto en el espacio-tiempo.

Dentro de la topología determinista, nos encontramos con 3 enfoques diferentes:

4.7.1.1 Espacio - Tiempo

Los algoritmos de enrutamiento que se construyen en el gráfico de espacio-tiempo se desarrollan utilizando

programación dinámica y algoritmos para hallar la ruta más corta además de buscar la mejor ruta para los

mensajes de cara al futuro.

Page 39: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

23

4.7.1.2 Ruta más corta

Estos algoritmos minimizan el coste o distancia de la ruta que une dos nodos cualesquiera. Por ejemplo, si la

métrica utilizada es el número medio de saltos, el algoritmo de camino más corto será el que minimice este

número de saltos entre los nodos que pretendemos conectar.

4.7.1.3 Tree-Based Approach

Se basa en la selección de la ruta para la realización de la entrega del mensaje, en función del conocimiento

disponible sobre el movimiento de los nodos. En este enfoque, se puede enviar mensajes a destinos que se

encuentran a varios saltos de distancia. Sin embargo, si los parámetros de reenvío son demasiado conservadores,

se harán tantas copias adicionales como sean necesarias para llegar al destino. Por el contrario, si son demasiado

agresivos, entonces el mensaje podría no propagarse hasta su destino.

4.7.2 Encaminamiento estocástico

La suposición de base es que el comportamiento de la red es al aleatorio ya que no sigue un patrón predefinido

o predecible, ya que estos protocolos dependen de decisiones con respecto a dónde y cuándo pueden reenviar

los mensajes, basados en datos históricos, patrones de movilidad, o cualquier otra información.

4.7.2.1 Epidemic

Este algoritmo corresponde a la mejor solución en cuanto a probabilidad de entrega de los mensajes a sus

respectivos destinos, sin embargo, es altamente costoso en términos de los recursos que consume [9]. En este

algoritmo se plantea distribuir mensajes de aplicación entre los nodos, llamados portadores, dentro de una

porción conectada de la red ad-hoc. De esta forma los mensajes se distribuyen rápidamente en segmentos de la

red, a partir de esto el enrutamiento epidémico aprovecha la movilidad de los nodos para transmitir el mensaje

a otra porción conectada de la red. A través de este modelo de propagación, el mensaje tiene una alta probabilidad

de eventualmente alcanzar su destino. Tal y como nos muestra la figura siguiente, un nodo S origina un mensaje

cuyo destino es el nodo D, entonces S transmite el mensaje a cualquier nodo con el cual llegue a estar dentro del

rango de transmisión. Desde este momento, los nodos A y B pasan de ser nodos receptores a portadores. Después

de un cierto tiempo, el portador A entra en rango de transmisión con nuevos nodos, por lo que lo convierte en

portador. Por su parte, el portador B encuentra al nodo C, al cual convierte en portador. Es importante notar que

estas operaciones continúan independientemente de si el mensaje ha llegado a su destino. Una de las ventajas de

este algoritmo es la nula información que se necesita acerca de la topología de la red, ya que a lo largo de toda

la ejecución del algoritmo ningún nodo necesita conocer la ubicación del destino, ni tampoco conoce forma

alguna de establecer una ruta para llegar a él. Epidemic aprovecha una variante de la teoría de algoritmos

epidémicos para el protocolo. Esta teoría afirma qué dado el intercambio aleatorio de datos entre nodos, todas

las actualizaciones serán vistas por todos los nodos destino en una cantidad de tiempo acotada. Cuando la red

llega a este estado, se dice que el sistema de réplicas o destinos ha alcanzado un estado consistente. Las metas

concretas de este algoritmo de enrutamiento son:

• Distribuir eficientemente los mensajes a través de redes ad-hoc parcialmente conectadas de una manera

probabilística.

• Minimizar la cantidad de recursos consumidos en la entrega de un mensaje cualquiera.

• Maximizar el porcentaje de mensajes que eventualmente son entregados a sus destinos.

Page 40: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

Figura 4-5. Esquema del modelo de enrutamiento Epidemic

4.7.2.2 Spray and Wait

El esquema de este protocolo de enrutamiento se enfoca en reducir significativamente la sobrecarga en

comparación con los algoritmos de inundación (Epidemic) [9]. Uno de los puntos fuertes de este algoritmo de

enrutamiento, es el hecho de que no necesita información alguna del estado de la red, ni siquiera la información

de los contactos que han ocurrido entre nodos. Este protocolo en particular es bastante simple, sin embargo,

eficiente. Consta únicamente de dos fases:

• Fase de rociar. Por cada mensaje originándose en un nodo, L copias son inicialmente difundidas, por el

nodo origen y posiblemente otros nodos, hacia L nodos intermedios diferentes.

• Fase de esperar. Si el nodo de destino no ha sido encontrado en la fase de rociar, cada uno de los L

nodos que mantienen una copia del mensaje, realizarán una transmisión directa, es decir, sólo

transmitirán el mensaje si se encuentran con el nodo destino.

"Spray and Wait" comienza diseminando el paquete de manera similar al enrutamiento epidemic, pero cuando

ha alcanzado una cantidad de copias, que garantice que al menos una de ellas llegará al destino en un tiempo

corto, se detiene la diseminación y se deja que cada nodo que porta una copia del paquete realice la transmisión

directa al nodo destino. Existe un parámetro L que indica el número de copias que se diseminarán en la red. El

protocolo admite diferentes maneras de calcular este parámetro, entre ellas propone una versión "binaria", en la

que cada nodo al momento de encontrarse con otro nodo, le entrega la mitad de las L copias que posee de un

paquete específico y así de manera sucesiva hasta llegar al punto en que sólo posea una copia, caso en el cual

pasará al modo de transmisión directa. Otras técnicas consisten en aproximar el número de nodos y el tamaño la

red, y calcular en base a estos valores el parámetro L.

Page 41: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

25

4.7.2.3 PROPHET

PROPHET utiliza la aleatoriedad de contactos para replicar paquetes sólo si hay una posibilidad de entregarlos

[9]. El protocolo de enrutamiento PROPHET se dirige principalmente a situaciones en las que al menos alguno

de los nodos sea móvil. Básicamente cuando el nodo portador del mensaje tiene contacto con otro, se realiza la

elección del siguiente nodo en la ruta de un mensaje. En el momento del contacto, el nodo portador puede decidir

mediante la probabilidad de que el nuevo nodo elegido sea capaz de llevar el mensaje hasta su destino o un

nuevo nodo contactado sea capaz.

4.7.2.4 MaxProp

Cada nodo tiene una tabla de enrutamiento que predice la probabilidad para llegar a otro nodo en el futuro a

través de sus vecinos actuales [9]. Las tablas de enrutamiento se actualizan sobre la base de la información

obtenida por los vecinos y los mensajes están ordenados y enviados en función de su coste para llegar a su

destino. La idea es que cada nodo mantiene un vector que indica la probabilidad de entrega. Cuando dos nodos

se reúnen, intercambian estos vectores, por lo que cada nodo puede calcular el camino más corto hacia el destino.

Page 42: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

5 SIMULADOR “DPYTHON”

n simulador de eventos discretos es una técnica informática para modelar sistemas dinámicos que nos

permite controlar el tiempo para avanzar a intervalos variables, para poder planificar eventos futuros en

tiempos conocidos. Es un programa que se ejecuta en un ordenador y que nos permite emular el

comportamiento de un sistema. Es decir, es un modelo que al ser ejecutado con los mismos estímulos que el

sistema real, nos da una respuesta “suficientemente” próxima a la realidad del sistema que estamos simulando.

Con estos simuladores logramos la estimación del valor de un conjunto de parámetros de mérito que se eligen

para evaluar las prestaciones de un sistema. Cuando empleamos un simulador de eventos discretos, es deseable

que cumpla con ciertos requisitos y campos de aplicación como, por ejemplo:

• Aprendizaje sencillo: es deseable que la simulación no sea costosa, y que el tiempo necesario para

realizar una primera simulación sea lo más corto posible.

• Facilidad de uso: el simulador debe ser fácil de usar para todos los niveles y requerir un esfuerzo bajo.

• Fácil instalación: el simulador se realizará para que no sea necesario instalar ningún software y necesitar

el menor número de dependencias externas que complique su uso.

• Modular: el objetivo es que el simulador pueda ser construido modularmente, de tal manera que se

puedan reutilizar bloques de código de forma sencilla.

• Lenguaje de programación sencillo y actual: la elección de un lenguaje de programación como Python,

nos permite la utilización de un lenguaje sencillo y conocido por la comunidad de programadores.

Gracias a Python también podremos generar de forma sencilla muestras de variables aleatorias que

sigan ciertas distribuciones estadísticas [10].

5.1 Herramientas utilizadas

Para el desarrollo de mi simulador he utilizado el lenguaje de programación Python [11], el cual fue creado por

Guido van Rossum a finales de los ochenta, y que gracias a sus características ha llegado a ser un lenguaje muy

conocido en la actualidad.

Se trata de un lenguaje de programación de propósito general, cuya expansión y popularidad es relativamente

reciente. Utilizar Python en la actualidad es una apuesta por la simplicidad, versatilidad y rapidez de desarrollo.

Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar

cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un

lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que

ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad.

En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:

• La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que

ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.

• La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a

5 líneas de código menos que su equivalente en Java o C.

• La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga

y otros.

U

Page 43: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

27

Figura 5-1. Logo Python

Presenta una serie de características que lo hacen diferente al resto de lenguajes de programación, como son:

• Propósito general. Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente

para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas.

• Multiplataforma. Hay versiones disponibles de Python en muchos sistemas informáticos distintos.

Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre

y cuando exista un intérprete programado para él.

• Interpretado. Esto quiere decir que no se debe compilar el código antes de su ejecución. En realidad, sí

que se realiza una compilación, pero esta se realiza de manera transparente para el programador. En

ciertos casos, cuando se ejecuta por primera vez un código, se producen unos bytecodes que se guardan

en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que

se ejecuta el mismo código.

• Interactivo. Python dispone de un intérprete por línea de comandos en el que se pueden introducir

sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender

mejor el lenguaje y probar los resultados de la ejecución de porciones de código rápidamente.

• Orientado a Objetos. Si hablamos de programación orientada a objetos, podemos decir que nos

encontramos ante un paradigma que propone modelar todo en función a clases y a objetos, el cual nos

ofrece un uso de conceptos de cohesión, polimorfismo, herencia, abstracción y mucho más. Este

paradigma de programación se utiliza para tratar el rápido aumento en el tamaño y la complejidad de

los sistemas de software, y facilitar la modificación de esos grandes y complicados sistemas a lo largo

del tiempo.

• Funciones y librerías. Dispone de muchas funciones incorporadas en el propio lenguaje, para el

tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar

en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o

cosas tan interesantes como crear archivos comprimidos en .zip.

• Sintaxis clara. Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación

identada (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar porciones de

código, se utilizan elementos como las llaves o las palabras clave begin y end. Para separar las porciones

de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una

función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que

los programas de cualquier persona tengan un aspecto muy similar.

La versión de Python utilizada para el proyecto es la 3.6.0, ya que esta es la versión más reciente del lenguaje

Python, y contiene muchas nuevas características y optimizaciones.

A su vez, para la continua simulación a lo largo del proyecto, he utlizado el paquete Anaconda para Windows

en su versión 4.4.0. En dicho paquete nos encontramos un entorno interactivo de Python, llamado Spyder, que

proporciona características similares a Matlab en un software simple y ligero. También proporciona widgets

puros de Python listos para usar en su aplicación PyQt5 o PyQt4: editor de código fuente con resaltado de sintaxis

Page 44: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

y funciones de introspección / análisis de código, editor de matriz NumPy, editor de diccionario, consola Python,

etc.

Figura 5-2. Logo Spyder

Page 45: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

29

5.2 Diagrama de bloques

Los eventos tienen marcado su tiempo de generación, por lo que no puede coincidir el tiempo de generación con

el de ejecución. La ejecución de un evento puede generar otros eventos futuros. Un sistema simulado, se

caracteriza por entidades que en su conjunto conforman el sistema.

A continuación, mostramos un diagrama básico del funcionamiento del simulador al que nos referimos.

Figura 5-3. Diagrama de bloques

Ni que decir tiene, que una vez alcanzada nuestra lista de resultados, podemos obtener cualquier tipo de

estadística o métrica, en función de aquello que deseemos conocer. De la misma manera que pueden realizarse

multitud de simulaciones modificando los parámetros de entrada, con el objetivo de conocer cuál seria el

funcionamiento más óptimo, probabilidad de llegada de los mensajes, etc…

Page 46: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

5.3 Desarrallo del simulador

Para la descripción del simulador, iremos describiendo cada una de las partes que constituye el diagrama de

bloques.

Inicialmente partimos de un archivo de trazas, del cuál únicamente leeremos la información que posteriormente

nos será de utlidad. Por ello, de las seis columnas que aparecen en nuestro archivo, solamente tendremos en

cuenta las cuatro primeras que nos indican: Nodo origen, nodo destino, tiempo inicial del enlace entre ambos

nodos y tiempo final de dicho enlace, respectivamente

Figura 5-4. Archivo de trazas

Para leer dicho archivo y almacenar aquellos campos que son de nuestro interés, en el bloque principal del

simulador, lo primero que haremos será abrir nuestro archivo de trazas e ir leyendo cada línea del archivo. A

medida que leemos cada línea, cada campo es almacenado en su lista correspondiente. Estas listas nos serás de

gran ayuda para ir alcanzando los objetivos durante el desarrollo del simulador. Al mismo tiempo, cada una de

las líneas, las cuales representan un enlace temporal entre nodos, son etiquetadas como eventos de ‘Encuentro’

(‘E’) que iremos añadiendo a nuevo archivo de texto, que será nuestra lista de eventos, y que ha sido previamente

generado. Esto conformaría nuestro módulo ‘Generador de eventos de encuentro’ del diagrama de bloques

mostrado anteriormente.

El siguiente paso, será generar los eventos de ‘Generación’ (‘G’). Dichos eventos nos indicarán cuándo se genera

un mensaje y cuáles son los nodos protagonistas de dicho mensaje, es decir, el nodo origen y el nodo destino.

Estos mensajes serán generados por una serie de nodos, cuyo número ha sido elegido por el usuario del simulador

de manera aleatoria. Del mismo modo, se introduce el nodo que deseamos que sea el nodo destino de dichos

mensajes. Para terminar de generar los eventos de este tipo, únicamente nos queda por generar los tiempos en

los que se generan dichos mensajes. Estos tiempos también son generados de manera aleatoria, pero siempre

con la condición de que nunca sobrepasen el tiempo total de nuestra simulación.

Una vez llegado a este punto, ya tendremos totalmente completada nuestra lista de eventos, la cuál por último

ordenaremos en función del tiempo inicial de contacto entre nodos.

Page 47: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

31

Figura 5-5. Eventos ‘E’ y ‘G’

Como muestra nuestro diagrama de bloques, a continuación, nuestro objetivo será generar los eventos de

‘Transmisión’ (‘T’) y ‘Recepción’ (‘R’). Como puede suponerse, para conseguir esto, nos basaremos en nuestra

lista de eventos. Los eventos de transmisión se producirán cuando entren en contacto dos nodos y alguno de

ellos o ambos contengan información para transmitir. Cabe señalar que cuando los dos nodos tienen

almacenados paquetes de información se la intercambiarán totalmente, eliminando aquellos paquetes

redundantes, es decir, se descartarán aquellos mensajes que ya han sido recibidos. Cuando se llega a un encuentro

en el cual uno de los nodos protagonistas es el receptor de dicho mensaje, este encuentro será representando

como un evento de recepción.

Una vez recorrida nuestra lista de eventos en su totalidad, tendremos un nuevo archivo de texto que contendrá

aquellos eventos previamente comentados.

Figura 5-6. Eventos ‘T’ y ‘R’

Page 48: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

5.4 Resultados del simulador

Una vez generada nuestra lista con los resultados de la simulación, a partir de ella podemos estudiar una serie

de características y métricas que nos darán a conocer el rendimiento de nuestro simulador. Como se ha

comentado al inicio del apartado anterior, los parámetros con los que el usuario juega pueden ser modificados

en función de cuál sea el objetivo a alcancar.

En nuestro caso, vamos a calcular tres funciones para una serie de simulaciones y así sacar una serie de

conclusiones. Dichas funciones son:

• Delay: (Tiempo de recepción del mensaje – tiempo de generación del mensaje) / número de mensajes

recibidos en el destino.

• Delivery: Número de mensajes recibidos en el destino / número de mensajes generados.

• Coste: Número total de mensajes intercambiados entre los nodos.

Estudiaremos estas funciones planteando diferentes situaciones. En concreto, elegiremos tres nodos destino

diferentes, en función de su protagonismo en el archivo de trazas, es decir, observando nuestro dato de partida

del simulador, podemos conocer la cantidad de contactos directos existentes por cada nodo.

Puede observarse con claridad que los nodos con mayor numero de contactos son los 22 primeros.

Figura 5-7. Diagrama contacto entre nodos

Como puede observarse en dicha gráfica, aparecen una serie de nodos con numerosos contactos y otros con

menos. En nuestro caso hemos elegido 3 nodos con diferente protagonismo en nuestro diagrama, que son: nodo

3 (6 contactos), nodo 13 (84 contactos), y nodo 12 (391). De esta manera, obtenemos una representación para

tres casos bien diferenciados.

Para cada una de las simulaciones, elegimos también un número diferente de nodos fuentes, en este caso: 10,

40, 70 y 120.

• Simulación para nodo destino 3:

Page 49: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

33

Figura 5-8. Medidas para nodo destino 3

Como se puede observar, en la primera de las cuatro simulaciones, donde elegimos 10 nodos fuentes de manera

aleatoria, nuestro simulador nos devuelve un mensaje de error, advirtiéndonos que no ha podido entregarse el

mensaje al nodo destino. Esto se debe a que hemos elegido un nodo que presenta pocos enlaces en el archivo de

trazas y los nodos fuentes no han llegado a comunicarse con el. Este problema se evitaría observando nuestro

archivo de trazas y eligiendo manualmente uno o varios nodos fuentes que nos garantice la entrega del mensaje.

Estas mediciones las recogemos en una tabla para conocer el valor exacto de cada una de ellas.

Tabla 5–1 Medidas para nodo destino 3

Page 50: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

• Simulación para nodo destino 13:

Figura 5-9. Medidas para nodo destino 13

En este caso, al haber elegido un nodo que previamente conocíamos que tenia bastantes contactos a lo largo de

la simulación, hemos evitado que nuestro simulador nos devuelva un mensaje de error como en el caso anterior.

Tabla 5–2 Medidas para nodo destino 13

Page 51: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

35

• Simulación para nodo destino 12:

Figura 5-10. Medidas para nodo destino 12

Por último, hemos escogido el nodo con mayor número de contactos. Esto nos garantiza casi con total seguridad

que el mensaje será recibido por el nodo destino a pesar de que el número de nodos fuentes sea muy escaso.

Como puede observarse, para un número elevado de nodos fuentes, el Delay se ve reducido significativamente

con respecto a los casos previos.

Tabla 5–3 Medidas para nodo destino 12

Estas simulaciones no dependen únicamente de la cantidad de nodos fuente elegidos ni del nodo recptor del

mensaje, sino que también depende de qué nodos son los elegidos como nodos fuente. Como podemos

comprobar en la siguiente figura, a partir del nodo 30 aproxidamente, exceptuando algunos nodos aislados,

Page 52: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

presentan poca cantidad de contactos durante la simulación, esto quiere decir, que si nosotros elegimos como

nodos fuentes aquellos que están comprendidos entre el 1 y el 22, nuestra propabilidad de éxito esta

prácticamente garantizada. Sin embargo, si elegimos aquellos que únicamente tienen un contacto durante todo

el tiempo de simulación, difícilmente el mensaje llegue a ser entregado.

Figura 5-11. Número de contactos de todos los nodos

Page 53: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

37

6 CONCLUSIÓN Y FUTUROS TRABAJOS

Como fase final a nuestro proyecto, una vez obtenidos los resultados, podemos sacar una serie de conclusiones

evidentes. Como el objetivo de nuestro simulador es representar un sistema de comunicación que nos garantice

la entrega de mensajes desde uno o varios nodos a su nodo destinatario, debemos observar primeramente el

número total de nodos y enlaces de contacto que presentan entre ellos. De esta manera conocemos la magnitud

y complejidad en la que nos movemos. Aunque en nuestro proyecto hemos elegido de manera arbitraria cuales

serán los nodos que inicialmente contendrán información, estos también podrían elegirse de manera exacta, lo

que nos permitirá garantizar con exactitud la entrega de mensajes.

Éste podría suponer uno de los futuros trabajos y avances del simulador, y a partir de ello originar nuevas

gráficas, estadísticas, probabilidades y medidas en función de nuestros nodos fuentes elegidos.

Aunque se haya trabajado durante todo el desarrollo del simulador con el mismo archivo de trazas, éste se ha

diseñado para leer cualquier otro archivo, independientemente de su extensión, cantidad de nodos y enlaces

utilizados, etc…

Page 54: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

7 BIBLIOGRAFÍA

[1] [Internet], n.d., Modelo TCP/I. [Consultado el 10 de agosto 2017]. Disponible en

http://docente.ucol.mx/al980347/public_html/modelo_tcp.htm

[2] KUROSE, James F. Computer networking: A top-down approach featuring the internet, 3ªEd. Pearson

Education India, 2005.

[2] Jj Velasco. Hipertextual: Historia de la Tecnología: Red Aloha. [Consultado el 2 de septiembre 2017].

Disponible en https://hipertextual.com/2012/04/historia-de-la-tecnologia-red-aloha

[3] PUENTES, Cristina. Avances tecnológicos en el área de Informática [en línea]. Blog Las redes

inalámbricas. 17 de mayo de 2012. [consultado el 25 de agosto de 2017]. Disponible en:

http://lasinformaticas2012.blogspot.com.es/

[4] O. Mukhtar and J. Ott, “Backup and bypass: Introducing DTN-based ad-hoc networking to mobile

phones,” in Proceedings of the 2nd International Workshop on Multi-hop Ad hoc Networks: From Theory

to Reality (REALMAN ’06). New York, NY, USA: ACM, 2006, pp. 107–109

[5] WARTHMAN, Forrest. Delay-tolerant networks (DTNs): A tutorial. http://www. ipnsig.

org/reports/DTN_Tutorial11. pdf, 2003.

[6] JAIN, S., FALL, K., and PATRA, R., ―Routing in a Delay Tolerant Network, SIGCOMM Comput.

Commun. Rev. Vol.34, Iss.4, p145-158, August 2004.

[7] V. Cerf, S. Burleigh, A. Hooke, L. Torgerson, R. Durst, K. Scott, K. Fall, and H. Weiss. Delay-Tolerant

Networking Architecture. Number RFC 4838. IETF, April 2007.

[8] T. Spyropoulos, K. Psounis and C. S. Raghavendra. Spray and Wait: An Efficient Routing Scheme for

Intermittently Connected Mobile Networks. SIGCOMM 2005.

[9] A. Lindgren, A. Doria, and O. Scheln. Probabilistic routing in intermittent ly connected networks.

MobiHoc 2003.

[10] LUTZ, Mark. Python Pocket Reference: Python In Your Pocket. O'Reilly Media, Inc, 2014. ISBN 978-1-

449-35701-6.

[11] HETLAND, Magnus Lie. Beginning Python: from novice to professional. Apress, 2006. ISBN 978-1-

4302-0634-7.

Page 55: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

39

ANEXO A: CÓDIGO BLOQUE PRINCIPAL

“”” BLOQUE PRINCIPAL “””

import random

from ClaseEvento import Evento

from Crearfichero import crearfichero

from Crearfichero import escribirfichero

from Listanodos import listanodos

from Agregarnodosfuente import agregarnodosfuente

from EventosTyR import crearfichero2

from EventosTyR import escribir2

from Eliminarrepetidos import eliminarrepetidos

from Compartirmensaje import compartirmensajes

from Transmitirmensaje import transmitirmensaje

import matplotlib.pyplot as plt

import numpy as np

“”” INICIAZALIZAR LAS LISTAS “””

lista_nodos_fuentes1 = list()

lista_nodos_fuentes2 = list()

lista_nodos_destino1 = list()

lista_nodos_destino2 = list()

lista_nodos_fuentes = list()

lista_nodos = list()

lista_tiempos_iniciales = list()

lista_tiempos_finales = list()

lista_tiempos_generacion = list()

lista_tiempos_recepcion = list()

lista_eventos = list()

lista_inter = list()

“”” LECTURA DEL FICHERO DE TRAZAS “””

fichero = open ('upb2011.dat', 'r')

campos = []

for linea in fichero:

campos = linea.split('\t')

fuente = int(campos[0])

lista_nodos_fuentes1.append(fuente)

Page 56: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

destino = int(campos[1])

lista_nodos_destino1.append(destino)

tiempo_ini = int(campos[2])

lista_tiempos_iniciales.append(tiempo_ini)

tiempo_fin = int(campos[3])

lista_tiempos_finales.append(tiempo_fin)

duracion = int(campos[3]) - int(campos[2])

evE = Evento('E', fuente, destino, tiempo_ini, tiempo_fin)

lista_eventos.append(evE)

fichero.close()

“”” ELIMINO ELEMENTOS REPETIDOS “””

eliminarrepetidos(lista_nodos_fuentes1, lista_nodos_fuentes2)

eliminarrepetidos(lista_nodos_destino1, lista_nodos_destino2)

“”” LISTA DE NODOS TOTAL “””

N_nodos = max(max(lista_nodos_fuentes2), max(lista_nodos_destino2))

listanodos(N_nodos, lista_nodos)

“”” LISTA DE NODOS FUENTES “””

N_nodos_fuentes = int(input("Introduce numero de nodos fuente: "))

agregarnodosfuente(N_nodos_fuentes, N_nodos, lista_nodos_fuentes)

“”” LISTA DE TIEMPOS DE GENERACION “””

tiempo_simulacion = max(lista_tiempos_finales)

def agregartiemposgeneracion():

for x in lista_nodos_fuentes:

for i in range(len(lista_nodos_fuentes1)):

if (x == lista_nodos_fuentes1[i]) and (x not in lista_inter):

lista_inter.append(x)

ind = lista_nodos_fuentes1.index(x)

lista_tiempos_generacion.append(random.randint(0,lista_tiempos_iniciales[

ind]))

for i in range(len(lista_nodos_destino1)):

if (x == lista_nodos_destino1[i]) and (x not in lista_inter):

lista_inter.append(x)

ind = lista_nodos_destino1.index(x)

Page 57: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

41

lista_tiempos_generacion.append(random.randint(0,lista_tiempos_iniciales[

ind]))

agregartiemposgeneracion()

“”” RELLENO LISTA EVENTOS TIPO 'G' “””

while True:

nodo_destino = int(input("Introduce un nodo destino : "))

while(nodo_destino in lista_nodos_fuentes):

nodo_destino = int(input("Introduce un nodo destino : "))

break

def agregareventog():

for i in range(len(lista_nodos_fuentes)):

nodo_origen = lista_nodos_fuentes[i]

tiempo_generacion = lista_tiempos_generacion[i]

evG = Evento('G', nodo_origen, nodo_destino, tiempo_generacion,

tiempo_simulacion)

lista_eventos.append(evG)

agregareventog()

“”” ORDENAR LISTA EVENTOS POR TIEMPO INICIAL “””

lista_eventos.sort(key = lambda objeto: objeto.tiempo_ini)

“”” CREAR ARCHIVO EVENTOS ORDENADOS “””

crearfichero()

escribirfichero(lista_eventos)

“”” LEER LISTA DE EVENTOS “””

crearfichero2()

num_eventos = len(lista_eventos)

mensaje = nodo_destino

N_paquetes_generados = 0

N_paquetes_intercambiados = 0

for i in range(num_eventos):

num_nodo = lista_eventos[i].nodo_origen

num_nodo2 = lista_eventos[i].nodo_destino

tiempo_recepcion = lista_eventos[i].tiempo_ini

Page 58: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

""" SI EL EVENTO ES DE TIPO 'GENERACION', AÑADIMOS UN MENSAJE AL NODO

EN

CONCRETO """

if lista_eventos[i].tipo == 'G':

N_paquetes_generados += 1

lista_nodos[num_nodo-1].agregarmensajegenerado(num_nodo)

lista_nodos[num_nodo-1].agregarmensajerecibido(num_nodo)

else:

""" EN CASO CONTRARIO EL EVENTO SERA DE TIPO 'ENCUENTRO'.

COMPROBAMOS

SI EXISTE MENSAJE Y EN CASO AFIRMATIVO, EN QUE NODO O NODOS EXISTEN

DICHOS MENSAJES """

if lista_nodos[num_nodo-1].lista_mensajes_recibidos != []:

if lista_nodos[num_nodo2-1].lista_mensajes_recibidos != []:

if num_nodo == mensaje:

lista_tiempos_recepcion.append(tiempo_recepcion)

escribir2('R',str(num_nodo),str(num_nodo2),str(lis

ta_eventos[i].tiempo_ini),str(lista_eventos[i].tie

mpo_fin))

N_paquetes_intercambiados+=compartirmensajes(lista

_nodos[num_nodo2- 1].lista_mensajes_recibidos,

lista_nodos[num_nodo-1].lista_mensajes_recibidos)

elif num_nodo2 == mensaje:

lista_tiempos_recepcion.append(tiempo_recepcion)

escribir2('R',str(num_nodo2),str(num_nodo),str(lis

ta_eventos[i].tiempo_ini),

str(lista_eventos[i].tiempo_fin))

N_paquetes_intercambiados+=compartirmensajes(lista

_nodos[num_nodo- 1].lista_mensajes_recibidos,

lista_nodos[num_nodo2-1].lista_mensajes_recibidos

else:

escribir2('T',str(num_nodo),str(num_nodo2),str(lis

ta_eventos[i].tiempo_ini),

str(lista_eventos[i].tiempo_fin))

escribir2('T',str(num_nodo2),str(num_nodo)str(list

a_eventos[i].tiempo_ini),

str(lista_eventos[i].tiempo_fin))

N_paquetes_intercambiados+=compartirmensajes(lista

Page 59: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

43

_nodos[num_nodo-1].lista_mensajes_recibidos,

lista_nodos[num_nodo2-1].lista_mensajes_recibidos)

else:

if num_nodo2 == mensaje:

lista_tiempos_recepcion.append(tiempo_recepcion)

escribir2('R',str(num_nodo2),str(num_nodo),str(lis

ta_eventos[i].tiempo_ini),

str(lista_eventos[i].tiempo_fin))

N_paquetes_intercambiados+=transmitirmensaje(lista

_nodos[num_nodo-1].lista_mensajes_recibidos,

lista_nodos[num_nodo2-1].lista_mensajes_recibidos)

else:

escribir2('T',str(num_nodo),str(num_nodo2),str(lis

ta_eventos[i].tiempo_ini),

str(lista_eventos[i].tiempo_fin))

N_paquetes_intercambiados+=transmitirmensaje(lista

_nodos[num_nodo-1].lista_mensajes_recibidos,

lista_nodos[num_nodo2-1].lista_mensajes_recibidos)

elif lista_nodos[num_nodo2-1].lista_mensajes_recibidos != []:

if num_nodo == mensaje:

lista_tiempos_recepcion.append(tiempo_recepcion)

escribir2('R',str(num_nodo),str(num_nodo2),str(lista_eve

ntos[i].tiempo_ini), str(lista_eventos[i].tiempo_fin))

N_paquetes_intercambiados+=transmitirmensaje(lista_nodos

[num_nodo2-1].lista_mensajes_recibidos,

lista_nodos[num_nodo-1].lista_mensajes_recibidos)

else:

escribir2('T',str(num_nodo2),str(num_nodo),str(lista_eve

ntos[i].tiempo_ini), str(lista_eventos[i].tiempo_fin))

N_paquetes_intercambiados+=transmitirmensaje(lista_nodos

[num_nodo2-1].lista_mensajes_recibidos,

lista_nodos[num_nodo-1].lista_mensajes_recibidos)

Page 60: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

######################### OBETENER MÉTRICA #########################

lista_tiempos_generacion.sort()

N_paquetes_recibidos = len(lista_nodos[nodo_destino-

1].lista_mensajes_recibidos)

Delivery = N_paquetes_recibidos / N_paquetes_generados

if lista_tiempos_recepcion == []:

print("El nodo destino %d no ha recibido el mensaje" % (mensaje))

Delay = (lista_tiempos_recepcion[0] - lista_tiempos_generacion[0])/

(N_paquetes_recibidos)

Coste = N_paquetes_intercambiados

X = N_paquetes_generados

D = Delivery

E = Delay

C = Coste

resultados = open('Resultados.txt', 'w')

resultados.write(str(D))

resultados.write('\t')

resultados.write(str(E))

resultados.write('\t')

resultados.write(str(C))

resultados.close()

Page 61: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

45

ANEXO B: CÓDIGO DE LAS FUNCIONES

“”” FUNCION PARA CONTACTOS NODOS “””

lista_contactos_nodos = list()

for i in lista_nodos_fuentes2:

x = lista_nodos_fuentes1.count(i)

y = lista_nodos_destino1.count(i)

z = x + y

lista_contactos_nodos.append(z)

lista_contactos_nodos2 = list()

i = 1

while(i<=max(lista_nodos_destino2)):

t = lista_nodos_fuentes1.count(i)

r = lista_nodos_destino1.count(i)

q = t + r

lista_contactos_nodos2.append(q)

i += 1

“”” DIAGRAMA BARRAS DE CONTACTOS “””

x = lista_nodos_fuentes2

y = lista_contactos_nodos

plt.bar(x, y)

plt.title('Contactos entre nodos')

plt.savefig("Contactos entre nodos.jpg")

lista = list()

for i in range(1,678):

lista.append(i)

t = lista

r = lista_contactos_nodos2

plt.bar(t, r)

plt.title('Contactos entre nodos')

plt.savefig("Contactos entre nodos2.jpg")

“”” FUNCION ELIMINAR ELEMENTOS REPETIDOS “””

def eliminarrepetidos(lista1, lista2):

for i in lista1:

if i not in lista2:

lista2.append(i)

Page 62: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

“”” FUNCION CREAR LISTA DE NODOS “””

from ClaseNodo import Nodo

def listanodos(N_nodos, lista_nodos):

for i in range(N_nodos):

lista_nodos.append(Nodo(i))

“”” FUNCION PARA AGREGAR NODOS FUENTES “””

import random

def agregarnodosfuente(N_nodos_fuentes, N_nodos, lista_nodos_fuentes):

z = 0

while (z < N_nodos_fuentes):

x = random.randint(1, N_nodos)

if x not in lista_nodos_fuentes:

lista_nodos_fuentes.append(x)

z += 1

“”” FUNCION PARA CREAR Y ESCRIBIR EN FICHERO “””

def crearfichero():

archivo = open('ListaEventos.txt', 'w')

archivo.close()

def escribirfichero(lista_eventos):

archivo = open('ListaEventos.txt', 'a')

num_eventos = len(lista_eventos)

for i in range(num_eventos):

archivo.write(lista_eventos[i].tipo)

archivo.write('\t')

archivo.write(str(lista_eventos[i].nodo_origen))

archivo.write('\t')

archivo.write(str(lista_eventos[i].nodo_destino))

archivo.write('\t')

archivo.write(str(lista_eventos[i].tiempo_ini))

archivo.write('\t')

archivo.write(str(lista_eventos[i].tiempo_fin))

archivo.write('\n')

Page 63: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

47

“”” FUNCION PARA TRANSMITIR MENSAJES ENTR NODOS “””

def transmitirmensaje(lista1, lista2):

suma = 0

for i in lista1:

lista2.append(i)

suma += 1

return suma

“”” FUNCION PARA COMPARTIR MENSAJES ENTRE NODOS “””

def compartirmensajes(lista1, lista2):

suma = 0

for i in lista1:

if i not in lista2:

lista2.append(i)

suma +=1

for i in lista2:

if i not in lista1:

lista1.append(i)

suma +=1

return suma

“”” FUNCION PARA ESCRIBIR EVENTOS ‘T’ Y ‘R’ “””

def crearfichero2():

archivo = open('EventosTR.txt', 'w')

archivo.close()

def escribir2(tipo, nodo1, nodo2, tiempo1, tiempo2):

archivo = open('EventosTR.txt', 'a')

archivo.write(tipo)

archivo.write('\t')

archivo.write(nodo1)

archivo.write('\t')

archivo.write(nodo2)

archivo.write('\t')

archivo.write(tiempo1)

archivo.write('\t')

archivo.write(tiempo2)

archivo.write('\n')

return archivo

Page 64: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

“”” FUNCION PARA REPRESENTAR GRÁFICAS “””

import matplotlib.pyplot as plt

X = [] #Numero de nodos fuentes por simulacion

D = [] #Delivery por simulacion

E = [] #Delay por simulacion

C = [] #Coste por simulacion

plt.figure(figsize= (10,10))

plt.subplot(222)

plt.bar(X, D, width = 15)

plt.xlabel("Paquetes generados")

plt.grid(True)

plt.title("Delivery")

plt.subplot(221)

plt.bar(X, E, width = 15)

plt.xlabel("Paquetes generados")

plt.grid(True)

plt.title("Delay")

plt.subplot(223)

plt.bar(X, C, width = 15)

plt.xlabel("Paquetes generados")

plt.grid(True)

plt.title("Coste")

plt.savefig("Resultados.jpg")

Page 65: Proyecto Fin de Carrera - Universidad de Sevillabibing.us.es/proyectos/abreproy/12402/fichero/PFC+Fran.pdf · iii Proyecto Fin de Carrera ... Clasificación redes inalámbricas 9

49

ANEXO C: CÓDIGO DE LAS CLASES

“”” CLASE EVENTO “””

class Evento (object):

def __init__(self, tipo, nodo_origen, nodo_destino, tiempo_ini,

tiempo_fin):

self.tipo = tipo

self.nodo_origen = nodo_origen

self.nodo_destino = nodo_destino

self.tiempo_ini = tiempo_ini

self.tiempo_fin = tiempo_fin

“”” CLASE NODO “””

class Nodo (object):

def __init__(self, id):

self.id = id

self.lista_mensajes_generados = list()

self.lista_mensajes_recibidos = list()

def agregarmensajegenerado(self, mensaje):

self.lista_mensajes_generados.append(mensaje)

def agregarmensajerecibido(self, mensaje):

self.lista_mensajes_recibidos.append(mensaje)