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
Forum
Shop
FAQ
Know How
Testberichte
Hardware-DB
Events
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Partner
Unser Partner für
SSL Zertifikate
ist Checkdomain GmbH.
Know How

Iperf - Wie schnell ist mein Netzwerk

"Das Netzwerk ist heute wieder sehr langsam." Jeder Administrator kennt solche Aussagen aus der täglichen Praxis. Aber ist es wirklich das Netzwerk? Und wie langsam ist es wirklich? Mit dem Utility Iperf lässt sich einfach die mögliche Übertragungsrate zwischen zwei Geräten im Netzwerk messen.
Mirko Kulpa, 09.04.2008

Installation von Iperf

Die frei Software Iperf gibt es für die Plattformen Windows, Linux, Mac OS X, FreeBSD und Solaris. Für Windows kann das ausführbare Programm als selbstentpackendes Archiv von der Iperf-Homepage heruntergeladen werden. Nach dem Entpacken ist Iperf sofort einsatzbereit.

Update März 2010: Die iperf-Homepage ist down. Neue Links zum Download finden Sie im JPerf-Artikel (Link unten). JPerf enthält auch die iperf.exe für Windows.

Iperf - ein Beispiel

Für eine Messung wird immer ein Iperf-Server und ein Iperf-Client benötigt. Der Server wird mit dem Kommando:

C:\Programme\iperf>iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------

gestartet. Der Server läuft nun auf TCP-Port 5001. Dieser Port darf nicht durch eine Firewall geblockt werden. Nun können wir vom Client eine Messung starten. Dabei wird die IP-Adresse des Servers als Parameter benötigt.

C:\Programme\iperf>iperf -c 192.168.0.20
------------------------------------------------------------
Client connecting to 192.168.0.20, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.5 port 3500 connected with 192.168.0.20 port 5001
[  3]  0.0-10.0 sec  10.3 MBytes  8.62 Mbits/sec

Iperf hat für die Messung etwa 10 Megabyte mittels TCP übertragen und eine Übertragungsrate von 8,62 Mbits/s ermittelt.

Optionen und Parameter von Iperf

Die Arbeitsweise von Iperf kann über eine Reihe von Otionen gesteuert werden. Die folgenden Optionen gelten für den Server und für den Client:

  -f, --format    [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #        seconds between periodic bandwidth reports
  -l, --len       #[KM]    length of buffer to read or write (default 8 KB)
  -m, --print_mss          print TCP maximum segment size (MTU - TCP/IP header)
  -o, --output  <filename> output the report or error message to this specified file
  -p, --port      #        server port to listen on/connect to
  -u, --udp                use UDP rather than TCP
  -w, --window    #[KM]    TCP window size (socket buffer size)
  -B, --bind      <host>   bind to <host>, an interface or multicast address
  -C, --compatibility      for use with older versions does not sent extra msgs
  -M, --mss       #        set TCP maximum segment size (MTU - 40 bytes)
  -N, --nodelay            set TCP no delay, disabling Nagle's Algorithm
  -V, --IPv6Version        Set the domain to IPv6

Einige Optionen sind nur beim Starten des Clients zulässig:

  -b, --bandwidth #[KM]    for UDP, bandwidth to send at in bits/sec
                           (default 1 Mbit/sec, implies -u)
  -c, --client    <host>   run in client mode, connecting to <host>
  -d, --dualtest           Do a bidirectional test simultaneously
  -n, --num       #[KM]    number of bytes to transmit (instead of -t)
  -r, --tradeoff           Do a bidirectional test individually
  -t, --time      #        time in seconds to transmit for (default 10 secs)
  -F, --fileinput <name>   input the data to be transmitted from a file
  -I, --stdin              input the data to be transmitted from stdin
  -L, --listenport#        port to recieve bidirectional tests back on
  -P, --parallel  #        number of parallel client threads to run
  -T, --ttl       #        time-to-live, for multicast (default 1)

Das Setzen von Optionen ist auch über Umgebungsvariablen möglich. Die Variablen haben den Aufbau IPERF_<option name>, beispielsweise IPERF_BANDWIDTH. Die TCP Window Size wird über die Variable TCP_WINDOW_SIZE bestimmt.

Per Default arbeitet Iperf mit einem recht kleinen TCP Window. Um näher an das theoretische Maximum eines Netzwerkes zu kommen, kann ein größeres TCP Window eingestellt werden. Ebenfalls interessant ist die Möglichkeit, mehrere Client Threads über die Option -P parallel zu starten.

Werte aus der Praxis

Die folgende Tabelle zeigt einige Iperf-Messwerte aus der Praxis. Gemessen wurde an einem klassischen Ethernet Hub, einem Fast Ethernet Switch und einem Gigabit Ethernet. Iperf wurde zuerst ohne weitere Optionen gestartet und dann mit dem Kommando iperf -c 192.168.0.20 -w 512k -l 512k.

Netzwerk Iperf
default
[MBit/s]
Iperf
mit Optionen
[MBit/s]
theoretisches
Maximum
[MBit/s]
Ethernet Hub 7,5 7,5 10
Fast Ethernet 95 95 100
Gigabit Ethernet 346 948 1.000

 
Über einen Hub ergab sich eine Übertragungsrate von 7,5 MBit/s. Mehr ist auf einem Shared Media durch die entstehenden Kollisionen kaum möglich.

Bei Fast Ethernet wurde problemlos eine Auslastung von 95 Prozent erreicht. Bei Gigabit Ethernet macht sich die kleine TCP Window Size in den Defaulteinstellungen stark bemerkbar. Erst mit einem entsprechend großen Fenster ist auch hier eine Auslastung von 95 Prozent erreichbar.

Die Messungen liefen zwischen zwei Systemen mit Intel Core 2 Duo CPU mit etwa 2 GHz. Als Netzwerkkarten kamen Broadcom NetXtreme Gigabit NICs zum Einsatz. Die Kombi Thinkpad R60 (Windows XP) und Apple Mac Mini C2D 1,83 MHz (Mac OS X Leopard) kam im Test auf etwa 940 MBit/s.

Iperf kann auch zur Messung der Performance von Root Servern im Internet genutzt werden. Dabei sind sowohl Messungen zwischen zwei Servern als auch zu einem Client an ADSL oder VDSL vorstellbar.

Weiterführende Informationen und Links

Weiterführende Informationen finden Sie unter folgenden Links:

 

 
© 2004-2015, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012