Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Know How

JPerf - eine grafische Oberfläche für iperf

iperf ist ein Kommandozeilenprogramm zum Messen der Performance von Netzwerken. JPerf ist eine in Java entwickelte grafische Oberfläche für iperf. Diese Anleitung beschreibt die Messung der Bandbreite von Netzwerken mittels JPerf 2.0.2.

Die Java-Applikation JPerf läuft unter den Betriebssystemen Windows, Linux und Apple Mac OS X. Für eine Messung sind immer zwei vernetzte Stationen erforderlich. Solange sich zwischen beiden Stationen eine IP-Verbindung aufbauen lässt, ist die Art des Netzwerkes unerheblich. Es können sowohl Messungen im lokalen Netz (LAN, WLAN) als auch über das Internet (ADSL, VDSL, Kabelinternet und UMTS) durchgeführt werden.

JPerf greift für die Messungen nicht auf die Festplatte zu. Die Performance der Festplatte geht somit nicht in die Messungen ein. In der Praxis wird das Kopieren von Dateien über das Netzwerk also immer langsamer sein als die mit JPerf ermittelten Werte.

Das freie Programm kann bei Google Code heruntergeladen werden.

Installation

Da JPerf eine Java-Oberfläche für iperf ist, werden immer iperf und eine JRE benötigt.

Windows

Unter Windows ist keine Installation von JPerf notwendig. Nach dem Entpacken des ZIP-Files kann die jperf.bat direkt gestartet werden. Die benötigte iperf.exe ist im ZIP-File enthalten.

Linux

Unter Linux ist ebenfalls keine Installation von JPerf notwendig. iperf muss aus dem Quellcode mittels "configure; make; make install" installiert werden.

Apple Mac OS

Auf dem Apple reicht ebenfalls das Entpacken des ZIP-Files aus. Lediglich die Datei jperf.sh muss mit dem Kommando "chmod u+x jperf.sh" ausführbar gemacht werden.
Zusätzlich zu JPerf muss noch iperf installiert werden. Um iperf auf dem Mac kompilieren zu können, müssen die Apple-Entwicklertools installiert sein. Auf der DVD von Leopard und Snow Leopard befindet sich dazu der Installer für Xcode. Aus dem Terminal kann iperf mit den Kommandos "./configure; make; make install" übersetzt und installiert werden.

Messung mit JPerf

Für alle Messungen werden jeweils ein Server und mindestens ein Client benötigt. Um den Server zu starten wählen Sie die bei "Choose iperf Mode" die Option Server und betätigen die Schaltfläche "Run IPerf!". Damit starten Sie iperf im Servermode mit Standardparametern. Der Server nimmt jetzt Verbindungen auf dem TCP-Port 5001 entgegen. Sollte dieser Port beispielsweise durch eine Firewall geblockt werden, können Sie die Portnummer entsprechend anpassen.

JPerf-Server unter Windows 7
JPerf-Server unter Windows 7

Auf einer zweiten Maschine starten wir einen JPerf-Client. Im Feld "Server address" muss die IP-Adresse des JPerf-Server eingegeben werden. Alle anderen Parameter können für einen ersten Test unverändert bleiben. Starten Sie die Messung mit "Run IPerf!".

JPerf im Client Mode unter Windows 7
JPerf im Client Mode unter Windows 7

Für die Dauer der Messung (10 Sekunden) werden jetzt Daten vom Client zum Server übertragen. Es findet bei den Messungen also immer eine Art Upload statt. Die Testdaten werden vom Server verworfen. Die erreichte Bandbreite wird im Diagramm grafisch dargestellt. Unter dem Diagramm erfolgt die Textausgabe der Messwerte.

JPerf Optionen

Die Messungen können mit einer Vielzahl von Optionen gesteuert werden. Mit den Default-Werten wird oft nicht die maximale Bandbreite einer Verbindung erreicht.

Application Layer Options

Im LAN reicht normalerweise eine Messung über 10 Sekunden aus. Für längere Messungen kann hier die Dauer der Übertragung eingestellt werden. Das kann beispielsweise bei Messungen im WLAN mit einem mobilen Client nützlich sein.

Application Layer Options
Application Layer Options von JPerf

Für aktuelle Netze sollte die Anzeige der Messwerte (Output Format) auf MBits gestellt werden. Das Intervall für die Anzeige von Zwischenwerten (Report Interval) kann bei langen Messungen entsprechend erhöht werden.

Transport Layer Options

In den Transport Layer Options können die Einstellungen für die Protokolle TCP und UDP verändert werden. JPerf setzt die Einstellungen in die entsprechenden iperf-Parameter um.

Mit Buffer Length kann der von iperf genutzte Pufferspeicher eingestellt werden. Mitunter führen hier größere Werte zu besseren Messwerten.

Die TCP Window Size gibt an wie viele Daten ein Sender senden darf, ohne eine Bestätigung (ACK) vom Empfänger zu erhalten. Es handelt sich also um die Daten die "in flight" (unterwegs) sein können. Um eine TCP-Verbindung voll auszureizen muss die TCP Window Size größer sein als das Produkt aus Bandbreite und Laufzeit (Bandwidth Delay Product) der Leitung. Bei schnellen WAN-Verbindungen können durchaus einige Megabyte in der Leitung unterwegs sein. Entsprechend groß muss das TCP Window in JPerf eingestellt werden.

Eine Veränderung der Maximum Segment Size MSS ist in der Regel nicht erforderlich. Ebenso bringt eine Deaktivierung des Nagle-Algorithmus mit TCP No Delay keine nennenswerte Veränderung der Messwerte.

TCP und UDP Optionen
Einstellungen für TCP und UDP

Für die Messung der Übertragungsrate mit dem verbindungslosen UDP muss am Client die gewünschte Bandbreite gewählt werden. Der Client erzeugt dann einen UDP-Stream mit der eingestellten Geschwindigkeit. Die in JPerf angezeigten MByte/sec sind allerdings MBit/s. In der Ausgabe von iperf unter dem Diagramm ist die Anzeige korrekt.

Bei der Messung mit UDP wird zusätzlich zur Bandbreite noch der Jitter (Varianz der Laufzeit) und der Packet Loss angezeigt. Die UDP-Leistung einer Verbindung ist für die Übertragung von VoIP entscheidend.

JPerf Beispiele

Messung mit TCP

Hier ein paar Messwerte aus einem WLAN bei einer Messung mit TCP.

bin/iperf.exe -c 192.168.178.62 -P 1 -i 1 -p 5001 -w 2.0M -f m -t 10
------------------------------------------------------------
Client connecting to 192.168.178.62, TCP port 5001
TCP window size: 2.00 MByte
------------------------------------------------------------
[140] local 192.168.178.54 port 51788 connected with 192.168.178.62 port 5001
[ ID] Interval       Transfer     Bandwidth
[140]  0.0- 1.0 sec  2.77 MBytes  23.2 Mbits/sec
[140]  1.0- 2.0 sec  0.56 MBytes  4.72 Mbits/sec
[140]  2.0- 3.0 sec  0.25 MBytes  2.10 Mbits/sec
[140]  3.0- 4.0 sec  0.88 MBytes  7.41 Mbits/sec
[140]  4.0- 5.0 sec  1.17 MBytes  9.83 Mbits/sec
[140]  5.0- 6.0 sec  0.18 MBytes  1.51 Mbits/sec
[140]  6.0- 7.0 sec  0.60 MBytes  5.05 Mbits/sec
[140]  7.0- 8.0 sec  0.90 MBytes  7.54 Mbits/sec
[140]  8.0- 9.0 sec  0.18 MBytes  1.51 Mbits/sec
[140]  9.0-10.0 sec  1.08 MBytes  9.04 Mbits/sec
[140]  0.0-12.6 sec  8.58 MBytes  5.70 Mbits/sec
Done.

Messung mit UDP

Das folgende Beispiel zeigt die Textausgabe einer UDP-Messung mit 10 MBit/s. Der Jitter betrug 2,8 ms uns es traten keine Paketverluste auf. Gemessen wurde über ein 11g Wireless LAN.

bin/iperf.exe -c 192.168.178.62 -u -P 1 -i 1 -p 5001 -w 1.0M -f m -b 10.0M -t 10 -T 1
------------------------------------------------------------
Client connecting to 192.168.178.62, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 1.00 MByte
------------------------------------------------------------
[140] local 192.168.178.54 port 53551 connected with 192.168.178.62 port 5001
[ ID] Interval       Transfer     Bandwidth
[140]  0.0- 1.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  1.0- 2.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  2.0- 3.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  3.0- 4.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  4.0- 5.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  5.0- 6.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  6.0- 7.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  7.0- 8.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  8.0- 9.0 sec  1.19 MBytes  9.98 Mbits/sec
[140]  9.0-10.0 sec  1.21 MBytes  10.1 Mbits/sec
[140]  0.0-10.0 sec  11.9 MBytes  9.99 Mbits/sec
[140] Server Report:
[140]  0.0-10.0 sec  11.9 MBytes  10.0 Mbits/sec  2.825 ms    0/ 8505 (0%)
[140] Sent 8505 datagrams
Done.

Ursachenforschung

Welche Geschwindigkeiten sind normal? Mit Fast Ethernet sollte JPerf zwischen 90 und 100 MBit/s erreichen können. Bei Gigabit Ethernet sollte aktuelle Hardware problemlos 900 MBit/s und mehr übertragen können. WLAN nach IEEE 802.11g überträgt netto etwa 25 MBit/s. Bei 802.11n sind durchaus 130 MBit/s möglich.

Liegen Ihre Messwerte deutlich unter diesen Zahlen? Dann lohnt sich eine Analyse der Ursachen.

Netzwerkkabel

Fehlerhafte Netzwerkkabel, LAN-Dosen und Patchfelder können zu Paketverlusten führen. TCP erkennt diese Verluste und überträgt die Daten bei Bedarf erneut (TCP Retransmission). Dadurch funktioniert die Datenübertragung zwar problemlos, wird aber deutlich langsamer.

Einige Netzwerkkarten bieten die Möglichkeit Kabeltests durchzuführen und zeigen Übertragungsfehler an. Auch viele Switches erlauben einen Blick auf die Error Counter der Switchports.

Für Gigabit Ethernet werden LAN-Kabel nach Kategorie 5e oder besser benötigt. Es müssen alle 8 Adern des Kabels beschaltet sein. Mit vier Adern kommt nur ein Link mit 100 MBit/s zustande.

CPU-Last

Sehen Sie sich die CPU-Auslastung von Server und Client während der Messung mit JPerf an. Gerade ältere Hardware ist nicht in der Lage Gigabit-Links mit der vollen Bandbreite zu fahren.

Kontrollieren Sie die Einstellungen der Netzwerkkarte. Optionen wie Interrupt Moderation, IP Checksum Offload, TCP Checksum Offload und Large Send Offload entlasten die CPU und helfen beim Auslasten großer Bandbreiten. Leider fallen diese Treibereinstellungen oft Übersetzungen zum Opfer. In deutschen Treiber tauchen dann Optionen wie Interruptüberprüfung, Prüfsummenabladung, Prüfsumme abladen oder Abladung grosser Sendungen auf.

Bei Problemen installieren Sie den aktuellen Treiber für LAN- und WLAN-Adapter.

WLAN N

Der WLAN-Standard 802.11n arbeitet bei aktuellen Geräten mit 300 MBit/s brutto. Netto sind dabei über 100 MBit/s möglich. Um die optimale Performance zu bekommen sollten Sie nur 11n-Geräte im selben Netz benutzen. Testen Sie Channel Bonding und stellen Sie die Kanalbreite mal auf 40 MHz. Als Verschlüsselung sollten Sie WPA2/AES auswählen. Bei WPA2/TKIP schalten viele Wireless Router auf langsame Übertragung zurück.

Links zum Thema JPerf

Aktuelle Artikel
Offene Ports - was ist das eigentlich?
Grundlagen zu UDP- und TCP-Port, offenen Ports und der Nutzung von netstat unter Linux und Windows

Iperf als Service konfigurieren
Der Artikel beschreibt wie sich Iperf3 auf einem Linux-System als Dienst einrichten lässt, um so einen permanenten Iperf-Server zu betreiben.

JPerf - grafische Oberfläche für iperf
Mit iperf kann die Übertragungsgeschwindigkeit von Netzwerken gemessen werden. JPerf ist eine grafische Oberfläche für iperf. Der Artikel beschreibt die Messung mit TCP und UDP und gibt Anregungen zur Fehlersuche bei Performanceproblemen.

Alle Artikel...
Neue Tutorials
Prometheus Node Exporter
Mit dem Prometheus Node Exporter lassen sich viele interessante Metriken von Linux-Servern auslesen. Die so gewonnenen Daten können in Prometheus gespeichert werden und mit Grafana in Dashboards anschaulich visualisiert werden.

VPN mit der FritzBox
Die Fritz!Box von AVM unterstützt den Aufbau von VPN-Verbindungen mit dem Protokoll IPsec. AVM stellt dafür die Windows-Software FRITZ!Fernzugang zur Verfügung. Das Tutorial beschreibt die Konfiguration eines VPNs mit der AVM FRITZ!Box Fon WLAN 7270.

Virtuelle Netze mit VMware Server
VMware Server bietet drei Arten der virtuellen Vernetzung für ein Gastsystem an: Bridged Networking, Network Address Translation (NAT) und Host-only Networking. Das Tutorial beschreibt die Möglichkeiten der einzelnen Betriebsarten und deren Konfiguration.

Alle Tutorials...
Neue Testberichte
Net Optics iBypass Switch
Der iBypass von Net Optics ist Bypass Switch zum unterbrechungsfreien Einschleifen eines Intrusion Prevention Systems.

ePowerSwitch-4
Der ePowerSwitch-4 ist eine Schuko-Steckdosenleiste mit Ethernet-Interface und integriertem Webserver. Über einen Browser lassen sich die vier Schuko-Steckdosen über das Netzwerk schalten.

Alle Testberichte...

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 10.01.2023