lunes, 6 de febrero de 2012

Medición de performance de enlaces

http://librosnetworking.blogspot.com/2012/02/medicion-de-performance-de-enlaces.html

Por Oscar Gerometta

Un requerimiento habitual en las tareas de administración de la red es el de medición de la performance de los enlaces.

En este punto, permítanme ante todo una aclaración: la medición de performance está referida inicialmente a la medición de un enlace específico. 

También podemos medir la performance de una conexión a través de una ruta completa, por ejemplo entre mi terminal y el servidor de Blogger. Pero en este caso el resultado será igual a la performance del enlace de menor capacidad por el cual atraviesa mi ruta hacia Blogger.

Pero entrando específicamente en tema, si vamos a medir performance primero tenemos que aclarar un par de conceptos.

Data Rate y Throughput
Lo primero es tener claro la diferencia entre la tasa de transferencia del enlace (habitualmente denominada "data rate") y la tasa de transferencia efectiva (denominada "throughtput).

El data rate refiere a la capacidad absoluta de un enlace y es función directa de la manera en que modula y codifica la portadora sobre ese enlace. Habitualmente suele medirse en bits/segundo (Mbps, Gbps, etc.).

El data rate establece un límite absoluto para nuestra transmisión: no podemos transmitir mayor cantidad de datos que la definida en el data rate.


El througput en cambio, es la capacidad efectiva de transferencia de datos sobre el enlace. Esta capacidad siempre es menor al data rate ya que en los enlaces, junto con los datos, hay tráfico de negociación, mantenimiento y control del enlace. Esto en sistemas TCP/IP además depende del protocolo de capa de transporte que utiliza la aplicación, que puede ser TCP o UDP. Típicamente una sesión UDP tiene un 20% más de performance que una seción TCP sobre el mismo enlace. En muchos casos (Microsoft, por ejemplo) vamos a encontrar el throughput en Bytes/segundo (KBps, MBps).

Un ejemplo:
En redes inalámbricas (WiFi) solemos encontrar conexiones que están declaradas como de 54 Mbps, sin embargo nunca llegamos a esa cifra cuando realizamos transferencias de archivos.

Esto se debe esencialmente a que el protocolo IEEE 802.11g que implementan las redes WiFi tiene una alta carga de tráfico de management y control, al mismo tiempo que impone tiempos de espera muy altos. A esto súmenle que la mayoría del tráfico que pasa sobre esas redes es TCP.

Si lo vemos en cifras: 

  • Data rate: 54 Mbps.
  • Throughput máximo: Aproximadamente 28 Mbps.
  • Throughput de una sesión FTP (TCP): 22,4 Mbps o 2,8 MBps.
Consecuencias prácticas: el data rate se verifica monitoreando la velocidad a la que negocian los puertos que componen un enlace; el throughput debe ser medido generando tráfico sobre ese enlace.

¿Cómo medimos el throughput?
A los fines operativos lo que se nos suele requerir es la medición de throughput y para esto lo que necesitamos es generar tráfico sobre el enlace para medir efectivamente cuál es su capacidad.

Existen generadores de tráfico, e incluso podemos configurar un dispositivo (como un router) para que genere tráfico. Pero estas soluciones son costosas y requieren conocimientos avanzados para poder implementarlas.

Hay una solución simple y de muy bajo costo: Iperf.

Se trata de una herramienta open source, muy sencilla de utilizar y que provee la información que habitualmente necesitamos para resolver situaciones en las que la performance es un parámetro que requiere estudio.

Iperf trabaja con una lógica cliente-servidor, por lo que debe ser instalado en terminales que estén en ambos extremos del enlace que se desea medir. Puede generar y medir tanto tráfico TCP como UDP y nos permite definir tamaño de los paquetes, puerto de destino, duración de la medición, etc.

La información que nos brinda es, para la sesión que se está analizando, delay, jitter (variación del delay) y throughput.

Iperf es una herramienta multiplataforma que se ejecuta por línea de comando y nos entrega los resultados en modo texto. 

Personalmente prefiero utilizar Jperf. Jperf no es más que un frontend gráfico en Java para facilitar la operación y monitoreo de Iperf. Mi preferencia se debe a que la salida gráfica de los resultados es un elemento útil al momento de tener que presentar informes de performance de los enlaces.





En síntesis: Iperf o Jperf (según los gustos personales, son lo mismo) es una herramienta simple pero poderosa para verificar el throughput, la pérdida de paquetes y el jitter.

Pero una salvedad: La capacidad de generación de tráfico dependerá esencialmente de la CPU y memoria RAM de los equipos que estén corriendo la aplicación. Por eso, es muy eficiente para realizar mediciones sobre enlaces de baja capacidad o inalámbricos. Cuando se trata de medir redes LAN, es posible que la capacidad de las terminales que estemos usando no sea suficiente y debamos buscar equipos con mayor procesamiento.


Recursos

No hay comentarios:

Publicar un comentario