Jperf es una interfaz gráfica de usuario basada en Java que nos permitirá utilizar el popular programa iperf para medir la velocidad máxima entre dos equipos. En RedesZone llevamos utilizando Jperf mucho tiempo, para medir el rendimiento que obtenemos en las pruebas LAN-LAN, LAN-WAN y también pruebas WiFi. JPerf está basado en iperf2, y actualmente no es compatible con el popular iperf3 que es mucho más eficiente. En este tutorial os vamos a enseñar cómo utilizar este programa tan interesante para medir la velocidad real entre dos equipos, independientemente de si están conectados en la red local LAN o en Internet.
Hay muchas herramientas con las que poder revisar si el ancho de banda que nos llega a nuestros dispositivos es el que esperamos o estamos recibiendo mucho menos de lo que deberíamos y pagamos de manera mensual. Por esto mismo, una de las opciones que se pueden utilizar para comprobar la velocidad máxima de nuestra conexión de red es JPerf.
Esta aplicación no supone ningún misterio ni es complicado de usar, por lo que en las siguientes líneas hablaremos de las especificaciones clave de esta herramienta y, sobre todo, cómo se puede usar para sacarle provecho. De esta manera, a la hora de querer utilizar este software en concreto para monitorizar tu red, lo cierto es que podrás aprovechar al máximo cada una de las funcionalidades que permite llevar a cabo.
Principales características de Jperf
Como hemos explicado anteriormente, Jperf no es más que una interfaz gráfica de usuario del popular programa iperf, por tanto, vamos a hablar de las principales características de iperf. Este programa es un cliente-servidor muy sencillo de utilizar, permite medir la velocidad máxima que alcanzan dos equipos conectados a través de la red local o Internet, es muy útil para comprobar la velocidad WiFi sin que la conexión a Internet haga de cuello de botella. En términos generales, estas son sus funcionalidades principales, aunque lo cierto es que ofrece un gran número de alternativas que se pueden aprovechar en cualqueir momento.
Este programa Jperf y también iperf es compatible con todos los sistemas operativos, tanto Windows, Linux como macOS, ya que está basado en Java. Solamente necesitaremos tener instalado Java para poder ejecutar el programa correctamente. Por lo que tanto, queda claro que una de las ventajas que tiene esta herramienta es que ofrece una amplia compatibilidad con equipos con diferentes sistemas operativos. Así que es algo que se puede aprovechar en todo momento.
Iperf es compatible tanto con el protocolo TCP como el protocolo UDP, además, vamos a poder configurar el tamaño de ventana TCP y otros parámetros muy avanzados como el buffer, el tamaño máximo del segmento y más. Por lo que es otro de los plus que hay que tener en cuenta de esta herramienta en particular.
Además de todo lo anterior, también vamos a poder mostrar la velocidad en diferentes unidades de medida, como en Mbits, MBytes, Gbps y otras, además, podremos configurar el intervalo de reporte de los datos, la duración de la prueba, e incluso los streams paralelos que va a enviar. Al utilizar TCP y UDP, deberemos definir el mismo puerto TCP o UDP tanto en el servidor como en el cliente, de lo contrario, no podrán comunicarse el cliente con el servidor. Por supuesto, este programa es compatible tanto con redes IPv4 como también con redes IPv6.
Sus funciones más importantes
Para tener una idea más clara de todo lo que podemos hacer con este software, no queda otra que conocer más a fondo cada una de las principales funcionalidades que este programa permite. Y son las siguientes:
- Permite medir el ancho de banda entre dos host, ya sean cableados, inalámbricos o a través de Internet.
- Permite ver en tiempo real cómo se transfieren los datos
- Podremos configurar diferentes hilos TCP simultáneamente, para comprobar el rendimiento con muchas conexiones concurrentes.
- Soporta UDP, podremos transferir tráfico UDP con varios hilos concurrentes para exprimir el ancho de banda de la red local
- Permite la visualización de los datos en Mbps y Gbps, ideal para redes de alta velocidad.
- No se recomienda usar este programa para redes Multigigabit o superiores a 1Gbps, en su lugar, es mejor que utilicéis el programa iperf3 del que tenemos un completo tutorial.
- Permite medir la velocidad de subida (por defecto), la velocidad de subida y descarga (por separado, primero se comprueba la velocidad de subida y luego de descarga), y finalmente también podremos configurar la medición de descarga y subida de forma simultánea.
- Podremos modificar la ventana TCP en el sistema operativo.
- Permite configurar tanto servidor Iperf como cliente Iperf, definiendo direcciones IP y puertos cuando sea necesario, dependiendo de lo que hayamos elegido.
- Es compatible con sistemas operativos Windows, Linux y macOS, al estar basado en Java podremos tener la posibilidad de ejecutarlo en diferentes sistemas operativos.
- Internamente utiliza iperf2 para la comunicación, realmente jPerf es una interfaz gráfica de usuario basada en Java.
Tal y como se puede ver, este programa es realmente completo y nos permitirá medir el rendimiento real de una red local o de Internet, pero os recomendamos no utilizar este programa para redes superiores a 1Gbps porque se comporta claramente peor que otras herramientas, como iperf3. En el caso de que utilices este programa para redes superiores a 1Gbps, es muy posible que no consigas más velocidad que 1.2Gbps aproximadamente, a no ser que modifiques ventana TCP y otros parámetros avanzados.
Modos de configuración
Por otro lado este también puede ser configurado de diferentes con funcionalidades que harán que este se adapte mejor a nuestros requerimientos. Estos modos son:
- Modo Servidor: Para configurar esto deberemos elegir “Chosee Iperf mode: Server” en la máquina para que se ejecute como servidor. Dentro de este, también tendremos algunas configuraciones.En primer lugar tenemos Listen Port, que se trata del puerto que escuchará de donde se reciben los paquetes que luego realizarán la medición. Este es recomendable dejarlo por defecto. Y Num Connections nos permite asignar un número máximo de comunicaciones que el servidor podrá soportar, lo dejaremos con el valor “1” por defecto. Y por último tenemos Report Interval, que nos permite configurar un intervalo de las muestras que se tomarán para realizar a continuación el gráfico de capacidad de tráfico.
- Modo cliente: Si queremos configurar este modo tendremos que elegir el modo “Client” en la máquina que queremos ejecutar como cliente. Una vez realizado, tenemos que asignar la dirección IP del servidor en “Server Address” y elegir el puerto a donde se van a enviar los flujos de prueba y el número de estos.
Es por esto mismo por lo que resulta tan interesante utilizar este tipo de herramienta en particular. Más que nada porque los usuarios tienen la oportunidad de configurar este software en función del modo que más se adapte a las necesidades de cada. Por lo que consigue usar de una forma más adecuada en todo momento.
Descarga e instalación de Jperf
Este programa está discontinuado, es decir, no tendremos nuevas funcionalidades y la última versión es la jperf-2.0.2. Os recomendamos descargar esta última versión desde este enlace que lleva directamente a Google Code Archive. La última versión es la 2.0.2 por lo que debemos utilizar esta.
Una vez descargado, tendremos que descomprimir el archivo ZIP y ya podremos ejecutarlo, no es necesaria ningún tipo de instalación, es un programa portable y compatible con todos los sistemas operativos. A continuación, os indicamos los pasos para ejecutar este programa, debemos tener en cuenta que el único requisito es tener Java instalado en nuestro ordenador, de lo contrario, nos devolverá error.
Cómo se ejecuta en Windows, Linux o macOS
De primeras, explicaremos cómo se debe ejecutar en los sistemas operativos de Microsoft. Una vez que hayamos descomprimido el ZIP descargado, entramos en la carpeta y hacemos doble click sobre el archivo que pone «jperf.bat«. Este script hará todo lo necesario para arrancar correctamente el programa y empezar a utilizarlo. Así de simple, por lo que no esconde ningún tipo de secreto.
Ahora bien, en el caso de que tengamos un ordenador con macOS o Linux, entonces el proceso para su ejecución es diferente. Por lo que debes conocer cómo se hace en concreto en estos sistemas. En este caso, una vez que hayamos descomprimido el ZIP descargado, debemos abrir un terminal y proporcionar permisos de ejecución al archivo, de lo contrario, no podremos ejecutarlo.
sudo chmod u+x jperf.sh
Y una vez que tenga permisos de ejecución, lo podremos ejecutar de la siguiente forma en el equipo:
sh jperf.sh
Hay que tener en cuenta que no es necesario ejecutarlo con permisos de administrador. Por lo que no te debes de preocupar de tener los permisos correspondientes, ya que no habrá en este sentido ningún tipo de inconveniente en particular.
Implementación en empresas
Para instalar e implementar esta funcionalidad en una empresa, lo primero será adaptar el sistema a ella. Esto es porque está basada en Java, por lo cual lo va a requerir instalado para poder ejecutarse en aquellas máquinas donde lo queramos implementar. Es importante que Jperf se instale en los servidores y en los clientes, ya que de este modo permitirá realizar pruebas de rendimiento de forma bidireccional en la red. Por lo cual es un poco diferente a como se realiza la instalación a nivel doméstico. Pero una vez esté instalado, será necesario proceder a la configuración.
Una de las primeras configuraciones, es la definición de los parámetros como puede ser el puerto de escucha. También serán importantes los intervalos de tiempo, tamaño de búfer, entre muchos otros posibles. Estos deben estar correctamente aplicados, de acuerdo a las necesidades que tenga la red de la empresa, o incluso la naturaleza de la misma. Esto permitirá realizar análisis de rendimiento de la red, de una forma mucho más fiable. Y, sobre todo, que permita identificar posibles problemas de rendimiento y cuellos de botella en la red. Esto da muchas facilidades gracias a su interfaz son gráficos, lo cual facilita mucho la compresión a los administradores. Los cuales, con el sistema bidireccional, pueden tomar decisiones mucho más efectivas.
Otra de las consideraciones, es la formación del personal. Los administradores de red y demás personal de TI, deben estar familiarizados con todas las funciones de Jperf. Esto ayudará a comprender cómo interpretar los resultados de todas las pruebas, lo cual nos llevará a sacar el máximo partido a la aplicación para poder así mejorar el rendimiento general de la red. Esto nos lleva al punto de la seguridad, lo cual es crítico dentro de cualquier empresa. Esta aplicación puede ser utilizada de forma malintencionada, de forma que puede recopilar datos sobre la red. Por lo cual debemos asegurarnos de que se encuentra protegida de forma adecuada, y que solo el personal autorizado puede dar uso de la misma.
Funcionamiento y primer test de velocidad
El funcionamiento de Jperf es muy sencillo, lo primero que debemos tener claro, es que estamos ante un programa cliente-servidor, por tanto, debemos tener dos equipos, uno que actúe como servidor y el otro como cliente. Hasta ahí todo claro, ya que es el primer punto que hay que tener en cuenta a la hora de entender cómo funciona este software.
Las opciones que hay que configurar en el primer ordenador, o servidor que se va a usar son la pestaña de server y elegir ‘listen port’. Después, en el momento de configurar el segundo PC, o cliente, debes tener en cuenta estas tres opciones en todo momento: server address, port y parallel streams.
No obstante, para que te hagas una idea, esto es lo que debemos tener en cuenta una vez se vaya a ejecutar en los dos ordenadores que vamos a utilizar:
- Servidor: este equipo tiene la IP 192.168.1.3, pinchamos en Jperf en la sección de «Server», Listen Port 5001 que viene por defecto, y pinchamos en «Run Iperf».
- Cliente: este equipo tiene la IP 192.168.1.2, pinchamos en Jperf en la sección de «Client», ponemos «Server Address: 192.168.1.3», «Port: 5001» que es el de por defecto, y en «Parallel Streams» podremos dejarlo a 1. Pinchamos en el botón de «Run Iperf!» y ya debería establecer comunicación con el servidor.
En el cuadro de debajo que nos indica «Output» podremos ver todo lo que está haciendo Iperf en bruto, como si lo ejecutásemos a través de la línea de comandos.
Ya en la sección de «Parallel Streams» es recomendable poner un valor de 50 o superior, para lanzar varias conexiones TCP o UDP simultáneas y estresar al máximo el enlace. Además de que, cuando ya se tenga el segundo PC configurado como tal, se pueden encontrar opcones adicionales como el tipo de salida de datos, el tiempo de transmisión, etc.
Opciones de configuración interesantes
No obstante, no hay que olvidarse de las diferentes configuraciones que te pueden resultar de gran interés a la hora de usar este software de monitorización de redes. Lo cierto es que presenta una gran variedad de opciones que son de lo más interesantes. Para ello, en la parte de la izquierda del menú de Jperf, podremos ver diferentes opciones de configuración que os vamos a explicar:
- Transmit: bytes o segundos. Podremos definir si realizar un test de rendimiento durante 10 segundos, o hasta que se llegue a unos determinados bytes. Nuestra recomendación es usar tiempo, 10 segundos o el tiempo que sea, para comprobar la velocidad media durante este tiempo.
- Output Format: el formato de salida, es recomendable para redes rápidas usar Gbps o Mbps, también se pueden usar GBytes o MBytes para tener la misma unidad que la transferencia de datos en Windows y otros programas.
- Report Interval: cada cuanto tiempo nos va a proporcionar datos en el «Output» que tenemos en la parte inferior.
- Testing Mode: Dual y trade. Estas dos opciones son muy interesantes. Cuando nosotros ejecutamos un iperf «normal», estamos transfiriendo datos desde el cliente hasta el servidor, en sentido subida.
- Dual: realizará el test de subida y a la vez el de descarga, para comprobar el Full-Duplex de la conexión. No usar en combinación con «Trade».
- Trade: realizará primero el test de subida, y una vez que termine, realizará el test de descarga. No se hace la subida y descarga a la vez. No usar en combinación con «Dual».
- Test port: lo dejamos por defecto.
- Representative File: lo dejamos en blanco
- Print MSS: nos mostrará el MSS.
En la parte inferior izquierda, podremos configurar tanto el protocolo TCP como UDP, en principio, no se deberían tocar estos parámetros, a no ser que sepas lo que estás haciendo. Por último, también podremos ver las opciones a nivel de IP, seleccionar el ToS, y hacer bind hacia una dirección IP, y activar la compatibilidad con IPv6.
En la parte central inferior, podremos ver todo el registro de salida del programa, podremos guardarlo, limpiarlo, e incluso limpiar el registro cada vez que ejecutemos un nuevo iperf, ideal para no tener que borrarlo de manera manual.
Jperf también nos da muchas opciones que pueden ser interesante, entre ellas están los comandos, que nos pueden ayudar en muchos aspectos. Estos son sencillos y se pueden ejecutar sin mayor problema. Algunos de ellos son:
- -c: Nos indica que estamos en modo cliente tratando de conectarnos a un host, que será la dirección IP que asignemos.
- -p 1: Indica la cantidad de subprocesos que se están ejecutando.
- -i 1: Se trata de los segundos entre la representación gráfica que realiza el programa y el ancho de banda.
- -p 5001: Con este comando podremos identificar el puerto del servidor en el que el cliente/servidor está escuchando o conectando.
- -f m: Se trata del formato en el que queremos sacar la información. Peden ser desde Kbits hasta Gbits.
- -t 10: Aquí tratamos el tiempo que se tardará en realizar la prueba Jperf, esta medida es en segundos, y por defecto se establecerá en 10.
Y estos son solo algunos de los que más nos pueden ayudar a la hora de usar este software, pero existe una lista muy extensa de ellos. Por lo que esto es únicamente una primera base de todo lo que permite esta herramienta. Tal y como habéis visto, este programa Jperf es muy sencillo porque nos permite ejecutar un Jperf con interfaz gráfica de usuario, sin necesidad de introducir complicados comandos y argumentos.