Mi Blog
Cómo medir el ancho de banda entre dos ordenadores

Cómo medir el ancho de banda entre dos ordenadores

(5 votos)

Realizar pruebas de rendimiento de red entre dos equipos conectados entre si en una LAN ó a través de Internet, es una de las primeras pruebas que realiza un SysAdmin a la hora de descubrir el por qué de la lenta velocidad entre los equipos. Existen multitud de herramientas en el mercado, pero voy a enseñaros a utilizar una de las mas famosas que se usa en entornos tanto personales como en grandes compañías de IT y por supuesto Software Libre. La herramienta se llama iPerf y existe un GUI creado en Java llamado Jperf que aporta algunas ventajas como por ejemplo, gráficas en tiempo real o poder hacer todo el proceso con un sencillo "click". Jperf usa Iperf como "core", por tanto JPerf es solamente un GUI (Graphical User Interface). Vamos allá!

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUE ES EL BANDWIDTH?

En las redes informáticas, el ancho de banda a menudo se utiliza como sinónimo para la tasa de transferencia de datos -la cantidad de datos que se puedan llevar de un punto a otro en un período dado- (generalmente un segundo). Esta ancho de banda se expresa -generalmente- en bits (de datos) por segundo (bps). Una red Ethernet funciona a 10.000.000 (10Mbits), las redes Fast Ethernet a 100.000.000 (100Mbps) y las nuevas tarjetas Gigabit admiten hasta 1.000.000.000 (1Gbps). Existen velocidades superiores gracias a la tecnología de fibra óptica en lugar de eléctrica que llegan hasta los 10.000.000.000 (10Gbps).

Debemos recordar que una comunicación consiste -generalmente- en una sucesión de conexiones, cada una con su propio ancho de banda. Si una de éstas conexiones es mucho más lenta que el resto actuará como cuello de botella (bottleneck) en la comunicación. Puede deberse a que la red no es lo suficientemente rápida o que tenemos un problema en uno de los extremos o en el canal de transmisión.

 

 

1.- ELEMENTOS USADOS EN ESTE TUTORIAL

  • Windows 7 64 bits + JPerf + Iperf
  • Raspbian en RaspberryPi + Iperf

 

 

2.- DESCARGA E INSTALACIÓN DE IPERF y JPERF

JPERF no necesita instalación en Windows, por lo tanto, basta con descargarlo y ejecutarlo. Al ser un programa desarrollado en JAVA, necesitamos tener JAVA instalado en nuestro Windows. Para descargar JPERF, iremos a la siguiente página https://code.google.com/archive/p/xjperf/ y descargaremos la última versión, Jperf 2.0.2.

Para instalar IPerf en el equipo GNU/Linux con Raspbian (Debian), ejecutaremos como root o con un usuario con privilegios el siguiente comando:

root@localhost# apt-get update && apt-get install iperf

Como se puede comprobar, la instalación en ambos sistemas es sumamente sencilla.

3.- COMO USAR IPERF Y JPERF

Iperf funciona en modo cliente-servidor, por lo tanto necesitamos arrancar Iperf en modo servidor en uno de los extremos y atacar en modo cliente desde el otro nodo. Para este tutorial, he usado el modo servidor en el equipo con GNU/Linux en una RaspberryPi conectada por Wifi 802.11n en 2.4 GHz y a 150mbps.

En el siguiente ejemplo se puede ver el estado de mi coneción Wi-Fi. Ese paso es solo a nivel informativo.

root@raspberrypi:/home/pi# iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:"MI-RED" Nickname:""
Mode:Managed Frequency:2.452 GHz Access Point: 2C:30:33:XX:XX:XX
Bit Rate:150 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:****-****-****-****-****-****-****-**** Security mode:open
Power Management:off
Link Quality=100/100 Signal level=64/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Para arrancar Iperf en dicho equipo con GNU/Linux ejecutaremos el siguiente comando como root:

root@raspberrypi:/home/pi# iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)

De esta forma el servidor está en modo escucha en el puerto 5001 TCP. Ahora lo que haremos será arrancar JPerf en el equipo con Windows. Debemos descomprimir el fichero de Jperf y ejecutar el archivo bat "jperf.bat":

IperfArrancar Jperf

Si todo ha ido bien, veremos una pantalla como la que se muestra a continuación:

IperfPantalla principal JPerf

La configuración mas sencilla de Jperf consta de Server Address donde introduciremos la IP del Servidor, el Port introduciremos el puerto ( por defecto 5001 ) y activaremos el modo TCP ó UDP en función del que queremos probar. Por defecto se hacen todas las pruebas en TCP. En el siguiente ejemplo se ve una prueba desde un PC conectado por Wifi N 2.4Ghz contra una RaspberryPi en 802.11N 2.4Ghz.

IperfPrimera prueba TCP

En la parte del servidor también podemos ir viendo las velocidades de las pruebas en tiempo real:

root@raspberrypi:/home/pi# iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 172.27.1.112 port 5001 connected with 172.27.1.111 port 52623
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 1.75 MBytes 14.7 Mbits/sec
[ 4] 1.0- 2.0 sec 1.79 MBytes 15.0 Mbits/sec
[ 4] 2.0- 3.0 sec 1.75 MBytes 14.7 Mbits/sec
[ 4] 3.0- 4.0 sec 1.82 MBytes 15.2 Mbits/sec
[ 4] 4.0- 5.0 sec 1.57 MBytes 13.2 Mbits/sec
[ 4] 5.0- 6.0 sec 1.86 MBytes 15.6 Mbits/sec
[ 4] 6.0- 7.0 sec 1.80 MBytes 15.1 Mbits/sec
[ 4] 7.0- 8.0 sec 1.81 MBytes 15.2 Mbits/sec
[ 4] 8.0- 9.0 sec 1.81 MBytes 15.2 Mbits/sec
[ 4] 9.0-10.0 sec 1.88 MBytes 15.7 Mbits/sec
[ 4] 10.0-11.0 sec 1.90 MBytes 15.9 Mbits/sec
[ 4] 11.0-12.0 sec 1.78 MBytes 14.9 Mbits/sec
[ 4] 12.0-13.0 sec 1.56 MBytes 13.1 Mbits/sec
[ 4] 13.0-14.0 sec 1.90 MBytes 15.9 Mbits/sec
[ 4] 14.0-15.0 sec 1.64 MBytes 13.8 Mbits/sec
[ 4] 15.0-16.0 sec 1.53 MBytes 12.9 Mbits/sec
[ 4] 16.0-17.0 sec 1.85 MBytes 15.5 Mbits/sec
[ 4] 17.0-18.0 sec 1.84 MBytes 15.5 Mbits/sec
[ 4] 18.0-19.0 sec 1.64 MBytes 13.7 Mbits/sec
[ 4] 19.0-20.0 sec 1.75 MBytes 14.7 Mbits/sec
[ 4] 20.0-21.0 sec 1.74 MBytes 14.6 Mbits/sec
[ 4] 21.0-22.0 sec 1.53 MBytes 12.9 Mbits/sec
[ 4] 22.0-23.0 sec 1.89 MBytes 15.8 Mbits/sec
[ 4] 23.0-24.0 sec 1.71 MBytes 14.4 Mbits/sec
[ 4] 24.0-25.0 sec 1.74 MBytes 14.6 Mbits/sec
[ 4] 25.0-26.0 sec 1.73 MBytes 14.5 Mbits/sec
[ 4] 26.0-27.0 sec 1.77 MBytes 14.8 Mbits/sec
[ 4] 27.0-28.0 sec 1.70 MBytes 14.3 Mbits/sec
[ 4] 28.0-29.0 sec 1.61 MBytes 13.5 Mbits/sec
[ 4] 29.0-30.0 sec 1.59 MBytes 13.3 Mbits/sec
[ 4] 0.0-30.0 sec 52.2 MBytes 14.6 Mbits/sec

Podemos realizar muchas pruebas, tanto en TCP como UDP, cambiar el tamaño de ventana, el buffer TCP y UDP, el tiempo de la prueba etc ... En la siguiente captura se ve la misma prueba realizada en UDP, indicando un Bandwidth máximo de 70Mbps y durante 30 segundos:

IperfPrueba UDP con Iperf

Para la prueba UDP, en el servidor se ve exactamente lo mismo pero en modo texto:

root@raspberrypi:/home/pi# iperf -s -u -i 1 
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 172.27.1.112 port 5001 connected with 172.27.1.111 port 58861
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 1.59 MBytes 13.4 Mbits/sec 1.456 ms 0/ 1136 (0%)
[ 3] 1.0- 2.0 sec 1.59 MBytes 13.4 Mbits/sec 1.218 ms 0/ 1136 (0%)
[ 3] 2.0- 3.0 sec 1.58 MBytes 13.3 Mbits/sec 1.171 ms 0/ 1130 (0%)
[ 3] 3.0- 4.0 sec 1.73 MBytes 14.5 Mbits/sec 1.180 ms 0/ 1232 (0%)
[ 3] 4.0- 5.0 sec 1.78 MBytes 14.9 Mbits/sec 1.130 ms 0/ 1267 (0%)
[ 3] 5.0- 6.0 sec 1.69 MBytes 14.2 Mbits/sec 1.103 ms 0/ 1208 (0%)
[ 3] 6.0- 7.0 sec 1.67 MBytes 14.0 Mbits/sec 1.242 ms 0/ 1194 (0%)
[ 3] 7.0- 8.0 sec 1.60 MBytes 13.5 Mbits/sec 1.470 ms 0/ 1144 (0%)
[ 3] 8.0- 9.0 sec 1.70 MBytes 14.3 Mbits/sec 1.089 ms 0/ 1216 (0%)
[ 3] 9.0-10.0 sec 1.59 MBytes 13.3 Mbits/sec 1.123 ms 0/ 1133 (0%)
[ 3] 10.0-11.0 sec 1.51 MBytes 12.6 Mbits/sec 1.277 ms 0/ 1075 (0%)
[ 3] 11.0-12.0 sec 1.61 MBytes 13.5 Mbits/sec 1.510 ms 0/ 1149 (0%)
[ 3] 12.0-13.0 sec 1.62 MBytes 13.6 Mbits/sec 1.092 ms 0/ 1155 (0%)
[ 3] 13.0-14.0 sec 1.64 MBytes 13.8 Mbits/sec 1.033 ms 0/ 1173 (0%)
[ 3] 14.0-15.0 sec 1.65 MBytes 13.9 Mbits/sec 1.100 ms 0/ 1178 (0%)
[ 3] 15.0-16.0 sec 1.65 MBytes 13.8 Mbits/sec 1.011 ms 0/ 1177 (0%)
[ 3] 16.0-17.0 sec 1.73 MBytes 14.5 Mbits/sec 1.325 ms 0/ 1232 (0%)
[ 3] 17.0-18.0 sec 1.66 MBytes 13.9 Mbits/sec 0.933 ms 0/ 1184 (0%)
[ 3] 18.0-19.0 sec 1.61 MBytes 13.5 Mbits/sec 1.087 ms 0/ 1150 (0%)
[ 3] 19.0-20.0 sec 1.73 MBytes 14.5 Mbits/sec 0.995 ms 0/ 1233 (0%)
[ 3] 20.0-21.0 sec 1.63 MBytes 13.7 Mbits/sec 1.328 ms 0/ 1166 (0%)
[ 3] 21.0-22.0 sec 1.44 MBytes 12.1 Mbits/sec 1.432 ms 0/ 1027 (0%)
[ 3] 22.0-23.0 sec 1.28 MBytes 10.7 Mbits/sec 1.259 ms 0/ 912 (0%)
[ 3] 23.0-24.0 sec 1.52 MBytes 12.7 Mbits/sec 1.030 ms 0/ 1082 (0%)
[ 3] 24.0-25.0 sec 1.59 MBytes 13.3 Mbits/sec 1.612 ms 0/ 1135 (0%)
[ 3] 25.0-26.0 sec 1.49 MBytes 12.5 Mbits/sec 1.025 ms 0/ 1063 (0%)
[ 3] 26.0-27.0 sec 1.63 MBytes 13.7 Mbits/sec 1.161 ms 0/ 1161 (0%)
[ 3] 27.0-28.0 sec 1.61 MBytes 13.5 Mbits/sec 1.342 ms 0/ 1151 (0%)
[ 3] 28.0-29.0 sec 1.63 MBytes 13.7 Mbits/sec 1.076 ms 0/ 1164 (0%)
[ 3] 29.0-30.0 sec 1.64 MBytes 13.7 Mbits/sec 1.180 ms 0/ 1169 (0%)
[ 3] 0.0-30.0 sec 48.4 MBytes 13.5 Mbits/sec 1.449 ms 0/34535 (0%)

 

 

4.- TUNNING DE LA RED

Iperf sirve para comprobar el estado de nuestra red y ver si podemos cambiar algunos de los parámetros de red e incrementar nuestro rendimiento. Por ejemplo, en mi red Wifi cambiando el tamaño de ventana a 1500KB en el lado del cliente el rendimiento Wifi es del doble:

root@raspberrypi:/home/pi# iperf -s -i 1         
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 172.27.1.112 port 5001 connected with 172.27.1.111 port 52637
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 4.50 MBytes 37.7 Mbits/sec
[ 4] 1.0- 2.0 sec 4.34 MBytes 36.4 Mbits/sec
[ 4] 2.0- 3.0 sec 5.08 MBytes 42.6 Mbits/sec
[ 4] 3.0- 4.0 sec 5.03 MBytes 42.2 Mbits/sec
[ 4] 4.0- 5.0 sec 4.88 MBytes 41.0 Mbits/sec
[ 4] 5.0- 6.0 sec 5.05 MBytes 42.4 Mbits/sec
[ 4] 6.0- 7.0 sec 4.27 MBytes 35.8 Mbits/sec
[ 4] 7.0- 8.0 sec 5.02 MBytes 42.1 Mbits/sec
[ 4] 8.0- 9.0 sec 4.76 MBytes 40.0 Mbits/sec
[ 4] 9.0-10.0 sec 4.62 MBytes 38.8 Mbits/sec
[ 4] 10.0-11.0 sec 4.71 MBytes 39.5 Mbits/sec
[ 4] 11.0-12.0 sec 4.60 MBytes 38.6 Mbits/sec
[ 4] 12.0-13.0 sec 5.24 MBytes 43.9 Mbits/sec
[ 4] 13.0-14.0 sec 4.80 MBytes 40.3 Mbits/sec
[ 4] 14.0-15.0 sec 4.25 MBytes 35.7 Mbits/sec
[ 4] 15.0-16.0 sec 4.14 MBytes 34.7 Mbits/sec
[ 4] 16.0-17.0 sec 5.04 MBytes 42.3 Mbits/sec
[ 4] 17.0-18.0 sec 4.94 MBytes 41.4 Mbits/sec
[ 4] 18.0-19.0 sec 5.42 MBytes 45.5 Mbits/sec
[ 4] 19.0-20.0 sec 4.58 MBytes 38.5 Mbits/sec
[ 4] 20.0-21.0 sec 4.80 MBytes 40.2 Mbits/sec
[ 4] 21.0-22.0 sec 4.52 MBytes 37.9 Mbits/sec
[ 4] 22.0-23.0 sec 4.29 MBytes 36.0 Mbits/sec
[ 4] 23.0-24.0 sec 4.44 MBytes 37.2 Mbits/sec
[ 4] 24.0-25.0 sec 4.52 MBytes 37.9 Mbits/sec
[ 4] 25.0-26.0 sec 4.87 MBytes 40.8 Mbits/sec
[ 4] 26.0-27.0 sec 4.92 MBytes 41.3 Mbits/sec
[ 4] 27.0-28.0 sec 4.54 MBytes 38.1 Mbits/sec
[ 4] 28.0-29.0 sec 4.52 MBytes 37.9 Mbits/sec
[ 4] 29.0-30.0 sec 4.32 MBytes 36.2 Mbits/sec
[ 4] 0.0-30.3 sec 142 MBytes 39.4 Mbits/sec

Ahora solo os queda probar en vuestra red y mirar la ayuda de Iperf para conocer todas las opciones que tiene ;) iperf --help ó aquí: https://iperf.fr/iperf-doc.php

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!