Iperf es una herramienta de medición y optimización del rendimiento de la red.
Tabla de contenido
La aplicación iperf es un programa multiplataforma que puede proporcionar métricas estándar del rendimiento de la red. Iperf consta de un cliente y un servidor que pueden generar un flujo de datos para evaluar el rendimiento entre dos puntos finales en una o ambas direcciones.
Una salida típica de iperf incluye un informe de tiempo sellado de la cantidad de datos transportados y el rendimiento medido.
Iperf2
Iperf2 es una herramienta de medición del rendimiento y la capacidad de respuesta de la red compatible con TCP y UDP. Uno de sus objetivos es mantener el código base de iperf funcionando en varias plataformas y sistemas operativos.
Se trata de una arquitectura multihilo que crece en proporción al número de CPU o núcleos de un sistema con el que puede obtener e informar del rendimiento de la red utilizando estrategias de alto y bajo impacto.
Características de Iperf2
- Admite intervalos de informe más pequeños (100 us o más, configure –enable-fast sampling para obtener una salida de tiempo de intervalo de alta precisión).
- Soporta SO_RCVTIMEOUT para servidores de informes independientemente de que no haya paquete
- Soporta SO_SNDTIMEO al enviar para que las escrituras de socket no se bloqueen más allá de -t o -i
- Admite SO_TIMESTAMP para las marcas de tiempo de los paquetes a nivel del núcleo.
- Admite latencia de fin/fin en formato medio/minuto/máximo/desviación estándar (UDP) (se requiere -e) (suponiendo que los relojes del cliente y del servidor estén sincronizados, por ejemplo, con el protocolo de tiempo de precisión a OCXO por oscilador Spectracom).
- Admite flujos limitados a nivel TCP (mediante -b) utilizando un token bucket simplificado.
- Admite paquetes por segundo (UDP) sobre pps como unidades, (por ejemplo, -b 1000pps)
- Mostrar PPS en los informes de cliente y servidor (UDP) (se requiere -e)
- Admite programadores en tiempo real como opciones de la línea de comandos (–real-time o -z, si se dispone de los derechos de usuario adecuados).
- Visualizar el tiempo de bucle objetivo en la cabecera inicial del cliente (UDP)
- Añadir soporte local de enlaces ipv6 (p.ej. iperf -c fe80::d03a:d127:75d2:4112%eno1)
- Carga útil UDP ipv6 por defecto 1450 bytes por una trama ethernet por carga útil.
- Admite tráfico isócrono (mediante –isochronous) y ráfaga de tramas con tráfico de velocidad binaria variable (vbr) e id de trama.
- La compatibilidad multidifusión SSM para v4 y v6 utiliza -H o -ssm-host, es decir, iperf -s -B ff1e::1 -u -V -H fc00::4
- Histogramas de latencia para paquetes y tramas (por ejemplo, –udp-histogram=10u.200000, 0.03, 99.97)
- Soporte para clientes que aumentan la IP de destino con -P a través de –incr-dstip
- Honor -T (ttl) para unicast y multicast
- UDP utiliza un número de secuencia de 64 bits (aunque todavía funciona con 2.0.5 que utiliza un número de secuencia de 32b).
Sistemas operativos compatibles con Iperf2
- Linux, Windows 10, Windows 7, Windows XP, macOS, Android y algunos descodificadores OS.
Descargar Iperf2
Iperf3
La aplicación Iperf3 es una reescritura de iperf desde cero para crear una base de código más pequeña y sencilla.
iPerf3 es una herramienta para medir el máximo ancho de banda posible en una red IP en tiempo real. Permite ajustar con precisión varios tiempos, búferes y protocolos (TCP, UDP, SCTP con IPv4 e IPv6). Y también proporcionará informes de ancho de banda, pérdidas y otras métricas para cada prueba.
Características de Iperf3
- TCP y SCTP (Mide el ancho de banda, Informa del tamaño de MSS/MTU y del tamaño de lectura observado, Soporta el tamaño de ventana TCP sobre el buffer del socket).
- UDP (el cliente puede crear un flujo UDP a partir de un ancho de banda especificado, medir la pérdida de paquetes, medir la fluctuación del retardo, capacidad de multidifusión)
- Tanto el cliente como el servidor pueden tener varias conexiones simultáneas (opción -P).
- El servidor gestiona múltiples conexiones, en lugar de detenerse tras una única prueba.
- Puede ejecutarse durante un tiempo especificado (opción -t), en lugar de cualquier cantidad de datos a transferir (opción -n o -k).
- Informes periódicos de impresión, ancho de banda medio, jitter y pérdidas a intervalos específicos (opción-i).
- Ejecutar el servidor como demonio (opción -D)
- Utilice flujos representativos para comprobar cómo afecta la compresión de la capa de enlace al ancho de banda alcanzable (opción -F).
- Un servidor recibe un cliente simultáneamente (iPerf3) y varios clientes simultáneamente (iPerf2)
- Ignora el inicio lento de TCP (opción -O).
- Establece el ancho de banda objetivo para UDP y (nuevo) TCP (opción -b).
- Establecer etiqueta de flujo IPv6 (opción -L)
- Establecer el algoritmo de control de congestión (-opción -C)
- Utilizar SCTP en lugar de TCP (opción –sctp)
- La salida está en formato JSON (opción -J).
- Prueba de lectura de disco (servidor: iperf3 -s / cliente: iperf3 -c testhost -i1 -F nombrearchivo)
- Prueba de escritura en disco (servidor: iperf3 -s -F nombrearchivo / cliente: iperf3 -c testhost -i1)
Sistemas operativos compatibles con Iperf3
- Windows, Linux, Android, macOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris
Descargar Iperf3
Otros artículos interesantes
Iperf2 vs Iperf3
Recomendados | Iperf 2 | Iperf 3 |
Tipos de tráfico | ||
Tráfico TCP | Y | Y |
Tráfico UDP | Y | Y |
Tráfico SCTP | N | Y |
IPv4 | Y | Y |
IPv6 | Y | Y |
Tráfico de multidifusión (incluido SSM) | Y | N |
Sólo conexión TCP | Y | N |
Comprobaciones de capa 2 | Y | N |
Opciones de salida | ||
Formato humano | Y | Y |
Salida JSON | N | Y |
CSV (solo básico) | Y | N |
Ocultar direcciones IP en la salida (solo v4) | Y | N |
Informes de servidor del lado cliente | N | Y |
Perfiles de tráfico | ||
Limitación de la velocidad de cola justa | Y | Y |
Limitación de la velocidad de escritura | Y | Y |
Limitación de velocidad de lectura (TCP) | Y | N |
Estalla | Y | Y |
TCP/UDP isócrono (vídeo) | Y | N |
Invertir roles | Y | Y |
Tráfico bidireccional | Y | Y |
Dúplex completo mismo socket | Y | N |
Rebote TCP con carga(s) de trabajo opcional(es) | Y | N |
Tráfico de ciclo de trabajo bajo con estadísticas del lado del servidor | Y | N |
TCP_NOTSENT_LOWAT con select() (usando la opción –tcp-write-prefetch) | Y | N |
TCP cerca de la congestión (experimental) | Y | N |
Métricas | ||
Rendimiento | Y | Y |
Capacidad de respuesta por segundo (RPS) | Y | N |
Paquetes UDP (total/perdidos) | Y | Y |
Fluctuación UDP | Y | Y |
Latencias de paquetes UDP | Y | N |
Latencias de trama/ráfaga TCP/UDP | Y | N |
Latencias de escritura a lectura TCP | Y | N |
Alimentación de red (latencia/rendimiento) | Y | N |
InP – Bytes en colas (ley de Little) | Y | N |
TCP CWND | Y | N |
Reintentos de TCP | Y | Y |
TCP RTT | Y | Y |
Enviar histogramas de retardo de escritura lateral | Y | N |
Paquetes UDP por segundo | Y | N |
Histogramas de latencia | Y | N |
Tiempos de conexión TCP | Y | N |
Respuesta TCP por intervalo | Y | N |
Suma solo de salida | Y | N |
Otro | ||
Diseño multiproceso | Y | N |
Técnica paralela -P | Hilos | Procesos |
Programación en tiempo real | Y | N |
-t Soporte para servidor | Y | N |
Soporte de interfaz virtual TAP (solo recepción) a través de –tap-dev | Y | N |
Afinidad de CPU | N | Y |
Cero copia | N | Y |
Etiquetas de flujo IPv6 | N | Y |
–Omitir la opción (omitir las primeras muestras por vez en segundos) | N | Y |
Incr dst ip opción con -P | Y | N |
Incr dst ip opción con -P | Y | N |
Opción de puerto incr dst con -P | Y | N |
Opción de puerto SRC Incr con -P | Y | N |
Enlace de dispositivo o interfaz | Y | Y |
Enlace de puerto de origen | Y | N |
Hora de inicio programada de tx | Y | N |
Retrasar la hora de inicio de tx | Y | N |
Contraseña de usuario | N | Y |
Permitir claves | Y (sólo TCP) | N |
UDP sin estado | Y | N |
Marco de Python (asincio) | Y (flujos) | N |
Prueba de WiFi a través de 100G | Y | N/D |
Escalado a 1000+ subprocesos | Y | N/D |