Um UDP Messungen mit iperf durchführen zu können muss der Parameter --udp
oder -u
angegeben werden.
Im einfachsten Fall sieht ein Durchlauf wie folgt aus:
Server:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.110, port 56938
[ 5] local 192.168.1.102 port 5201 connected to 192.168.1.110 port 42556
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 120 KBytes 983 Kbits/sec 42.358 ms 0/15 (0%)
[ 5] 1.00-2.00 sec 128 KBytes 1.05 Mbits/sec 15.272 ms 0/16 (0%)
[ 5] 2.00-3.00 sec 128 KBytes 1.05 Mbits/sec 5.610 ms 0/16 (0%)
[ 5] 3.00-4.00 sec 128 KBytes 1.05 Mbits/sec 2.171 ms 0/16 (0%)
[ 5] 4.00-5.00 sec 128 KBytes 1.05 Mbits/sec 0.960 ms 0/16 (0%)
[ 5] 5.00-6.00 sec 128 KBytes 1.05 Mbits/sec 0.567 ms 0/16 (0%)
[ 5] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec 0.363 ms 0/16 (0%)
[ 5] 7.00-8.00 sec 128 KBytes 1.05 Mbits/sec 0.305 ms 0/16 (0%)
[ 5] 8.00-9.00 sec 128 KBytes 1.05 Mbits/sec 0.300 ms 0/16 (0%)
[ 5] 9.00-10.00 sec 128 KBytes 1.05 Mbits/sec 0.277 ms 0/16 (0%)
[ 5] 10.00-10.03 sec 0.00 Bytes 0.00 bits/sec 0.277 ms 0/0 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-10.03 sec 0.00 Bytes 0.00 bits/sec 0.277 ms 0/159 (0%)
Client:
Connecting to host 192.168.1.102, port 5201
[ 4] local 192.168.1.110 port 42556 connected to 192.168.1.102 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 120 KBytes 982 Kbits/sec 15
[ 4] 1.00-2.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 2.00-3.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 3.00-4.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 4.00-5.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 5.00-6.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 7.00-8.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 8.00-9.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 4] 9.00-10.00 sec 128 KBytes 1.05 Mbits/sec 16
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.24 MBytes 1.04 Mbits/sec 0.277 ms 0/159 (0%)
[ 4] Sent 159 datagrams
iperf Done.
Beim Server muss bei der Version 3 nicht angegeben werden, ob die Messung via UDP oder TCP durchgeführt werden soll. Beim Client muss aber mit dem Parameter --udp
bzw. -u
definiert werden, dass UDP verwendet werden soll.
Anhand der Ausgaben sieht man auch schon, dass mit einer Bandbreite von 1 Mbit/sec, einer Dauer von 10 Sekunden und einem Ausgabeintervall von 1 Sekunde als Defaultwerte gemessen wird.
Bandbreite bestimmen
1 Mbit/s ist in der heutigen Zeit von Gigabit-LAN nicht wirklich eine Last auf dem Netz. Deshalb kann mit --bandwidth #[KMG][/#]
bzw. -b #[KMG][/#]
die Bandbreite angegeben werden. Der erste Wert muss dabei angegeben werden und gibt die Bandbreite in bits/sec an. Mit K, M oder G kann dabei der Wert auch in Kbit/sec, Mbit/sec oder Gbit/sec angegeben werden. So steht z.B. 200M für eine Bandbreite von 200 Mbit/sec.
Mit einem Slash abgetrennt kann dazu noch ein Paket-Zähler für den Burst Mode angegeben werden. Dadurch können mehrere Pakete auf einmal gesendet werden und erst danach wird eine Pause eingelegt, während ohne Burst Mode die Pakete regelmässig über das Netz gesendet werden.
Im folgenden Beispiel (nur Clientseitig) wird wiederum 1Mbit/s gesendet, aber es werden 30 Pakete aufs Mal gesendet:
Connecting to host 192.168.1.102, port 5201
[ 4] local 192.168.1.110 port 60799 connected to 192.168.1.102 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 240 KBytes 1.96 Mbits/sec 30
[ 4] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 0
[ 4] 2.00-3.00 sec 240 KBytes 1.97 Mbits/sec 30
[ 4] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0
[ 4] 4.00-5.00 sec 240 KBytes 1.97 Mbits/sec 30
[ 4] 5.00-6.00 sec 240 KBytes 1.97 Mbits/sec 30
[ 4] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0
[ 4] 7.00-8.00 sec 240 KBytes 1.97 Mbits/sec 30
[ 4] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0
[ 4] 9.00-10.00 sec 240 KBytes 1.97 Mbits/sec 30
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.41 MBytes 1.18 Mbits/sec 0.496 ms 0/180 (0%)
[ 4] Sent 180 datagrams
iperf Done.
Dauer und Ausgabeintervall
Wie in den letzten beiden Durchgängen gesehen werden die Messungen per Default für einen Zeitraum von 10 Sekunden durchgeführt und dabei jede Sekunde eine Auswertung ausgegeben.
Mit dem Parameter --time #
bzw. -t #
kann beim Client die Aussendedauer in Sekunden angegeben werden. Das Report-Intervall kann mit --interval #
bzw. -i #
ebenfalls in Sekunden angegeben werden. Das Intervall kann dabei sowohl Client- wie auch Server-Seitig definiert werden.
Im folgenden Beispiel wird über einen Zeitraum von einer Minute (60 Sekunden) gesendet. Das Report-Intervall wird dabei beim Client auf 10 Sekunden und beim Server auf 20 Sekunden gesetzt.
Server:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.110, port 56968
[ 5] local 192.168.1.102 port 5201 connected to 192.168.1.110 port 39957
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-20.00 sec 2.51 MBytes 1.05 Mbits/sec 0.366 ms 0/321 (0%)
[ 5] 20.00-40.00 sec 2.48 MBytes 1.04 Mbits/sec 0.338 ms 0/318 (0%)
[ 5] 40.00-60.00 sec 2.50 MBytes 1.05 Mbits/sec 0.349 ms 0/320 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 0.00 Bytes 0.00 bits/sec 0.349 ms 0/959 (0%)
Client:
Connecting to host 192.168.1.102, port 5201
[ 4] local 192.168.1.110 port 39957 connected to 192.168.1.102 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-10.00 sec 1.24 MBytes 1.04 Mbits/sec 159
[ 4] 10.00-20.00 sec 1.25 MBytes 1.05 Mbits/sec 160
[ 4] 20.00-30.00 sec 1.25 MBytes 1.05 Mbits/sec 160
[ 4] 30.00-40.00 sec 1.25 MBytes 1.05 Mbits/sec 160
[ 4] 40.00-50.00 sec 1.25 MBytes 1.05 Mbits/sec 160
[ 4] 50.00-60.00 sec 1.25 MBytes 1.05 Mbits/sec 160
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 7.49 MBytes 1.05 Mbits/sec 0.349 ms 0/959 (0%)
[ 4] Sent 959 datagrams
iperf Done.
Senderichtung
Ohne spezielle Angabe werden die Daten immer vom Client zum Server gesendet. Mit --reverse
bzw. -R
beim Client kann die Senderichtung umgekehrt werden, so dass der Server sendet und der Client empfängt.
Server:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.110, port 56972
[ 5] local 192.168.1.102 port 5201 connected to 192.168.1.110 port 52700
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 5] 0.00-1.00 sec 120 KBytes 983 Kbits/sec 15
[ 5] 1.00-2.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 2.00-3.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 3.00-4.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 4.00-5.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 5.00-6.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 7.00-8.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 8.00-9.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 9.00-10.00 sec 128 KBytes 1.05 Mbits/sec 16
[ 5] 10.00-10.03 sec 16.0 KBytes 3.97 Mbits/sec 2
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagr
ams
[ 5] 0.00-10.03 sec 1.26 MBytes 1.05 Mbits/sec 0.000 ms 0/161 (0%)
Client:
Connecting to host 192.168.1.102, port 5201
Reverse mode, remote host 192.168.1.102 is sending
[ 4] local 192.168.1.110 port 52700 connected to 192.168.1.102 port 5201
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-1.01 sec 136 KBytes 1.10 Mbits/sec 9.032 ms 0/17 (0%)
[ 4] 1.01-2.00 sec 128 KBytes 1.06 Mbits/sec 3.306 ms 0/16 (0%)
[ 4] 2.00-3.00 sec 128 KBytes 1.05 Mbits/sec 1.211 ms 0/16 (0%)
[ 4] 3.00-4.00 sec 128 KBytes 1.05 Mbits/sec 0.610 ms 0/16 (0%)
[ 4] 4.00-5.00 sec 128 KBytes 1.05 Mbits/sec 0.274 ms 0/16 (0%)
[ 4] 5.00-6.00 sec 128 KBytes 1.05 Mbits/sec 0.168 ms 0/16 (0%)
[ 4] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec 0.362 ms 0/16 (0%)
[ 4] 7.00-8.00 sec 128 KBytes 1.05 Mbits/sec 0.201 ms 0/16 (0%)
[ 4] 8.00-9.00 sec 128 KBytes 1.05 Mbits/sec 0.366 ms 0/16 (0%)
[ 4] 9.00-10.00 sec 128 KBytes 1.05 Mbits/sec 0.231 ms 0/16 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.26 MBytes 1.06 Mbits/sec 0.231 ms 0/161 (0%)
[ 4] Sent 161 datagrams
iperf Done.
Während bei der Vorwärtsrichtung beim Server der Jitter bei den Zwischenresultaten angegeben wurde wird bei der Aussendung vom Server zum Client der Jitter beim Client ausgegeben.
Fazit
Mit diesen Parametern sollten die wichtigsten UDP-Szenarien gemessen werden können. Weitere Parameter können der Hilfe bzw. dem Grundlagen-Artikel entnommen werden.