Para la evaluación de rendimientos en las comunicaciones en nuestra red local y posterior optimización de los parámetros, disponemos de multitud de herramientas multiplataforma. Una de ellas es IPerf.
Con IPerf podemos medir el ancho de banda y rendimiento de una conexión entre dos host. Se trata, pues, de una herramienta cliente-servidor.
NOTA: Ya tenéis la segunda parte de este artículo: Jperf. El frontend gráfico de iperf. Rendimiento de la red.
Actualizado en enlace descarga para Windows.
Podemos descargar Iperf desde aquí. Y para win32 y otras plataformas desde aquí.
Al tratarse de una herramienta cliente-servidor, tendremos que ejecutar Iperf en dos máquinas. Una hará de Servidor y otra de Cliente.
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.
IPerf como cliente.
En la máquina cliente IPerf, de la forma más sencilla lo ejecutamos de esta manera:
>iperf -c 192.168.1.250
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————
Conectamos con el servidor (192.168.1.250) y se envian una serie de paquetes para calcular el ancho de banda en la conexión. El resultado es el siguiente:
>iperf -c 192.168.1.250
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————
[844] local 192.168.1.30 port 3545 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-10.0 sec 113 MBytes 94.8 Mbits/sec
94.8 Mbits/sec en una red a 100 Mbits.
Claramente vemos el rendimiento de la conexión.
Configurando IPerf.
Podemos configurar tanto el cliente como el servidor para personalizar un poco las mediciones.
Como servidor.
A parte de la opción -s que deja a IPref a la escucha, podemos usar:
- -D como servicio
- -R remover servicio
- -u recibir datagramas UDP en vez de TCP por defecto.
- -P x número de conexiones simultáneas
- -m muestra MTU (depende del sistema operativo )
- -w specifica el tamaño de Ventana (TCP window size). Muy útil para ir calculando nuestro tamaño de ventana más óptimo según las mediciones de ancho de banda.
- -f[bkmBKB] mostrar resultados en bits/s, kilobits/s, megabytes/s, Bytes/s, KiloBytes/s, MegaBytes/s (s=segundos). Tanto en cliente como servidor:
>iperf -c 192.168.1.250 -f B
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 64512 Byte (default)
————————————————————
[844] local 192.168.1.30 port 3591 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-10.0 sec 118792192 Bytes 11860687 Bytes/sec
Como cliente.
Lo más básico es –c IP pero podemos establecer otras opciones, las más importantes:
- -f[bkmBKB] (igual que lo comentado como servidor)
- -w (lo mismio que para servidor)
- -m muestra MTU (depende del sistema operativo)
- -T ttl especifica valor TTL
- -i segundos especifica un intervalo, medido en segundos, en el cual se volverá a realizar la medición.
- -t segundos tiempo duración transmisión. Hace más fiable la medida.
>iperf -c 192.168.1.250 -t 60
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————
[844] local 192.168.1.30 port 3670 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-60.0 sec 669 MBytes 93.5 Mbits/sec
- -p especifica puerto en el que escucha el servidor
- -u envio de UDP en vez de TCP por defecto. Podemos medir también pérdida de paquetes:
cliente:
>iperf -c 192.168.1.250 -u -f MB -t 60
————————————————————
Client connecting to 192.168.1.250, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 0.06 MByte (default)
————————————————————
[844] local 192.168.1.30 port 3745 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-60.0 sec 7.50 MBytes 0.12 MBytes/sec
[844] Server Report:
[844] 0.0-60.0 sec 7.06 MBytes 0.12 MBytes/sec 0.000 ms 314/ 5351 (5.9%)
[844] Sent 5351 datagrams
respuesta servidor:
>iperf -s -u -f MB -i1
————————————————————
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 0.01 MByte (default)
————————————————————
[1964] local 192.168.1.250 port 5001 connected with 192.168.1.30 port 3744
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 0.0- 1.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 544436086/ 89 (6.
1e+008%)
[1964] 1.0- 2.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 2.0- 3.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 3.0- 4.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 4.0- 5.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 5.0- 6.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 6.0- 7.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 7.0- 8.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 8.0- 9.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 9.0-10.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 0.0-10.0 sec 1.25 MBytes 0.12 MBytes/sec 0.000 ms 0/ 893 (0%)
[1964] local 192.168.1.250 port 5001 connected with 192.168.1.30 port 3745
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 0.0- 1.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 1.0- 2.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 2.0- 3.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 3.0- 4.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 4.0- 5.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 5.0- 6.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 6.0- 7.0 sec 0.12 MBytes 0.12 MBytes/sec 0.136 ms 0/ 89 (0%)
[1964] 7.0- 8.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 8.0- 9.0 sec 0.12 MBytes 0.12 MBytes/sec 0.020 ms 0/ 89 (0%)
[1964] 9.0-10.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 10.0-11.0 sec 0.12 MBytes 0.12 MBytes/sec 0.062 ms 0/ 89 (0%)
[1964] 11.0-12.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 12.0-13.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 13.0-14.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 14.0-15.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 15.0-16.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 16.0-17.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 17.0-18.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 18.0-19.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 19.0-20.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 20.0-21.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 21.0-22.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 22.0-23.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 23.0-24.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 24.0-25.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 25.0-26.0 sec 0.12 MBytes 0.12 MBytes/sec 1.108 ms 0/ 89 (0%)
[1964] 26.0-27.0 sec 0.12 MBytes 0.12 MBytes/sec 0.004 ms 0/ 89 (0%)
[1964] 27.0-28.0 sec 0.13 MBytes 0.13 MBytes/sec 0.840 ms 0/ 90 (0%)
[1964] 28.0-29.0 sec 0.12 MBytes 0.12 MBytes/sec 0.003 ms 0/ 89 (0%)
[1964] 29.0-30.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 30.0-31.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 31.0-32.0 sec 0.12 MBytes 0.12 MBytes/sec 1.986 ms 0/ 89 (0%)
[1964] 32.0-33.0 sec 0.12 MBytes 0.12 MBytes/sec 0.006 ms 0/ 89 (0%)
[1964] 33.0-34.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 34.0-35.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 35.0-36.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 36.0-37.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 37.0-38.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 38.0-39.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 39.0-40.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 40.0-41.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 41.0-42.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 42.0-43.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 43.0-44.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 44.0-45.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 45.0-46.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 46.0-47.0 sec 0.00 MBytes 0.00 MBytes/sec 0.000 ms 0/ 1 (0%)
[1964] 47.0-48.0 sec 0.00 MBytes 0.00 MBytes/sec 0.000 ms 0/ 0 (-1.$%)
[1964] 48.0-49.0 sec 0.00 MBytes 0.00 MBytes/sec 0.000 ms 0/ 0 (-1.$%)
[1964] 49.0-50.0 sec 0.11 MBytes 0.11 MBytes/sec 3.386 ms 277/ 355 (78%)
[1964] 50.0-51.0 sec 0.12 MBytes 0.12 MBytes/sec 0.011 ms 0/ 89 (0%)
[1964] 51.0-52.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 52.0-53.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 53.0-54.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 54.0-55.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 55.0-56.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 56.0-57.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 57.0-58.0 sec 0.07 MBytes 0.07 MBytes/sec 2.658 ms 37/ 90 (41%)
[1964] 58.0-59.0 sec 0.12 MBytes 0.12 MBytes/sec 0.009 ms 0/ 89 (0%)
[1964] 0.0-60.0 sec 7.06 MBytes 0.12 MBytes/sec 0.000 ms 314/ 5351 (5.9%)
Esta bién, pero es una pena que no se puedan hacer medidas de rendimiento con VLAN’s
Hola Alfon, soy albert me gustaria que me informaras sobre el funcionamiento del VNC esk vi en un foro que tu sabes bastante bien su funcionamiento por lo que acudi a ti, me harias un gran favor si me enviaras un correo o nos comunicaramos via internet
Hola Alfon, soy albert me gustaria que me informaras sobre el funcionamiento del VNC esk vi en un foro que tu sabes bastante bien su funcionamiento por lo que acudi a ti, me harias un gran favor si me enviaras un correo o nos comunicaramos via internet
Estimado Alfon
Muy interesante.
Consulta, como logras en una conexión Host a Host Win XP con cable crossover mediciones de Throughput de mas de 90Mbps?, yo he llegado a 75Mbps y no logro llegar a mas, he forzado a 100 Full y e modificado los registros en base a sugerencias tomadas de algunos foros de Internet.
Te agradeceré respuesta dentro de lo posible
Victor
Muchas gracias por la info
Pues no se que pasa, tengo el WDTV y un iMac, cable de red por toda la casa. El adaptado usb/ethernet es el APL y no consigo ir mas allá de 19 o 20 … por lo tanto tengo problemas con las 1080p.
Ayuda por favor …
magustaria conocer mas sobre iperf
Estimado javier cantillo.
Estoy preparando un artículo sobre Jperf. Iperf con interface gráfica. Añadiendo algunas explicaciones más sobre el uso de Iperf (que es en el que se basa Jperf)
Saludos,
Quisiera obtener más información de como puedo tilizar el iperf para medir anchos de banda, ¿como lo descargo?, ¿como lo instalo?, ¿como lo ejecuto?, estoy en pañales en esto y tengo actividades derealizar pruebas en accesos de banda ancha.
Saludos…
Edgardo,
Revisa el post porque todo lo tienes ahí. Respecto a la descarga de iperf (windows), tengo que actualizar el enlace que ahora es:
Iperf para windows.
Se trata de un .exe sin complicación para instalar.
El como usarlo lo tienes donde dice:
IPerf como servidor.
IPerf como cliente.
Cualquier cosa aquí estoy y te saco de dudas.
Saludos,
hola q tal.! probe el iperf en mi red, y me dio los estos resultados:
interval 0.0-10.0 sec
transfer 3.13MB
bandwidth 2-62MB/sec
quisiera q me ayudaran a interpretar este resultado Gracias.
Buenas,
Muy buen artículo. Me ha servido para utilizar iperf en 30 segundos (de modo básico pero en 30 segundos). Genial.
Gracias.
Hola,,, quisiera hacerte un comentario.. Tal y como indicas se trata de una herramienta cliente-servidor, por lo que se me plantea una duda….
¿Y si no tienes gestion directa ni remota de uno de los extremos? ¿Existe alguna manera para poder inundar el caudal de un enlace?
Yo uso otro programita llamado BWping que no usa TCP (tramas) sino IP (paquetes) y usa para ello trafico ICMP (ping), pero el problema es que requiere de un cliente linux para poder usarse… Desconozco si existe algo similar (inundar trafico de un enlace solo en un extreemo, que permita conocer el caudal maximo de un enlace y que funcione en sistemas Windows…
¿Conoces tu alguno?
Saludos,
Pingback: LABORATORIO 1 | Telemática 2014-II
Reblogueó esto en ¡Routing and Switching 1841!y comentado:
Iperf
Hola a todos.
Cuando ejecuto en modo servidor, sólo me aparece esto
>iperf -s
————————————————————
Server listening on TCP port 5001
HABRÁ algun problema con la version del iperf????