Iperf2 vs Iperf3 – Messung der Netzwerkleistung

Iperf ist ein Tool zur Messung und Optimierung der Netzwerkleistung.

Die iperf-Anwendung ist ein plattformübergreifendes Programm, das Standard-Netzwerkleistungsmetriken bereitstellen kann. Iperf besteht aus einem Client und einem Server, die einen Datenstrom generieren können, um den Durchsatz zwischen zwei Endpunkten in eine oder beide Richtungen zu bewerten.

iperf2

Eine typische iperf-Ausgabe enthält einen gestempelten Zeitbericht über die Menge der transportierten Daten und den gemessenen Durchsatz.

Iperf2

Iperf2 ist ein Tool für Netzwerkdurchsatz und reaktionsschnelle Messung, das TCP und UDP unterstützt. Eines seiner Ziele ist es, die iperf-Codebasis auf verschiedenen Plattformen und Betriebssystemen funktionsfähig zu halten.

Es handelt sich um eine Multithread-Architektur, die proportional zur Anzahl der CPUs oder Kerne in einem System wächst, mit denen die Netzwerkleistung mithilfe von Strategien mit hoher und geringer Auswirkung erzielt und gemeldet werden kann.

Eigenschaften von Iperf2

  • Unterstützt kleinere Berichtsintervalle (100 us oder mehr, konfigurieren Sie –enable-fast Sampling für hochpräzise Intervallzeitausgabe)
  • Unterstützt SO_RCVTIMEOUT für Berichtsserver, unabhängig davon, ob kein Paket vorhanden ist
  • Unterstützen Sie SO_SNDTIMEO beim Senden, damit Socket-Schreibvorgänge nicht über -t oder -i hinaus blockiert werden
  • Unterstützt SO_TIMESTAMP für Paketzeitstempel auf Kernel-Ebene
  • Unterstützt End-/End-Latenz im UDP-Format (mean/min/max/stdev)  (-e erforderlich) (vorausgesetzt, Client- und Server-Uhren sind synchronisiert, z. B. mit Precision Time Protocol zu OCXO pro Spectracom-Oszillator)
  • Unterstützt begrenzte Flüsse auf TCP-Ebene (über -b) unter Verwendung eines vereinfachten Token-Buckets
  • Unterstützt Pakete pro Sekunde (UDP) über pps als Einheiten (z. B. -b 1000pps)
  • PPS in Client- und Serverberichten (UDP) anzeigen (-e erforderlich)
  • Unterstützt Echtzeit-Scheduler als Befehlszeilenoptionen (–real-time oder -z, vorausgesetzt, die richtigen Benutzerrechte vorausgesetzt)
  • Anzeige der Zielschleifenzeit im Initial Client Header (UDP)
  • Fügen Sie lokale Unterstützung von IPv6-Links hinzu (z. B. IPERF -C Fe80::D03A:D127:75D2:4112%ENO1)
  • UDP ipv6-Nutzlast ist standardmäßig 1450 Byte pro Ethernet-Frame pro Nutzlast
  • Unterstützt isochronen Datenverkehr (über –isochron) und Frame-Burst mit variabler Bitrate (vbr) und Frame-ID
  • SSM-Multicast-Unterstützung für v4 und v6 verwendet -H oder -ssm-host, dh.  iperf -s -B ff1e::1 -u -V -H fc00::4
  • Latenzhistogramme für Pakete und Frames (z.B. –udp-histogram=10u.200000, 0.03, 99.97)
  • Die Unterstützung für die zeitgesteuerte Zustellung beginnt per –txstart-time <unix.epoch time>
  • Unterstützung für Clients, die die Ziel-IP mit -P über –incr-dstip erhöhen
  • Unterstützung für die Variation der Last wird unter Verwendung der Normalverteilung der Protokolle um den Mittelwert und die Standardabweichung (pro -b <Mittelwert>,<stdev>) angeboten.
  • Ehre -T (ttl) für Unicast und Multicast
  • UDP verwendet eine 64-Bit-Sequenznummer (obwohl es immer noch mit 2.0.5 arbeitet, das eine Sequenznummer von 32b verwendet).

Von Iperf2 unterstützte Betriebssysteme

  • Linux, Windows 10, Windows 7, Windows XP, macOS, Android und einige OS-Set-Top-Boxen.

Iperf2 herunterladen

Iperf2 Windows v2.1.8

Iperf2 Linux v2.1.8

Iperf3

Die Iperf3-Anwendung ist eine Neuschreibung von iperf von Grund auf, um eine kleinere und einfachere Codebasis zu erstellen.

iPerf3 ist ein Tool zur Messung der maximal möglichen Bandbreite in einem IP-Netzwerk in Echtzeit.  Es ermöglicht die Feinabstimmung verschiedener Timings, Puffer und Protokolle (TCP, UDP, SCTP mit IPv4 und IPv6).   Und es wird auch Berichte über Bandbreite, Verluste und andere Metriken für jeden Test liefern.

Eigenschaften von Iperf3

  • TCP und SCTP (Bandbreite messen, MSS/MTU-Größe und beobachtete Lesegröße melden, Unterstützung für TCP-Fenstergröße über Socket-Puffer).
  • UDP (Client kann UDP-Fluss aus der angegebenen Bandbreite erstellen, Paketverlust messen, Verzögerungsjitter messen, Multicast fähig)
  • Sowohl der Client als auch der Server können mehrere gleichzeitige Verbindungen haben (Option -P).
  • Der Server verarbeitet mehrere Verbindungen, anstatt nach einem einzigen Test zu stoppen.
  • Kann für eine bestimmte Zeit ausgeführt werden (Option -t) und nicht für eine beliebige Datenmenge (Option -n oder -k).
  • Regelmäßiges Drucken, mittlere Bandbreite, Jitter und Verlustberichte in bestimmten Intervallen (Option-i).
  • Ausführen des Servers als Daemon (Option -D)
  • Verwenden Sie repräsentative Flows, um zu testen, wie sich die Komprimierung der Verbindungsschicht auf die erreichbare Bandbreite auswirkt (Option -F).
  • Ein Server empfängt einen Client gleichzeitig (iPerf3) und mehrere Clients gleichzeitig (iPerf2)
  • Ignorieren Sie TCP slow-start (Option -O).
  • Legen Sie die Zielbandbreite für UDP und (neu) TCP fest (Option -b).
  • IPv6-Flussbezeichnung festlegen (Option -L)
  • Festlegen des Engpasskontrollalgorithmus (-option -C)
  • Verwenden Sie SCTP anstelle von TCP (Option –sctp )
  • Die Ausgabe erfolgt im JSON-Format (Option -J).
  • Datenträgerlesetest (Server: iperf3 -s / Client: iperf3 -c testhost -i1 -F Dateiname)
  • Schreibtest auf der Festplatte (Server: iperf3 -s -F Dateiname / Client: iperf3 -c testhost -i1)

Von Iperf3 unterstützte Betriebssysteme

  • Windows, Linux, Android, macOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris

Iperf3 herunterladen

Iperf3 Windows 64bit v3.1.3

Iperf3 Windows 32bit v3.1.3

Iperf3 Linux v3.1.3

Iperf2 gegen Iperf3

BefähigtIperf 2Iperf 3
Traffic-Typen
TCP-DatenverkehrYY
UDP-DatenverkehrYY
SCTP-DatenverkehrNY
IPv4YY
IPv6YY
Multicast-Datenverkehr (einschließlich SSM)YN
Nur TCP-VerbindungYN
Layer-2-PrüfungenYN
Ausgabeoptionen
Menschliches FormatYY
JSON-AusgabeNY
CSV (nur Basis)YN
IP-Adressen in der Ausgabe ausblenden (nur v4)YN
Clientseitige ServerberichteNY
Verkehrsprofile
Faire Begrenzung der WarteschlangenrateYY
Begrenzung der SchreibrateYY
Begrenzung der Leserate (TCP)YN
PlatztYY
Isochron (Video) TCP/UDPYN
Die Rollen vertauschenYY
Bidirektionaler VerkehrYY
Vollduplex gleicher SockelYN
TCP-Bounceback mit optionaler Arbeitslast(en)YN
Datenverkehr mit geringer Auslastung und serverseitigen StatistikenYN
TCP_NOTSENT_LOWAT mit select() (mit der Option –tcp-write-prefetch)YN
TCP-nahe Überlastung (experimentell)YN
Metrik
DurchsatzYY
Reaktionsfähigkeit pro Sekunde (RPS)YN
UDP-Pakete (gesamt/verloren)YY
UDP-JitterYY
Paketlatenzen UDPYN
TCP/UDP-Frame- /Burst-LatenzenYN
Write-to-Read-Latenzen TCPYN
Netzwerkleistung (Latenz/Durchsatz)YN
InP – Bytes in Warteschlangen (Littlesches Gesetz)YN
TCP CWNDYN
TCP-WiederholungsversucheYY
TCP RTTYY
Histogramme der Schreibverzögerung sendenYN
UDP-Pakete pro SekundeYN
Latenz-HistogrammeYN
TCP-VerbindungszeitenYN
TCP-Antwort pro IntervallYN
Ausgabe nur summierenYN
Andere
Multi-Threaded-DesignYN
Parallel-P-TechnikFädenAbläufe
Echtzeit-PlanungYN
-t-Unterstützung für ServerYN
Unterstützung virtueller TAP-Schnittstellen (nur empfangen) über –tap-devYN
CPU-AffinitätNY
Null KopieNY
IPv6-FlussetikettenNY
–omit Option (überspringen Sie die ersten Samples pro Mal in Sekunden)NY
Incr dst ip-Option mit -PYN
Incr dst ip-Option mit -PYN
Incr dst-Port-Option mit -PYN
Incr src-Port-Option mit -PYN
Geräte- oder SchnittstellenbindungYY
QuellportbindungYN
Geplante tx-StartzeitYN
Verzögern Sie die Startzeit von txYN
BenutzerkennwortNY
Schlüssel zulassenY (nur TCP)N
Zustandsloses UDPYN
Python-Framework (asyncio)Y (Ströme)N
Testen von WLAN über 100GYN/a
Skalierung auf 1000+ ThreadsYN/a

Neueste Artikel