Administra tu Blog

¡Crea tu Blog Ya! Fácil y Gratis

IPerf. Midiendo ancho de banda entre dos hosts.

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.

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%)



Tags:
MeneameMeneame | del.icio.us

Comentarios(8) »

  1. Pol — 08-01-2009 - 07:31:39 GMT 1

    Esta bién, pero es una pena que no se puedan hacer medidas de rendimiento con VLAN's

  2. Albert — 19-01-2009 - 18:36:25 GMT 1

    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

  3. Albert — 19-01-2009 - 18:36:26 GMT 1

    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

  4. Victor Gonzalez Rojas — 19-04-2009 - 23:51:23 GMT 1

    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

  5. Federico — 10-05-2009 - 17:30:34 GMT 1

    Muchas gracias por la info

  6. Miguel — 06-07-2009 - 19:07:55 GMT 1

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

  7. javier cantillo — 19-10-2009 - 20:29:26 GMT 1

    magustaria conocer mas sobre iperf

  8. Alfon — 21-10-2009 - 11:18:55 GMT 1

    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,

TrackBack URI

Dejar un Comentario


<a href> <em> <blockquote> <strong> <cite> <code> <ul> <li> <dl> <dt> <dd>