Jperf. El frontend gráfico de iperf. Rendimiento de la red.

Ya vimos en su día el uso de Iperf  para medir el ancho de banda entre dos host. En este artículo avanzaremos un poco más y estudiaremo la versión gráfica basada en Java de Iperf: Jperf.

jperf el interfa grafico de iperf. rendimiento de la red

Jperf es una interface gráfica para Iperf. Está basado en Java y tiene las mismas funcionalidadesque Iperf. Lo podemos descargar desde aquí: (http://code.google.com/p/xjperf/).

Para su instalación, tan solo tenemos que descargar el archivo comprimido, descimprimir y ejecutar el archivo jperf.bat

La filosofia de uso es la misma que Iperf. Al tratarse de una herramienta cliente-servidor, ejecutaremos Iperf en dos máquinas, una hará de Servidor y otra de Cliente. Tanto en una como en otra podemos ejecutar indistintamente Jperf o Iperf. Es decir, podemos usar en un extremo y en otro Jperf como cliente y servidor o, como lo haremos aquí, Iperf como servidor y jperf como cliente y herramienta de análisis.

IPerf como servidor.

La forma más básica de ejecución como servidor es:

>iperf -s
————————————————————
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
————————————————————

En este momento IPerf se encuentra a la «escucha» en le puerto 5001.

JPerf como cliente.

Como ya hemos comentado, tan solo tenemos que  ejecutar jperf.bat, archivo contenido en la carpeta descomprimida del paquete descargado de Jperf. Una vez ejecutado el fichero por lotes mecionado, se nos abrirá el interface gráfico:

comienzo frontend Jperf

Tenemos en la interface los siguientes campos u opciones importantes:

  • iperf command: se rellenará automáticamente al introducir la IP del host remoto en el campo server address
  • Choose iPerf Mode: Indicamos si estamos usando jperf en modo cliente o servidor. En este caso lo haremos como client.
  • Server address: dirección del host remoto. Aquí introducimos la IP del host remoto. Automáticamente se rellenará el campo iperf command con unas opciones por defecto que irán cambiando a medida que rellenemos los cuadros Aplication layer options y Transport layer options.

Transport layer options.

Aquí indicaremos el protocolo TCP o UDP. Podemos ajustar valores como el Tamaño de la ventana, Longitud de buffer y el MSS (Maximum Segment Size) o cantidad de datos enviados en cada paquete. Ajustanto estos valores en nuestras mediciones podemos encontrar los valores óptimos para el mejor rendimiento de la red. La opción de ajuste más importante es el tamaño de ventana o Window Size. Lo común es que aumentando el Tamaño de Ventana, aumente el rendimiento, pero no siempre es así.

Pasa lo mismo con la Longitud de Buffer o Buffer Length. En valores pequeños podemos tener una red con un rendimiento bajo y subir demasiado este valore puede desencadenar retardos.

Respecto al Max Segment Size o Tamaño máximo de Segmento, cantidad de datos enviados en cada paquete sin fragmentar (expresado en bytes). Extraigo de la Wikipedia esta explicación bastante buena sobre Max Segment Size (MSS).:

«Para una comunicación óptima la suma del número de bytes del segmento de datos y la cabecera debe ser menor que el número de bytes de la unidad máxima de transferencia (MTU) de la red.

El MSS tiene gran importancia en las conexiones en Internet, particularmente en la navegación web. Cuando se usa el protocolo TCPMTU que ambos puedan aceptar. El valor típico de MTU en una red puede ser, por ejemplo, 576 ó 1500 bytes. Tanto la cabecera IP como la cabecera TCP tienen una longitud variable de al menos 20 bytes. En cualquier caso, el MSS es igual a la diferencia MTU – cabecera TCP – cabecera IP. para efectuar una conexión, los ordenadores que se conectan deben acordar y establecer el tamaño de la

A medida que los datos son encaminados por la red deben pasar a través de múltiples routers. Idealmente, cada segmento de datos debería pasar por todos los routers sin ser fragmentado. Si el tamaño del segmento de datos es demasiado grande para cualquiera de los routers intermedios, los segmentos son fragmentados. Esto aminora la velocidad de conexión, y en algunos casos esta bajada de velocidad puede ser muy apreciable. La posibilidad de que ocurra esa fragmentación puede ser minimizada manteniendo el MSS tan pequeño como sea razonablemente posible. En la mayoría de los casos, el MSS es establecido automáticamente por el sistema operativo.«

Application layer options.

De esta ventana destacar las opciones para cantidad de transmisión en Bytes o segundos de muestreo. Formato de Salida , el valor de intervalos de tiempo y el puerto al que se dirigirá y en el que escucha el host remoto (por defecto 5001).

Ejecutando Jperf

Una vez tenemo los valores en los campos correspondientes, tan solo nos resta pulsar el botón Run Iperf!:

Ejecutando jperf

Una vez realizada las pruebas, podemos ir modificando en el registro de Windows los valores más óptimos de rendimiento.

Vamos a realizar una prueba. Ajustaremos el valor de tiempo de transmisión (Transmit) en 30 segundos. En Transport layer option > TCP window Size ponemos 6 KBytes y Run Iperf!:

ajustando valores jperf iperf para pruebas rendimiento red

Vemos que el rendimiento con un tamaño de ventana de 6 Kbyes es de unos 75 Mbits / sec. apreciamos también las oscilaciones del rendimiento en el Bandwidth.

Cambiemos ahora el valor del tamaño de ventana (TCP windows Size) a 56 Kbytes.Vea mos que ocurre ahora:

pruebas rendimiento red local jperf iperf

Vemos ahora como el rendimiento y la estabilidad son mejores. Tanto en  el host remoto como en la ventana de Bandwidth de este captura vemos que nos da unos valores de  93,7 Mbits / sec.

Podeis probar, por ejemplo, cambiando los valores de Buffer Length. Vereis como a distintos valores y forma la gráfica va cambiando en función del rendimiento obtenido.

————————————————————————

NOTA: Atualizaré periódicamente este artículo con nuevas pruebas, resolución de problemas, etc.

————————————————————————-

Esta entrada fue publicada en Herramientas, Seguridad y redes, Varios y etiquetada , , , , , , , . Guarda el enlace permanente.

14 respuestas a Jperf. El frontend gráfico de iperf. Rendimiento de la red.

  1. Daniel dijo:

    Muchas gracias por mantener este blog. Estoy empeando con wireshark y me viene muy bien como guía. Gracias

  2. Mario dijo:

    Estimado Alfonn.
    He utilizado iperf y es una excelente herramienta. Proximamente voy a realizar pruebas con herramienta JPERF y su interface grafica en una plataforma Wimax y te informare los resultados.
    Saludos Cordiales

  3. Alfon dijo:

    Gracias Mario, será de gran ayuda.

  4. Ale dijo:

    Alfonn
    Muy clara la explicación, me queda una duda, si cambio el tamaño de ventana y/o el Buffer Length en el Client debo cambiarlo al mismo valor tambien en el Server?

  5. Alfonn dijo:

    Ale, yo por defecto siempre lo dejo igual, lo que no quiere decir que sea necesario. Habrá que hacer la prueba.

  6. Raptime dijo:

    Estimados, si entiendo bien, Buffer Length se refiere al tamaño de MTU (¿O no?), el rendimiento debiera bajar si tengo MTU de 80 bytes y mejorar si tengo MTU de 1500 bytes. ¿Es asi?
    Muchas gracias

    • anonimo dijo:

      El rendimiento dependerá de los routers conectados a las red, es decir . Si el equipo de tu hogar envia una MTU de 1500 bytes y el segundo Router por el cual serán enviados tus datos tiene definida una MTU de 500 bytes este descartara el paquete y le dira a tu router que divida los paquetes en más pequeños (500 bytes) entonces los 1500 se enviaran en 3 paquetes. El tiempo que descarto el paquete y le dijo a tu router que los volviera a fragmentar se perdio, por eso todo depende como este configurada la Red.

  7. jclyon dijo:

    Hola, puedo usar esta herramienta para saturar la red?
    como?
    gracias

  8. jfunez dijo:

    Hola jclyon,
    Te puedo comentar que no, ya que saturar la red significa saturar el Swich que tienes instalado, en su defecto lo que estarías haciendo es llevar al máximo la capacidad de tus tarjetas de red y de tu cableado entre los dos puntos que están haciendo las pruebas, además, si tienes un buen Switch una tercer PC no verá nada con WireShark de dicho tráfico, porque la comunicacíón es unicast entre los involucrados solamente.

  9. muriels_81 dijo:

    @jfunez, puede que, si el switch lo permite, se pueda espiar el tráfico usando port mirroring (del puerto interesado hasta el puerto donde está conectado el pc de gestión) desde un tercer pc. De esta forma puedes espiar tráfico unicast destinado a otros puertos mediante wireshark.

  10. Muriel dijo:

    Hola, estoy haciendo unas pruebas entre dos equipos separados a 150 metros y he querido utilizar el Jperf para medir el rendimiento entre estos equipos, pero no se ha podido efectuar ya que cada vez que iniciio el programa me marca un error de conexión, se deberá esto a la distancia a la cual se encuentran los equipos?? Gracias por su atención.

  11. androstux dijo:

    Ese error q bota es debido a q el puerto q va a explorar (ej:5001), no puede ser usado mientras se corre el iperf.

    saludos

  12. androstux dijo:

    Eso es porq estas usando el mismo puerto de pruebas con otra aplicación!!!

  13. Martha Ponce dijo:

    Hola! espero que todavía revisen la preguntas en este blog… tengo un problema con la compañía que me provee internet, ellos quieres utilizar jperf para mostrarme que la velocidad que contraté si es la que tengo (40 x 40) y en jperf según los valores que aparecen me dicen que el servicio está perfecto. Pero yo estoy revisando la velocidad en 7 servidores diferentes (por ejemplo speedtest, y otros muchos) y en todos me marcan velocidades que son muy bajas en comparación de lo que tengo contratado.. el caso es que tengo otro servicio de otra compañía que al hacer las mismas pruebas online las velocidades son las reales (vs lo que contrate) por lo que los servicios online me parecen, si no lo más confiables, al menos si se acercan a la realidad… bueno el punto de mi pregunta es, puede Jperf medir la velocidad que me entregan o únicamente mide hasta cuánto pueden entregarme? Espero haberme explicado. Gracias!

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s