Iperf est un outil de mesure et d’optimisation des performances des réseaux.
L’application iperf est un programme multiplateforme qui fournit des mesures standard de performance du réseau. Iperf comprend un client et un serveur qui peuvent générer un flux de données pour évaluer le débit entre deux points d’extrémité dans une ou deux directions.
Une sortie iperf typique comprend un rapport temporel estampillé de la quantité de données transportées et du débit mesuré.
Iperf2
Iperf2 est un outil de mesure du débit et de la réactivité du réseau qui prend en charge TCP et UDP. L’un de ses objectifs est de maintenir le fonctionnement de la base de code iperf sur différentes plates-formes et systèmes d’exploitation.
Il s’agit d’une architecture multithread qui croît proportionnellement au nombre de CPU ou de cœurs dans un système avec lequel elle peut obtenir et rapporter les performances du réseau en utilisant des stratégies à fort et à faible impact.
Caractéristiques d’Iperf2
- Prend en charge des intervalles de rapport plus petits (100 us ou plus, configurer –enable-fast sampling pour une sortie de temps d’intervalle de haute précision).
- Prise en charge de SO_RCVTIMEOUT pour les serveurs de rapports, indépendamment de l’absence de paquetage
- Supporte SO_SNDTIMEO lors de l’envoi afin que les écritures sur le socket ne soient pas bloquées au-delà de -t ou -i
- Prise en charge de SO_TIMESTAMP pour l’horodatage des paquets au niveau du noyau
- Prend en charge le temps de latence final en format moyen/min/max/stdev (UDP) (-e requis) (en supposant que les horloges du client et du serveur soient synchronisées, par exemple avec le Precision Time Protocol à l’OCXO par oscillateur Spectracom).
- Prise en charge des flux limités au niveau TCP (via -b) à l’aide d’un seau de jetons simplifié
- Prend en charge les paquets par seconde (UDP) et les pps en tant qu’unités (par exemple, -b 1000pps).
- Afficher le PPS dans les rapports du client et du serveur (UDP) (-e requis)
- Prise en charge des ordonnanceurs en temps réel en tant qu’options de ligne de commande (–real-time ou -z, en supposant que l’utilisateur dispose des droits appropriés).
- Affichage du temps de boucle cible dans l’en-tête initial du client (UDP)
- Ajouter le support local des liens ipv6 (ex. iperf -c fe80::d03a:d127:75d2:4112%eno1)
- La charge utile UDP ipv6 est fixée par défaut à 1450 octets par trame Ethernet et par charge utile.
- Prise en charge du trafic isochrone (via –isochrone) et de la rafale de trames avec trafic à débit variable (vbr) et identification des trames.
- La prise en charge de la multidiffusion SSM pour v4 et v6 utilise -H ou -ssm-host, c’est-à-dire iperf -s -B ff1e::1 -u -V -H fc00::4
- Histogrammes de latence pour les paquets et les trames (par exemple –udp-histogram=10u.200000, 0.03, 99.97)
- Prise en charge des démarrages de livraison temporisés par –txstart-time .Prise en charge des démarrages de livraison temporisés par –txstart-time <unix.epoch time>.
- Prise en charge des clients qui augmentent l’IP de destination avec -P via –incr-dstip
- Pour faire varier la charge, on utilise la distribution normale des logs autour de la moyenne et de l’écart-type (per -b ,),Pour faire varier la charge, on utilise la distribution normale des logs autour de la moyenne et de l’écart-type (per -b <mean>,<stdev>),
- Honor -T (ttl) pour unicast et multicast
- UDP utilise un numéro de séquence de 64 bits (bien qu’il fonctionne encore avec 2.0.5 qui utilise un numéro de séquence de 32 bits).
Systèmes d’exploitation supportés par l’Iperf2
- Linux, Windows 10, Windows 7, Windows XP, macOS, Android et certains décodeurs OS.
Télécharger Iperf2
Iperf3
L’application Iperf3 est une réécriture d’iperf à partir de zéro pour créer une base de code plus petite et plus simple.
iPerf3 est un outil permettant de mesurer en temps réel la largeur de bande maximale possible sur un réseau IP. Il vous permet de régler avec précision divers délais, tampons et protocoles (TCP, UDP, SCTP avec IPv4 et IPv6). Il fournit également des rapports sur la bande passante, les pertes et d’autres paramètres pour chaque test.
Caractéristiques d’Iperf3
- TCP et SCTP (mesure de la bande passante, rapport sur la taille du MSS/MTU et la taille de la lecture observée, prise en charge de la taille de la fenêtre TCP sur la mémoire tampon de la socket).
- UDP (le client peut créer un flux UDP à partir d’une bande passante spécifiée, mesurer la perte de paquets, mesurer la gigue du délai, permettre la multidiffusion)
- Le client et le serveur peuvent avoir plusieurs connexions simultanées (option -P).
- Le serveur gère plusieurs connexions, au lieu de s’arrêter après un seul test.
- Peut fonctionner pendant une durée déterminée (option -t), plutôt que sur une quantité de données à transférer (option -n ou -k).
- Rapports périodiques d’impression, de bande passante moyenne, de gigue et de perte à des intervalles spécifiques (option-i).
- Exécuter le serveur en tant que démon (option -D)
- Utiliser des flux représentatifs pour tester l’impact de la compression de la couche de liaison sur la bande passante disponible (option -F).
- Un serveur reçoit un client simultanément (iPerf3) et plusieurs clients simultanément (iPerf2).
- Ignorer le démarrage lent de TCP (option -O).
- Définir la bande passante cible pour UDP et (nouveau) TCP (option -b).
- Définir l’étiquette de flux IPv6 (option -L)
- Définir l’algorithme de contrôle de la congestion (-option -C)
- Utiliser SCTP au lieu de TCP (option –sctp)
- La sortie est au format JSON (option -J).
- Test de lecture de disque (serveur : iperf3 -s / client : iperf3 -c testhost -i1 -F nom de fichier)
- Test d’écriture sur disque (serveur : iperf3 -s -F nom de fichier / client : iperf3 -c testhost -i1)
Systèmes d’exploitation supportés par Iperf3
- Windows, Linux, Android, macOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris
Télécharger Iperf3
Autres articles intéressants
Iperf2 vs Iperf3
En vedette | Iperf 2 | Iperf 3 |
Types de trafic | ||
Trafic TCP | Y | Y |
Trafic UDP | Y | Y |
Trafic SCTP | N | Y |
IPv4 | Y | Y |
IPv6 | Y | Y |
Trafic de multidiffusion (y compris SSM) | Y | N |
Connexion TCP uniquement | Y | N |
Contrôles de la couche 2 | Y | N |
Options de sortie | ||
Format humain | Y | Y |
Sortie JSON | N | Y |
CSV (de base uniquement) | Y | N |
Masquer les adresses IP dans la sortie (v4 uniquement) | Y | N |
Rapports du serveur côté client | N | Y |
Profils de trafic | ||
Limitation du taux de file d’attente équitable | Y | Y |
Limitation du taux d’écriture | Y | Y |
Limitation du débit de lecture (TCP) | Y | N |
Éclats | Y | Y |
Isochrone (vidéo) TCP/UDP | Y | N |
Inverser les rôles | Y | Y |
Trafic bidirectionnel | Y | Y |
Duplex intégral même prise | Y | N |
TCP bounceback avec charge(s) de travail optionnelle(s) | Y | N |
Trafic à faible cycle de service avec statistiques côté serveur | Y | N |
TCP_NOTSENT_LOWAT avec select() (en utilisant l’option –tcp-write-prefetch) | Y | N |
TCP proche de la congestion (expérimental) | Y | N |
Métriques | ||
Débit | Y | Y |
Réactivité par seconde (RPS) | Y | N |
Paquets UDP (total/perdu) | Y | Y |
Gigue UDP | Y | Y |
Latences des paquets UDP | Y | N |
TCP/UDP frame/burst latencies | Y | N |
Temps de latence entre l’écriture et la lecture TCP | Y | N |
Puissance du réseau (latence/débit) | Y | N |
InP – octets dans les files d’attente (loi de Little) | Y | N |
TCP CWND | Y | N |
TCP retries | Y | Y |
TCP RTT | Y | Y |
Histogrammes des délais d’écriture côté émission | Y | N |
Paquets UDP par seconde | Y | N |
Histogrammes de latence | Y | N |
Temps de connexion TCP | Y | N |
Réponse TCP par intervalle | Y | N |
Sortie de la somme seulement | Y | N |
Autres | ||
Conception multithread | Y | N |
Parallel -P technique | Threads | Processes |
Programmation en temps réel | Y | N |
-t support pour le serveur | Y | N |
Support de l’interface virtuelle TAP (réception uniquement) via –tap-dev | Y | N |
Affinité avec l’unité centrale | N | Y |
Copie zéro | N | Y |
Étiquettes de flux IPv6 | N | Y |
option –omit (sauter les premiers échantillons par temps en secondes) | N | Y |
Option Incr dst ip avec -P | Y | N |
Option Incr dst ip avec -P | Y | N |
Option Incr dst port avec -P | Y | N |
Option Incr src port avec -P | Y | N |
Liaison avec un dispositif ou une interface | Y | Y |
Liaison du port source | Y | N |
Heure de début de transmission programmée | Y | N |
Retarder l’heure de début de la transmission | Y | N |
Mot de passe de l’utilisateur | N | Y |
Clés de permis | Y (TCP only) | N |
UDP sans état | Y | N |
Cadre Python (asyncio) | Y (flows) | N |
Test du WiFi à travers le 100G | Y | N/a |
Passage à plus de 1000 threads | Y | N/a |