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!