Conceptos básicos NS3

El simulador ns3 es un simulador de eventos discretos utilizado ampliamente en investigación y en docencia.
Se pueden desarrollar todo tipo de simulaciones relativas a tecnologías, protocolos y aplicaciones atendiendo a la configuración que hagamos en un archivo C++.

Los elementos básicos de una simulación vienen representados por clases c++ que simulan los elementos básicos hardware/software de un escenario real, son los siguientes:

  1. Node: representa un dispositivo (computador, servidor, teléfono móvil, portátil, sensor, cámara, etc.)
  2. Channel: representa un canal de comunicación y su comportamiento (cable, inalámbrico, punto a punto, etc.)
  3. Net Device : Dispositivo de red, es una tarjeta de red inalámbrica (e.j wifi) o cableada (e.j ethernet)
  4. Application: es una aplicación software. Desde el punto de vista de una simulación es un generador/consumidor
    de paquetes de información. Un servidor web, un navegador, etc. son ejemplos de aplicaciones
  5. Protocol stack: es una pila de protocolos de comunicación. El mas conocido, la pila de protocolos TCP/IP que hace posible la comunicación en Internet
  6. El simulador propiamente dicho: se encarga de lanzar y gestionar la simulación.

Con estos cinco elementos podemos simular cualquier escenario de red. En nuestro archivo de C++ debemos tener estos elementos configurados apropiadamente para simular un escenario real.
Cuando analizemos un escenario ns3 veremos que en C++ vamos realizando los mismos pasos que haríamos en un escenario real.

  1. Creamos los objetos C++ que representen a los nodos, el canal, la aplicación y la pila de protocolos que necesitemos
  2. A los nodos, les «instalamos» los dispositivos de red (Net Devices)
  3. «Conectamos» el channel a los dispositivos de red
  4. Instalamos en cada nodo la pila de protocolos y la configuramos apropiadamente. En TCP/IP le damos la dirección IP, máscara de subred, etc.
  5. Instalamos en cada nodo la aplicación y la configuramos
  6. Configuramos y lanzamos la simulación

Hay elementos secundarios que nos facilitan la labor de gestionar simulaciones complejas (argumentos, log, configuración de muchos elementos) con
muchos nodos y/o aplicaciones.