ELO-330: Programación de Sistemas
Tarea 2: Graficador de Retardos y Tasas Estimadas de Enlaces

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

Introducción

   Un modelo simple para el retardo de un paquete al transitar de un router a otro considera Tiempo de Procesamiento (tpc), Tiempo en Cola (tc), Tiempo de Transmisión (tt), y Tiempo de Proparación (tpp). Conforme un paquete aumenta su tamaño, se espera que el tiempo más afectado sea el de transmisión pues crece linealmente con el tamaño del paquete.

  Ping es un utilitario común para medir retardos totales de ida y vuelta ( RTT o round-trip delay time). Ofrece opciones como -s, -c, y -t para fijar el tamaño, el número de paquetes enviados, y el TTL (Time-to-live) de los datagramas respectivamente.

  A través de esta tarea estudiaremos la evolución del retardo de ida y vuelta conforme aumentamos el tamaño de datagramas enviados.

Nombre: rtdelay  graficador de retardo y tasas de enlaces estimadas a lo largo de una ruta.

Sintaxis: rtdelay <host_name> <n> <max_size>

Descripción
    rtdelay despliega dos gráficos: uno de areas acumuladas que muestre el retardo parcial hacia el host-name destino y otro de líneas que muestre el estimador para el retardo aportado por cada enlace en la ruta hasta el host_name destino. El primer gráfico muestra la mediana de <n> mediciones del retardo hasta cada router en la ruta hacia el destino en función del tamaño del datagrama enviado el cual varía de 10 a max_size mostrando valores para 20 tamaños distontos uniformemente distribuidos.
    El segundo gráfico muestra líneas correspondientes al retardo estimado para cada enlace en la ruta hacia host_name versus el tamaño del datagrama. El estimador para el retardo aportado por el enlace i-ésimo corresponde a la diferencia entre el retardo al router o computador i-ésimo menos el retardo al router o computador i-1.
    Una vez concluido el gráfico, el programa muestra por pantalla el estimador para la tasa de cada enlace. Estimaremos la tasa por 1/pendiente de la recta que mejor ajusta el gráfico de retardo estimado versus tamaño de paquete para cada enlace.

NOTA: Lo fundamental de la tarea es el cumplimiento de los objetivos señalados. No se garantiza que los estimadores propuestos reflejen fielmente las tasas de cada enlace. Si usted puede proponer mejoras, bienvenido!

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 ping. Considere enviar hacia host-name un datagrama con ttl igual a 1, luego 2 etc. y luego registre el tiempo RTT a cada router intermedio. Luego de n repeticiones pida a matlab o similar que le dé la mediana para los valores de ttl a cada enlace. Repita lo anterior para distintos valores de tamaño de paquete. Finalmente matlab o similar debería mostrar los gráficos y calcular el estimador de la tasa.
* 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 contribuir para hacer de este algo aún mejor para sus usuarios.
* Vea una tarea parecida del año 2008 y otra que usa matlab y FFT.
* Haga su tarea de a poco y con tiempo. Con gusto atenderé todas sus preguntas en especial en clases y horas de atención!