• No se han encontrado resultados

CAPÍTULO 3. DISEÑO Y EVALUACIÓN DE LOS EXPERIMENTOS 38

3.2   Archivos de trazas 39

El módulo log de ns3 proporciona una forma relativamente simple para obtener información útil de salida en las simulaciones.

La aplicación utilizada da la facilidad de habilitar un componente log a través de:

LogComponentEnable ("UdpClient", LOG_LEVEL_INFO); LogComponentEnable ("UdpServer", LOG_LEVEL_INFO);

A continuación se muestra un fragmento de salida de una simulación:

Waf: Entering directory `/home/psing/Desktop/nsallinone323/ns- 3.23/build'

Waf: Leaving directory `/home/psing/Desktop/nsallinone323/ns- 3.23/build'

'build' finished successfully (0.879s)

TraceDelay TX 172 bytes to 10.8.1.1 Uid: 50 Time: 5

TraceDelay: RX 160 bytes from 10.8.1.6 Sequence Number: 0 Uid: 50 TXtime: +5000000000.0ns RXtime: +5010616012.0ns Delay: +10616012.0ns TraceDelay TX 172 bytes to 10.8.1.1 Uid: 55 Time: 5.02

TraceDelay: RX 160 bytes from 10.8.1.6 Sequence Number: 1 Uid: 55 TXtime: +5020000000.0ns RXtime: +5020364004.0ns Delay: +364004.0ns TraceDelay TX 172 bytes to 10.8.1.1 Uid: 62 Time: 5.04

TraceDelay: RX 160 bytes from 10.8.1.6 Sequence Number: 2 Uid: 62 TXtime: +5040000000.0ns RXtime: +5040364004.0ns Delay: +364004.0ns

Como se observa cada evento tiene una gran cantidad de campos, pero ese no es el único problema, la principal dificultad es que en cada fichero de simulación puede haber miles de eventos; en función del número de nodos, la tasa de tráfico, el tiempo de simulación. El tamaño del fichero de trazas puede variar entre unos Kbytes hasta alcanzar cerca de 1 Gbyte. En general, los ficheros de trazas tratados en este proyecto han estado alrededor de 30 Mbytes. Por lo tanto, en cada fichero se deben analizar varios campos de cada evento y teniendo que analizar miles de eventos, se hace una tarea imposible sin la ayuda de alguna herramienta que permita filtrar las trazas y obtener los índices de prestaciones que se desea evaluar.

3.2.1 Análisis de los datos

Para el análisis de los datos se utilizó Grep, esta es una utilidad del sistema operativo Debian/Ubuntu también implementada en Windows que permite tomar una expresión regular

40 | P á g i n a de la línea de comandos o una lista de archivos, e imprime las líneas que contengan coincidencias para la expresión regular.

Grep generalmente ejecuta alguna variante del algoritmo Boyer-Moore (para búsqueda de cadenas), utilizando expresiones regulares para definir la consulta.

El programa es configurable por medio de opciones de invocación, pudiendo mostrar las líneas con aciertos, desaciertos y el contexto de la coincidencia [68].

Otro lenguaje utilizado fue AWK, el mismo está diseñado para procesar datos basados en texto, ya sean ficheros o flujos de datos. Este lenguaje es idóneo para trabajar con los ficheros de trazas mostrados anteriormente ya que estos contienen información estructurada en campos, y sus características permiten descomponer líneas de entradas, en campos y comparar estos campos con patrones que se especifiquen.

El lenguaje AWK interpreta cada fila por separado, hasta que aparece un salto de línea, y cada fila la interpreta como una serie de campos separados por espacios, es decir, exactamente como se componen los ficheros de trazas.

Para acceder a un campo con grep y AWK sólo hace falta escribir el siguiente código en la terminal de Debian/Ubuntu como se muestra en la figura 3.1:

Figura 3.1: Terminal de Ubuntu 14.04 LTS A continuación se explica el código:

grep ‘cadena a detectar’ nombre del fichero que contiene la cadena | awk campo que se desea extraer de la línea en que se encuentra la cadena detectada > fichero de salida

Detallando la figura 3.1:

 ‘ns Delay’ representa la cadena a detectar

 out.txt es el nombre del fichero que contiene la cadena

 ‘{print $9,$17}’ se eligen los campos 9 y 17 de las líneas que contengan ‘ns Delay’, en este caso el campo 9 extrae el número de secuencia y el 17 el retardo.

 outexp1.txt es el fichero de salida

Gracias a esta herramienta se pudo extraer información relacionada con el número de secuencia y el retardo de cada uno de los archivos de traza, como se muestra a continuación:

0 2696743.0 1 427896.0 2 428352.0 3 430056.0

41 | P á g i n a De esta forma todavía se hace difícil la observación de los datos, por lo que fueron importados en el software MATLAB [69] para manejar y graficar los datos, posibilitando un buen análisis y comprensión de los mismos.

Además del log de salida de la simulación mostrado anteriormente, ns3 brinda la posibilidad de obtener otro archivo de salida en formato pcap; este archivo registra todo el tráfico que circula por determinado nodo durante el tiempo de simulación.

El formato pcap se puede analizar en el programa Wireshark ofreciendo la posibilidad de investigar con más claridad algunos de los protocolos utilizados en este proyecto como AODV y OLSR.

Wireshark es un analizador de red utilizado para realizar investigaciones y solucionar problemas en redes de comunicaciones, para desarrollo de software y protocolos, y como una herramienta didáctica para la educación; es software libre y se ejecuta sobre la mayoría de los sistemas operativos. Cuenta con todas las características estándares de un analizador de protocolos, posee una interfaz gráfica y muchas opciones de organización y filtrado de información. Provee datos relacionados a Calidad de Servicio, tales como jitter, retardo y ancho de banda luego de una llamada. Además, permite ver todo el tráfico que pasa a través de una red estableciendo la configuración en modo promiscuo; lo que posibilita examinar datos de una red viva o de un archivo de captura salvado en disco, que es la opción utilizada en este proyecto.

Además se utilizó NetAnim, un animador en línea basado en el kit de herramientas Qt4. NetAnim anima la simulación utilizando un archivo de traza XML recogido durante la misma. La versión actual es 3.106, está incluida junto con ns 3.23 y es compatible con ns-3-dev [70]. NetAdmin permitió visualizar la identidad de los nodos, la cobertura, la pérdida de enlace y la trayectoria según el modelo de movilidad, facilitando la discusión de los resultados de los experimentos.

Documento similar