Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se presenta un breve resumen del trabajo realizado, los conceptos clave serán
profundizados más adelante en el presente informe y se hará énfasis en las car-
acterı́sticas que consideramos clave durante el desarrollo de la actividad.
Se realizó una Red AdHoc móvil o MANET por sus siglas en inglés donde se
puede generar distintos tipos de tráfico con los protocolos DSDV, AODV y
OLSR esto a través de una región con cincuenta dispositivos o nodos UDP que
se desplazan siguiendo un modelo aleatorio.
2 Conceptos básicos
2.1 MANET
También llamada red AdHoc móvil, es una red de dispositivos conectado de
forma inalámbrica y que tiene la capacidad de auto configuración, esto quiere
decir que cada dispositivo tiene la capacidad de establecer una conexión con
cualquier otro dispositivo auto configurable y posteriormente manejar un pro-
ceso de comunicación o enrutamiento de paquetes. Adicionalmente cada uno de
estos dispositivos tiene la capacidad de desplazarse dentro de un área definida
por el alcance del dispositivo de red.
1
2.2 Protocolo UDP
User Datagram Protocol, es un protocolo que permite el envı́o de datagramas
a través de la red sin que se haya establecido previamente una conexión, ya
que el propio datagrama incorpora suficiente información de direccionamiento
en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los
paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado cor-
rectamente, ya que no hay confirmación de entrega o recepción.
Por la naturaleza cambiante de la red MANET se eligió trabajar con el proto-
colo UDP ya que de esta forma se evita la congestión de la red con mensajes
de verificación y confirmación, lo cual trabajando con los protocolos de tipo
proactive y reactive permite un desempeño confiable de la red.
La imagen anterior muestra la forma en que interactúan los agente con el am-
biente en el que se encuentran. Aquı́ tenemos que a través se sensores el agente
recibe las percepciones del ambiente, Luego de que cada agente ha realizado el
correcto procesamiento del conjunto de percepciones que obtuvo, por medio de
actuadores ejecuta acciones dentro de su ambiente, esto dependiendo del obje-
tivo propio del agente.
Cada uno de los elementos mencionados se describirá a continuación.
2.3.1 Agente
Los agentes inteligentes se definen como unidades autónomas que perciben y
actúan en un ambiente formal, dirigiendo sus acciones para alcanzar un objetivo.
Los agentes mapea de un historial de percepciones a un conjunto de acciones
f : P∗ → A
2
2.3.2 Ambiente
EL ambiente es el lugar donde el agente vive y opera, este proporciona las
percepciones que el agente recibe a través de los sensores y es el lugar donde el
agente realiza sus acciones.
2.3.3 Percepciones
Es toda la información proveniente del ambiente que un agente puede capturar
y procesar
2.3.4 Actuadores
Son dispositivos capaces de realizar acciones que afectan el estado del agente o
el ambiente.
2.3.5 Acciones
Son todas las posibles actividades que un agente puede realizar que genera un
cambio sobre el agente o el ambiente en el que se encuentra.
3 Abstracciones de NS3
3.1 Nodo
Es una computadora o host a la cual se le pueden añadir ciertas funcionalidades,
como el stack de protocolos, aplicaciones o interfaces de red. Se relaciona con la
clase NodeContainer, la cual provee la abstracción de un arreglo de nodos. En
especı́fico, la abstracción se emplea ejecutando la clase Node, la cual, también
provee funciones para el manejo de los host en la simulación.
3.2 Canal
Permite la conexión entre nodos. Es una representación del medio fı́sico por el
cual fluyen los datos entre dos nodos. La clase que realiza esta abstracción es
Channel, la cual provee funciones para el manejo de la conexión entre los nodos.
Una clase especı́fica derivada de Channel y que se utiliza en la ejecución de la
red adhoc es PointToPointChannel.
3.3 Aplicación
Es un programa de software que corre sobre los nodos para realizar ciertas tareas
a nivel de usuario. Esta abstracción es implementada por la clase Application,
la cual provee funciones para el manejo de aplicaciones a nivel de usuario.
3
3.4 Dispositivos de Red
Para NS3, un dispositivo de red cubre el software y el hardware de una tarjeta
de red. Cuando un dispositivo de red se asocia a un nodo, el nodo está en la
capacidad de comunicarse con otros mediante un canal. A la clase que maneja
esta abstracción se la denomina NetDevice, la cual maneja las funciones para
comunicar los nodos a través de un canal. En NS3 se debe tener una asociación
correcta entre un tipo de canal y un tipo de dispositivo de red, pues una clase
especı́fica como PointToPointNetDevice sólo podrá asociarse a un canal de la
clase PointToPointChannel. La clase NetDeviceContainer permite crear un
arreglo de dispositivos de red.
3.5 TopologyHelper
Esta abstracción en NS3 facilita la asociación entre los distintos nodos, dispos-
itivos de red y canales. Clases especı́ficas utilizadas en este programa son, por
ejemplo: AodvHelper, OlsrHelper, DsdvHelper, DsrHelper, Ipv4ListRoutingHelper,
InternetStackHelper.
4
4.2 Internet-module
Biblioteca que provee clases para que los nodos posean el stack UDP/IPv4. Las
clases usadas son:
• InternetStackHelper: Agrega el stack UDP/IP sobre los nodos ya ex-
istentes.
• Ipv4AddressHelper: Clase que permite establecer el direccionamiento
IPv4 sobre un enlace entre dos nodos.
• Ipv4InterfaceContainer: Clase que permite tener un contenedor entre
las interfaces de los nodos conectados y sus respectivas direcciones IPv4.
4.3 Mobility-model
Biblioteca que dispone de clases para modelos de movilidad entre nodos. La
clase a usar es RandomWaypointMobilityModel la cual hace que la posición
actual de un nodo siempre sea cambiante.
4.4 Applications
Biblioteca que proporciona una forma uniforme de iniciar y detener aplicaciones
Ns3. Dentro de esta podemos encontrar los siguientes modulos:
• BulkSendApplication: Este generador de tráfico simplemente envı́a
datos lo más rápido posible hasta MaxBytes o hasta que la aplicación
se detenga (si MaxBytes es cero).
4.5 Wifi-module
Biblioteca que permite modelar un controlador de interfaz de red inalámbrica
basado en el estándar IEEE 802.11
5
4.7 Spectrum-module
Biblioteca que tiene como objetivo proporcionar soporte para modelar los as-
pectos dependientes de la frecuencia de las comunicaciones en Ns3.
4.8 Stats-module
Biblioteca que incluye algunas caracterı́sticas útiles para facilitar la recolección
de datos de los experimentos.
4.10 Opengym-module
OpenAI Gym es un conjunto de herramientas para el aprendizaje de refuerzo
(RL) ampliamente utilizado en la investigación.
6
El middleware esta compuesto por dos partes el Environment Gateway y Proxy
de Entorno.
• Environment Gateway: Este se encuentra en el interior del simulador
y es responsable de reunir datos numéricos estructurados y la codificación
de las acciones recibidas del medio ambiente.
7
El proxy del Gateway se encuentra en el middleware el cual se encuentra dentro
de la clase Ns3GymEnv que hereda de la clase generica Gym Environment. Este
envia llamadas de función de Open AI Gym a una puerta de enlace a través de
un socket ZMQ.
8
Ademas esta estructura permite ejecutar multiples instancias de Ns3 en par-
alelo lo cual permite aplicar técnicas de AC3 (Asynchronous Advantage Actor
Critic), que actualmente el algoritmo de Inteligencia Artificial más potente ac-
tualmente el cual utiliza Deep Convolutional Q-Learning. Esta técnica permite
un aprendizaje más eficiente ya que utiliza múltiples agentes interactuando con
sus propias copias del entorno.
6 Simulación
Para un mayor entendimiento del funcionamiento de la simulación revise la de-
scripción del código. Se debe tener en cuenta que la ejecución se realiza en
un tiempo de 10 segundos mediante consola, puesto que cuando se utiliza el
complemento visualizer es permitido aumentar este tiempo. La ejecución de
la simulación se realiza utilizando 25 nodos, los cuales estarán en constante
movimiento y comunicación entre si. Los nodos se mueven a una velocidad de
20 m/s (sin tiempo de pausa) separados inicialmente por una distancia de 45
m entre cada uno. Finalmente, la información distribuida por la red esta carac-
terizada por el numero de paquetes que cada nodo puede entregar por segundo:
1000 paquetes/s y el tamaño de carga máxima que soporta la red por paquete:
1500 bytes.
9
• ahora, el inicio de la simulación necesita de la ejecución del ambiente, acá
se muestra como se inicializa los espacios de observación, acciones y espera
a la ejecución del gym.
10
• Por lo tanto tendremos que ejecutar el código de python, el cual se encarga
se encarga de avanzar las iteraciones de aprendizaje durante cada uno de
los 100 pasos establecidos.
11
• Ahora, mediante el uso de ns-3-pyviz visualizer podemos tener un acer-
camiento al comportamiento real de la red MANET desde donde com-
prender con facilidad que significa una red ad hoc y en qué afecta que los
nodos se mantengan en movimiento. Para lo cual presentamos primero
unas capturas de diferentes instantes del tiempo de ejecución, para especi-
ficar cómo se mueven los nodos constantemente.
12
• En segunda instancia, como se ha mencionado anteriormente, una red
MANET, es en esencia una red adhoc donde sus nodos se encuentran
en movimiento, lo cual se puede observar en los capturas anteriores, por
lo tanto ahora presentamos como es el movimiento de los enlaces en la
red, mediante los cuales se comparte el internet y se envı́an y reciben
paquetes, permitiéndole ası́ al simulador encontrar las conexiones posibles
entre todos sus nodos.
13
14
7 Referencias
• Redes Wireless Ad-Hoc. (s.f.). Recuperado de:
http://bibing.us.es/proyectos/abreproy/11306/fichero/TEORIA%252F08+-
+Capitulo+3.pdf.
• Hidalgo Pastor, F. J. (s.f.). Estudio de viabilidad de la utilización de redes
inalámbricas Ad-Hoc en edificios departamentales. Recuperado de:
https://riunet.upv.es/bitstream/handle/10251/13183/TesinaMaster Fco-
JavierHidalgo.pdf?sequence=1.
• Abstracciones de NS3. (s.f.). Recuperado de:
https://www.nsnam.org/docs/release/3.30/tutorial/ns-3-tutorial.pdf.
• OpenAI. (s.f.). OpenAI Gym documentation. Recuperado de:
https:gym.openai.com
• Gawlowicz P, Zubow A. ns-3 meets OpenAI Gym: The Playground for
Machine Learning in Networking Research. Recuperado de:
http://www.tkn.tu-berlin.de/fileadmin/fg112/Papers/2019/
gawlowicz19 mswim.pdf