March 4, 2013

Laboratorio 5: Simulación con NS-2

Para este post de laboratorio, lo que había que realizar era una simulación en el programa Network Simulator, en su versión 2 o 3 (NS-2, NS-3), y utilizar Network Animator (Nam) para realizar animaciones de las simulaciones.

Para instalar Nam y NS-2 basta con ejecutar los siguientes comandos en terminal:
sudo apt-get update
sudo apt-get install ns2
sudo apt-get install nam

Simulación

Después de entender como funcionaba NS-2 viendo pequeños tutoriales y ejemplos, realicé una pequeña simulación con 4 nodos. Esta simulación consiste en en 4 nodos, todos conectados por enlaces dúplex con un ancho de banda de 1Megabit y con un delay de 10 ms. 2 de los nodos son agentes UDP y utilicé dos fuentes de tráfico CBR (Constant Bit Rate). Para que el nodo que se encuentra en medio reciba los paquetes y los envíe hacia el nodo que se encuentra del lado derecho se debe usar un agente que actúe como disipador de tráfico y conectarlo con los agentes UDP para que los paquetes se dirijan hacia ese nodo.

En el video podrán apreciar como muchos de los paquetes no son enviados ya que el nodo 2 recibe demasiados paquetes y tira muchos de ellos, este nodo maneja un tipo de cola conocida como SFQ (stochastic fair queueing) la cual toma paquetes de los dos nodos cuando sobrepasa el límite de la cola y los tira, en cambio si se utilizara un tipo de cola Droptail lo que haría sería tirar los paquetes del nodo 1 ya que son los paquetes que llegaron en segundo lugar.

Aquí un video de la simulación:


Script


Modificando un poco el script para utilizar xgraph y utilizando generadores de tráfico para simular dos escenarios distintos obtuve una gráfica en la que se aprecia la cantidad de paquetes que se transmiten en el tiempo de la simulación. La gráfica obtenida es la siguiente:

En la primer simulación marcada con una línea verde se utilizó un bit rate de 100kb y en la segunda simulación (línea roja) se utilizó un bit rate de 200kb.

Script




Otra de las mediciones que hice fue la pérdida de paquetes, esto lo hice con los archivos de salida de las simulaciones, los cuales tienen el siguiente formato:


Pero la parte que importa para calcular la pérdida de paquetes es esta:

r -t 0.024 -s 0 -d 2 -p cbr -e 500 -c 1 -i 0 -a 1 -x {0.0 3.0 0 ------- null}
Donde:
  • r significa que el paquete se se recibió correctamente.
  • -t indica el tiempo en el que se recibió el paquete desde que se comenzó la simulación.
  • -s nodo orígen.
  • -d nodo destino.
  • -p indica el protocolo utilizado.
  • -e tamaño de paquete.
  • -c indica el id de flujo.
  • -i el número de paquete.
Los importantes para conocer la pérdida de paquetes serían que si el paquete se recibió correctamente, nodo destino y nodo origen.

Utilizando el archivo de salida de la primera simulación realicé un script de awk para leer el archivo y realizar los cálculos.

Script




Fuentes

1 comment: