ELO-330: Programación de Sistemas
Tarea 2: Graficador de Tráfico Instantáneo

Objetivos: En esta tarea usted aplicará: creación de procesos, comunicación entre procesos usando pipas, uso de hilos, manejo de zonas de acceso exclusivo, e integración de servicios provistos por otras aplicaciones.

Introducción

   Es común que algunas aplicaciones permitan observar las tasas de transferencia que generan al subir o bajar datos de la red; sin embargo, no siempre podemos enterarnos de cuánto tráfico reciben y cuánto transmiten. Por otro lado, los datos mostrados reflejan las tasas a nivel de la aplicación y no a nivel de la interfaz como, por ejemplo, poder determinar si el ancho de banda comprometido en nuestra conexión está siendo cumplido. En esta tarea usted desarrollará un graficador simple del tráfico de entrada y salida de una interfaz.

Nombres: myTraffic

Sintaxis: myTraffic <interfaz>

Descripción

    myTrafficMeter despliga un gráfico con dos curvas: una mostrando la variación en el tiempo de la tasa de transferencia de entrada y la otra la tasa de salida de una interfaz de red del computador donde corre la aplicación. En otro gráfico myTraffic mostrará dos curvas más con las transformadas de Fourier de los datos desplegados en los gráficos temporales. Es así como veremos dos gráficos con dos curvas en cada uno. El primero mostrando tasas de transferencia en byte por segundo y el otro mostrando las transformadas de Fourier de ambas señales.
   myTraffic además muestra un menu de texto por pantalla invitando a cambiar:
Opción a) el periodo de muestreo del tráfico en segundos.
Opción b) Tamaño de la ventana de tiempo a graficar. Siempre se grafica desde lo más pasado hacia lo presente, siendo el último dato el extremo derecho del gráfico.
Opción c) (esta opción es voluntaria, todo lo demás basta para aspirar a la nota máxima) selecciona tipo de gráfico, puede ser 1 para tasa en [bytes/s], 2 para tasa en [paquetes/s], ó 3 para gráfico de tamaño promedio de paquete en el tiempo.
Opción d) Salir.
 
Evaluación de la Tarea y qué entregar: revisar procedimiento de entrega y criterios usados para evaluar su trabajo.

Recomendaciones
* Revise y ejecute el comando ifconfig. En Aragorn, éste se encuentra en la carpeta /sbin/. Al ejecutarlo con una interfaz como argumento, muestra el número total de paquetes y bytes enviados y recibidos a través de esa interfaz.
* Puede ayudar revisar la función sprintf.
* Vea este ejemplo para generar gráficos usando Matlab. También lo puede hacer usando SciLab, el cual usted puede instalar gratuitamente. Para su información, otra opción gratuita es Octave. Aquí está la versión Octave de este programa exacta a la versión Matlab (notar que sólo cambia el nombre del ejecutable, los comandos son los mismos). por ahora no tenemos Octave en Aragón, pero usted lo puede bajar y probar en su casa ... y el el futuro ccontribuir para hacer de este algo aún mejor para sus futuros usuarios.
* Vea una tarea parecida del año 2005 y otra que usa matlab y FFT. En su lugar también vería las mejores soluciones de esa tarea.
* Vea también la función setitimer.
* Haga su tarea de a poco y con tiempo. Con gusto atenderé todas sus preguntas en especial en clases y horas de atención!