Está en la página 1de 12

12/9/21 23:24 IPERF - The Easy Tutorial

Networking Iperf

Last Update: Aug 04 2011

Spanish translation by Bernardo B, Mejia Huerta.

⚠️⚠️⚠️
Please check our page about COVID-19!!
100 Questions and answers about Coronavirus.

⚠️⚠️⚠️
Merci de consulter notre page sur la COVID-19 !!
227 questions et réponses sur le Coronavirus.

Iperf
es una herramienta para medir el ancho de banda y la calidad de un enlace de red. Jperf puede ser
asociado con Iperf para tener una interfaz gráfica escrita en Java.

El enlace a examinar está delimitado por dos clientes ejecutando Iperf.

La calidad de un enlace puede ser examinado bajo las siguientes métricas:


- Latencia (tiempo de respuesta o RTT): puede medirse usando en comando Ping.
- Jitter (variación en la latencia): puede medirse con Iperf ejecutando una prueba con UDP.
- Perdida de datagramas: puede medirse con Iperf ejecutando una prueba con UDP.

El ancho de banda es medido mediante pruebas con TCP.

La diferencia entre TCP (Protocolo de Control de Transmisión) y UDP (Protocolo de Datagramas de


Usuario) es que TCP utiliza procesos para verificar que los paquetes sean enviados correctamente al
receptor mientras que con UDP los paquetes son enviados sin realizar verificaciones pero con la ventaja de
ser más veloz que TCP.
Iperf utiliza las diferentes capacidades de TCP y UDP para proveer datos estadísticos acerca de los enlaces
de red.

Finalmente, Iperf puede ser instalado muy fácilmente en cualquier sistema basado en UNIX/Linux o
Microsoft Windows. Un cliente debe tener la función de cliente y otro la de servidor.

A continuación se muestra un diagrama donde Iperf está instalado en dos computadoras, una ejecutando
Linux y la otra Microsoft Windows.
La computadora con Linux es usada como cliente en Iperf y la que ejecuta Windows es el servidor,
también es posible usar dos computadoras con Windows o dos con Linux.

Iperf tests:

-p, -t, -i
Puerto, temporización e intervalo
no Configuración por default -u, -b
Análisis UDP, configuración de ancho de
arg.
Formato de los datos
banda
-b
Ancho de banda bidireccional -m
Visualización del máximo tamaño de
-r
Ancho de banda bidireccional
segmento
-d
simultaneo -M
Ajustes al máximo tamaño de segmento
-w
Tamaño de la ventana de TCP
Análisis en paralelo
    -P
Ayuda
-h

Jperf:

no arg.
Configuración por Default

https://openmaniak.com/es/iperf.php 1/12
12/9/21 23:24 IPERF - The Easy Tutorial
-d
Ancho de banda bidireccional simultaneo
-u, -b Análisis por UDP, ajustes de ancho de bandas

Configuración por Default en Iperf:


Ver también la sección de "Jperf" section.

Por default, en Iperf el cliente se conecta al servidor en el Puerto TCP 5001 y el ancho de banda mostrado
por Iperf es el ancho de banda del cliente al servidor.

Si se desea utilizar análisis basado en UDP, es necesario especificar el argumento –u.


Los argumentos –d y –r miden los anchos de banda bidireccionales.

Cliente:

#iperf -c 10.1.1.1

------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16384 Byte (default)
------------------------------------------------------------
[ 3] local 10.6.2.5 port 33453 connected with 10.1.1.1 port 5001
[ 3]   0.0-10.2 sec   1.26 MBytes   1.05 Mbits/sec

Servidor:

#iperf -s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[852] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 33453

[ ID]   Interval          Transfer       Bandwidth

[852]   0.0-10.6 sec   1.26 MBytes   1.03 Mbits/sec

Formato de datos: (argumento -f)

El argumento –f sirve para mostrar los resultados en el format deseado: bits(b), bytes(B), kilobits(k),
kilobytes(K), megabits(m), megabytes(M), gigabits(g) or gigabytes(G).

Generalmente las mediciones del ancho de banda son mostradas en bits (o Kilobits, etc…) y la cantidad de
datos se muestra en bytes (o Kilobytes, etc…).

Como recordatorio, 1 byte es igual a 8 bits y en las ciencias de la computación, 1 kilo es igual a 1024
(2^10).
Por ejemplo: 100,000,000 bytes no son lo mismo que 100 Mbytes, en realidad son 100,000,000/1024 =
95.37 Mbytes.

Cliente:

#iperf -c 10.1.1.1 -f b

------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16384 Byte (default)
------------------------------------------------------------
[ 3] local 10.6.2.5 port 54953 connected with 10.1.1.1 port 5001
[ 3]   0.0-10.2 sec   1359872 Bytes   1064272 bits/sec

Servidor:

#iperf -s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[852] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 33453

[ ID]   Interval          Transfer       Bandwidth

[852]   0.0-10.6 sec   920 KBytes   711 Kbits/sec

Inicio de la página

Medición del ancho de banda bidireccional (argumento –r)

En un análisis por default solo se mide el ancho de banda en la dirección del cliente al servidor. En la
medición bidireccional, el servidor se conecta de vuelta con el cliente permitiendo la medición bidireccional
del ancho de banda.
https://openmaniak.com/es/iperf.php 2/12
12/9/21 23:24 IPERF - The Easy Tutorial
Si se desea realizar la medición del ancho de banda en ambas direcciones simultáneamente, se utiliza el
argumento –d.

Cliente:

#iperf -c 10.1.1.1 -r

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 5] local 10.6.2.5 port 35726 connected with 10.1.1.1 port 5001
[ 5]   0.0-10.0 sec   1.12 MBytes   936 Kbits/sec

[ 4] local 10.6.2.5 port 5001 connected with 10.1.1.1 port 1640


[ 4]   0.0-10.1 sec   74.2 MBytes   61.7 Mbits/sec

Servidor:

#iperf -s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[852] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 54355

[ ID]   Interval          Transfer        Bandwidth

[852]   0.0-10.1 sec   1.15 MBytes   956 Kbits/sec

------------------------------------------------------------

Client connecting to 10.6.2.5, TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[824] local 10.1.1.1 port 1646 connected with 10.6.2.5 port 5001

[ ID]   Interval          Transfer        Bandwidth

[824]   0.0-10.0 sec   73.3 MBytes   61.4 Mbits/sec

Inicio de la página

Medición simultanea del ancho de banda en ambas direcciones (argumento -d)


Revisar también la sección de "Jperf".

Para medir el ancho de banda en ambas direcciones, se utiliza el argumento –d. Si se desea analizar el
ancho de banda en forma secuencial, se usa el argumento –r (ver análisis previo).

Por default, i.e., sin los argumentos –r o –d, solo se mide el ancho de banda del cliente al servidor.

Cliente:

#iperf -c 10.1.1.1 -d

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

------------------------------------------------------------

------------------------------------------------------------

Client connecting to 10.1.1.1, TCP port 5001

TCP window size: 16.0 KByte (default)

------------------------------------------------------------

[ 5] local 10.6.2.5 port 60270 connected with 10.1.1.1 port 5001

[ 4] local 10.6.2.5 port 5001 connected with 10.1.1.1 port 2643

[ 4] 0.0-10.0 sec 76.3 MBytes 63.9 Mbits/sec

[ 5] 0.0-10.1 sec 1.55 MBytes 1.29 Mbits/sec

Servidor:

#iperf -s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[852] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 60270

------------------------------------------------------------

Client connecting to 10.6.2.5, TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[800] local 10.1.1.1 port 2643 connected with 10.6.2.5 port 5001

https://openmaniak.com/es/iperf.php 3/12
12/9/21 23:24 IPERF - The Easy Tutorial
[ ID]   Interval          Transfer       Bandwidth

[800]   0.0-10.0 sec   76.3 MBytes   63.9 Mbits/sec

[852]   0.0-10.1 sec   1.55 MBytes   1.29 Mbits/sec

Inicio de la página

Tamaño de la ventana TCP: (argumento -w)

El tamaño de la ventana TCP es la cantidad de datos que pueden ser almacenados en el buffer durante
una conexión sin la validación por parte del receptor.
El tamaño se encuentra dentro del rango de 2 a 65,535 bytes.
En los sitemas Linux, cuando se especifica un tamaño de ventana con el argumento –w, el kernel reserva
el doble de lo indicado.

Cliente:

#iperf -c 10.1.1.1 -w 2000

WARNING: TCP window size set to 2000 bytes. A small window size

will give poor performance. See the Iperf documentation.

------------------------------------------------------------

Client connecting to 10.1.1.1, TCP port 5001

TCP window size: 3.91 KByte (WARNING: requested 1.95 KByte)

------------------------------------------------------------

[ 3] local 10.6.2.5 port 51400 connected with 10.1.1.1 port 5001

[ 3]   0.0-10.1 sec   704 KBytes   572 Kbits/sec

Servidor:

#iperf -s -w 4000

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 3.91 KByte

------------------------------------------------------------

[852] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 51400

[ ID]   Interval          Transfer       Bandwidth

[852]   0.0-10.1 sec   704 KBytes   570 Kbits/sec

Inicio de la página

Puerto de comunicación (-p), temporización (-t) e intervaloCommunication (-i):

El puerto de comunicación puede ser cambiado con el argumento –p, este debe estar configurado tanto en
el cliente como en el servidor y debe ser el mismo valor, el puerto TCP por default es el 5001.

El argumento –t especifica la duración del análisis en segundos, el default es 10 segundos.

El argumento –i indica el intervalo entre reportes de ancho de banda en segundos.

Cliente:

#iperf -c 10.1.1.1 -p 12000 -t 20 -i 2

------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 12000

TCP window size: 16.0 KByte (default)


------------------------------------------------------------
[ 3] local 10.6.2.5 port 58316 connected with 10.1.1.1 port 12000

[ 3]    0.0- 2.0 sec    224 KBytes    918 Kbits/sec


[ 3]    2.0- 4.0 sec    368 KBytes    1.51 Mbits/sec
[ 3]    4.0- 6.0 sec    704 KBytes    2.88 Mbits/sec
[ 3]    6.0- 8.0 sec    280 KBytes    1.15 Mbits/sec
[ 3]    8.0-10.0 sec    208 KBytes    852 Kbits/sec
[ 3]   10.0-12.0 sec   344 KBytes    1.41 Mbits/sec
[ 3]   12.0-14.0 sec   208 KBytes    852 Kbits/sec
[ 3]   14.0-16.0 sec   232 KBytes    950 Kbits/sec
[ 3]   16.0-18.0 sec   232 KBytes    950 Kbits/sec
[ 3]   18.0-20.0 sec   264 KBytes    1.08 Mbits/sec
[ 3]    0.0-20.1 sec   3.00 MBytes   1.25 Mbits/sec

Servidor:

#iperf -s -p 12000

------------------------------------------------------------

Server listening on TCP port 12000

https://openmaniak.com/es/iperf.php 4/12
12/9/21 23:24 IPERF - The Easy Tutorial
TCP window size: 8.00 KByte (default)

------------------------------------------------------------

[852] local 10.1.1.1 port 12000 connected with 10.6.2.5 port 58316

[ ID] Interval Transfer Bandwidth

[852]   0.0-20.1 sec   3.00 MBytes   1.25 Mbits/sec

Inicio de la página

Pruebas con UDP: (-u), ajustes de ancho de banda (-b)


Revisar también la sección de "Jperf".

Las pruebas utilizando UDP se realizan con el argumento –u, estas pruebas proporcionan información
importante sobre el jitter y pérdida de paquetes. Si no se especifica el argumento –u, Iperf utiliza TCP.
Para mantener una buena calidad en el enlace, la pérdida de paquetes no debe ser mayor a 1%. Una taza
de pérdida de paquetes alta generará muchas retransmisiones de segmentos TCP, lo cual afectará el ancho
de banda.

El jitter es básicamente la variación de la latencia y no depende de la latencia. Se puede tener un tiempo


de respuesta grande y un jitter muy bajo. El valor del jitter es particularmente importante
en enlaces que
son usados para voz sobre IP (VoIP) debido a que un jitter alto puede cortar la llamada.
El argumento –b permite utilizar el ancho de banda deseado.

Cliente:

#iperf -c 10.1.1.1 -u -b 10m

------------------------------------------------------------
Client connecting to 10.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 108 KByte (default)
------------------------------------------------------------
[ 3] local 10.6.2.5 port 32781 connected with 10.1.1.1 port 5001
[ 3]   0.0-10.0 sec   11.8 MBytes   9.89 Mbits/sec
[ 3] Sent 8409 datagrams
[ 3] Server Report:
[ 3]   0.0-10.0 sec   11.8 MBytes   9.86 Mbits/sec   2.617 ms   9/ 8409   (0.11%)

Servidor:

#iperf -s -u -i 1

------------------------------------------------------------

Server listening on UDP port 5001

Receiving 1470 byte datagrams

UDP buffer size: 8.00 KByte (default)

------------------------------------------------------------

[904] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 32781

[ ID]   Interval         Transfer        Bandwidth         Jitter        Lost/Total Datagrams

[904]   0.0- 1.0 sec   1.17 MBytes   9.84 Mbits/sec   1.830 ms   0/ 837   (0%)

[904]   1.0- 2.0 sec   1.18 MBytes   9.94 Mbits/sec   1.846 ms   5/ 850   (0.59%)

[904]   2.0- 3.0 sec   1.19 MBytes   9.98 Mbits/sec   1.802 ms   2/ 851   (0.24%)

[904]   3.0- 4.0 sec   1.19 MBytes   10.0 Mbits/sec   1.830 ms   0/ 850   (0%)

[904]   4.0- 5.0 sec   1.19 MBytes   9.98 Mbits/sec   1.846 ms   1/ 850   (0.12%)

[904]   5.0- 6.0 sec   1.19 MBytes   10.0 Mbits/sec   1.806 ms   0/ 851   (0%)

[904]   6.0- 7.0 sec   1.06 MBytes   8.87 Mbits/sec   1.803 ms   1/ 755   (0.13%)

[904]   7.0- 8.0 sec   1.19 MBytes   10.0 Mbits/sec   1.831 ms   0/ 850   (0%)

[904]   8.0- 9.0 sec   1.19 MBytes   10.0 Mbits/sec   1.841 ms   0/ 850   (0%)

[904]   9.0-10.0 sec   1.19 MBytes   10.0 Mbits/sec   1.801 ms   0/ 851   (0%)

[904]   0.0-10.0 sec   11.8 MBytes   9.86 Mbits/sec   2.618 ms   9/ 8409  (0.11%)

Inicio de la página

Tamaño máximo del segmento (argumento -m):

El tamaño máximo del segmento(MSS) es la mayor cantidad de datos, en bytes, que soporta una
computadora en un solo segmento de TCP sin fragmentar.
Este tamaño puede ser calculado de la siguiente manera:
MSS = MTU – encabezados TCP e IP
Los encabezados TCP e IP tienen un tamaño igual a 40 bytes.
El MTU o unidad máxima de transferencia es la mayor cantidad de datos que puede ser tranferida en una
trama.
A continuación se muestra una lista de unidades máximas de transferencia por default en diferentes
topologías de red:
Ethernet – 1500 bytes: usado en redes de área local

PPPoE – 1492 bytes: usado en enlaces ADSL

Token Ring (16 Mb/sec) – 17914 bytes: tecnología antigua desarrollada por IBM

Dial-up – 576 bytes

https://openmaniak.com/es/iperf.php 5/12
12/9/21 23:24 IPERF - The Easy Tutorial
Generalmente, una MTU (y MSS) proporciona mayor eficiencia del ancho de banda

Cliente:

#iperf -c 10.1.1.1 -m

------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.6.2.5 port 41532 connected with 10.1.1.1 port 5001
[ 3]   0.0-10.2 sec   1.27 MBytes   1.04 Mbits/sec

[ 3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)

Aqui el MSS no es igual a 1500 – 40 si no a 1500 - 40 - 12 (Usando la opción de Timestamps) = 1448

Servidor:

#iperf -s

Inicio de la página

Ajustes al maximo tamaño de segmento (argumento -M):

Se utiliza el argumento –M para cambiar el MSS. (Ver la prueba anterior para mayor información acerca
del MSS)

#iperf -c 10.1.1.1 -M 1300 -m

WARNING: attempt to set TCP maximum segment size to 1300, but got 536
------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.6.2.5 port 41533 connected with 10.1.1.1 port 5001
[ 3]   0.0-10.1 sec   4.29 MBytes   3.58 Mbits/sec

[ 3] MSS size 1288 bytes (MTU 1328 bytes, unknown interface)

Servidor:

#iperf -s

Inicio de la página

Análisis en paralelo (argumento -P):

El argumento –P se utiliza para correr pruebas en paralelo.

Cliente:

#iperf -c 10.1.1.1 -P 2

------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.6.2.5 port 41534 connected with 10.1.1.1 port 5001
[ 4] local 10.6.2.5 port 41535 connected with 10.1.1.1 port 5001
[ 4]     0.0-10.1 sec   1.35 MBytes   1.12 Mbits/sec
[ 3]     0.0-10.1 sec   1.35 MBytes   1.12 Mbits/sec
[SUM]  0.0-10.1 sec   2.70 MBytes   2.24 Mbits/sec

Servidor:

#iperf -s

Inicio de la página

Ayuda de Iperf:

#iperf -h

https://openmaniak.com/es/iperf.php 6/12
12/9/21 23:24 IPERF - The Easy Tutorial
Uso: iperf [-s|-c cliente] [opciones]
iperf [-h|--ayuda] [-v|--versión]

Cliente/Servidor:
-f --format [kmKM] Formato del reporte: Kbits, Mbits, KBytes, MBytes
-i --interval
#
segundos entre reportes de ancho de banda periódicos
-l --len
#[KM]
longitud del buffer para leer o escribir ( 8 KB por default)
-m --print_mss
  imprimir el máximo tamaño de segmento en TCP (MTU - TCP/IP header)
-p --port
#
puerto para conectarse/escuchar
-u --udp
 
usar UDP en vez de TCP
-w --window
#[KM]
Tamaño de la ventana de TCP (tamaño de buffer del socket)
-B --bind
"host"
amarrar a cliente, interfaz o dirección de multicast
-C --compatibility
 
para usarse con versiones anteriores, no envía mensajes extras
-M --mss
#
fija el máximo tamaño de segmento de TCP (MTU - 40 bytes)
-N --nodelay
 
fija TCP sin retardo, deshabilitando el algoritmo de Nagle
-V --IPv6Version   fija el dominio a IPv6

Especificos del servidor


-s --server
             
Ejecutar en modo servidor
-U --single_udp
 
Ejecutar en modo de un solo hilo en UDP
-D --daemon   ejecutar el servidor como demonio

Especificos del cliente:


-
b
-c
- -- Para UDP, ancho de banda a utilizer en bits/sec (por default 1 Mbit/sec,
#[KM] 
d bandwidth    
implica -u)
"host"

- --client
ejecutar en modo de cliente, conectandose a "host"
 

n --dualtest Realizar una prueba bidireccional simultaneamente


#[KM]

-r --num
numero de bytes a transmitir (en vez de -t)
 

-t --tradeoff Realizar una prueba bidireccional individualmente


#

- --time tiempo en segundos para transmitir (10 segundos por default)


"name"
F --fileinput
introducir los datos a transmitir desde un archivo
 

-I --stdin
introducir los datos a ser transmitidos desde stdin
#

- --listenport puerto en que se recibiran pruebas bidireccionales de vuelta


#

L --parallel
numero de de hilos paralelos a ejecutar
#
- --ttl time-to-live, paramulticast (por default 1)
P
-
T

Miscelaneos:
-h --help
                  
Imprime este mensaje de ayuda y sale
-v --version   Imprime la información de versión y sale

Inicio de la página

JPERF

Jperf es una interfaz gráfica para Iperf escrita en Java.

1. Instalación:

Descargar Jperf.

Linux

Descomprimir el archivo descargado.

#tar -xvf jperf2.0.0.zip

Ejecutar iperf.

#cd jperf2.0.0
#./jperf.sh

Si se obtiene el siguientemensaje, significaqueesnecesarioinstalariperf con “apt-get install iperf.

Iperf is probably not in your Path!


Please download it here 'http://dast.nlanr.net/Projects/Iperf/'
and put the executable in your PATH environment variable.

https://openmaniak.com/es/iperf.php 7/12
12/9/21 23:24 IPERF - The Easy Tutorial

Microsoft Windows

Descomprimir el archivo descargado.


Accesar al folder descomprimido denominado “jperf2.0.0” por default y dar doble click en “jperf.bat”.
Es importante notar que iperf ya se encuentre presente en el folder /bin.

2. Ejemplos:

Configuración por default, medición del ancho de banda


Also check "Iperf" section for more details.

Revisar la sección "Iperf" para más detalles. - Cliente Linux:

- Servidor Windows:

https://openmaniak.com/es/iperf.php 8/12
12/9/21 23:24 IPERF - The Easy Tutorial

Inicio de la página
    Jperf

Medición del ancho de banda bidireccional


Revisar la sección "Iperf" para más detalles.

- Cliente Linux:

https://openmaniak.com/es/iperf.php 9/12
12/9/21 23:24 IPERF - The Easy Tutorial

- Servidor Windows:

Inicio de la página
    Jperf

https://openmaniak.com/es/iperf.php 10/12
12/9/21 23:24 IPERF - The Easy Tutorial

Medicón del Jitter

Revisar la sección "Iperf" para más detalles.


- Cliente Linux:

- Servidor Windows:

https://openmaniak.com/es/iperf.php 11/12
12/9/21 23:24 IPERF - The Easy Tutorial

Inicio de la página
    Jperf

https://openmaniak.com/es/iperf.php 12/12

También podría gustarte