Para poder generar tráfico usando el simulador ns-2, basta con crear algún agente TCP o UDP y adjuntarle una fuente de tráfico de 3 posibles:
- Application/Traffic/CBR - genera paquetes con un bitrate constante.
- Application/Traffic/Exponential - en ciertos periodos, no se envía tráfico, mientras que en otros se vnía tráfico con una tasa constante. El largo de cada periodos de envío o no envío es distribuido exponencialmente.
-
- Application/Traffic/Pareto - lo mismo que la exponencial, pero con una distribución Pareto.
- Application/Traffic/Trace - el tráfico es generado desde un archivo, donde los tamaños y los tiempos de llegada de los paquetes están definidos.
En la siguiente imagen se puede ver una gráfica que muestra con el tiempo los periodos en los que se envía, y en los que no se envían paquetes.
Como se puede observar, la línea azul que corresponde a el tráfico CBR es una línea constante sin interrupciones, cumpliendo con su funcion de tener un bitrate constante. En cambio, las líneas verde y roja contienen algunas interrupciones siguiendo las distribuciones Pareto y Exponencial respectivamente.
La topología usada para la gráfica fue:
Donde:
- 1 utiliza tráfico con interrupciones siguiendo la distribución exponencial
- 2 utiliza tráfico con interrupciones siguiendo la distribución Pareto
- 3 utiliza tráfico CBR con bitrate constante
- Jitter
- Delay
- Throughput
- Latencia
Para realizar las mediciones, igual que anteriormente se utilizarán script en AWK que en base a los archivos de salida de ns-2, lee información del mismo y en base a ellos calcula jitter, delay, etc.
Throughput
El throughput, o la cantidad de bits que se transmiten exitosamente por segundo, se calcula sumando el total de bits que se envíaron en la transmisión desde un nodo hacia otro, y dividiendolo entre el tiempo de duración de la transmisión.
Calculando el throughput entre el nodo 1 y 0 (tráfico exponencial, variando el burst-time con 100, 300 y 500 ms).
Al incrementar el burst-time, el throughput incrementa, lo cual tiene sentido pensando en que el burst-time es el tiempo en el cual se estarán enviando paquetes.
Entre el nodo 2 y 0 (tráfico con distribución Pareto, variando el idle time, con 100, 300 y 500ms)
Al disminuir el idle-time, el throughput incrementa, debido a que el idle-time es el tiempo en el cual no se envían paquetes, por lo que existe un menor tiempo en el que no se envían paquetes.
Entre el nodo 3 y 0 (cambiando el tamaño de los paquetes a 256, 512 y 1024 bytes):
Código:
Jitter
Para calcular el jitter se utilizan los diferentes tiempos y números de secuencia de los paquetes. Se calcula la diferencia entre el tiempo anterior y el actual, dividiendolo entre la diferencia del número de secuencia anterior y actual.
El jitter calculado entre el nodo 1 y 0:
Entre el 2 y 0:
Entre el 3 y 0:
En este caso no hay jitter porque el tráfico es CBR, entonces no hay variaciones.
Código (obtenido de http://nile.wpi.edu/NS/analysis.html):
Para calcular el jitter, se hace uso de un comando de shell que utiliza AWK, PERL, cat y GREP. Almacena en un archivo los tiempos y números de secuencia calculados. El código de PERL usado fue:
El comando para calcular los jitters y almacenarlos es:
Donde se cambia grep " 3 0 cbr " por la conexión que vamos a calcular el jitter.
Delay
El delay o retraso, es el tiempo promedio que tarda un paquete en llegar de un nodo a otro. y se calcula tomando los tiempos en los que se envian los paquetes, y los tiempos en los que se reciben. Al restar los correspondientes a un paquete dado, se obtiene el delay en ese envío determinado, y promediando la suma de todos entre el total de paquetes enviados se obtiene el delay total.
Calculando el delay entre el nodo 1 y 0.
Entre el 2 y 0.
Entre el 3 y 0.
Código:
Referencias:
- http://sydney.edu.au/engineering/it/~deveritt/networksimulation/trafficgeneration.html
- http://web.mst.edu/~bckd2/CpE401/project/NS2%20simulations/special_study%20on%20TCP.pdf
- http://nuclearstrike.wordpress.com/2010/05/13/traffic-models-in-ns2/
- http://www.matlab.nitech.ac.jp/~khpoo/research/index-poisson.htm
Bien; para la tarea, intenta lograr parametrizar el tráfico y que vaya cambiando mientras avance la simulación (por ejemplo incrementando la tasa). 7 pts.
ResponderEliminar