Zamora|León|Oviedo, España

BLOG

✔ Cómo medir el ancho de banda entre dos ordenadores

✔ Cómo medir el ancho de banda entre dos ordenadores

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á!

 

¿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:"<WIFI@REALTEK>"
          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%)

 

 

04.- 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!

 


Raúl Prieto Fernández

Sitio Web: www.raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar

Acerca de mi

Soy Ingeniero Téc. Industrial Mecánico y Administrador de Sistemas Informáticos.

Contactar conmigo

Dirección: León, España
E-Mail: raul.lnx@gmail.com
Web: http://www.raulprietofernandez.net
Skype: raul.lnx



Follow Me - Instagram

Apúntate Gratis

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

¡Muy Pronto!