Tutorials

Tutorials, die ich verfasst habe.

NSIS Tutorial Teil 1

Die meisten Anwendungen kommen mit einem Installations-Programm. In diesem Tutorial zeige ich einige einfache Schritte, um einen Installer mit dem Nullsoft Scriptable Install System (NSIS) zu erstellen.

NSIS Tutorial Teil 2

In diesem Teil werden wir die installierten Dateien auch wieder entfernen. Zudem werden wir einige weitere Wizard-Seiten anschauen und dem Benutzer die Möglichkeit geben, bestimmte Teile der Installation auszuwählen.

NSIS Tutorial Teil 3

Im dritten Teil des NSIS Tutorials erhält der Installer ein etwas aktuelleres Erscheinungsbild.

iperf - Grundlagen

iperf ist ein dediziertes Tool um eine verlässliche Aussage über die Qualität des Netzwerkes machen zu können. Dieser Artikel behandelt die Grundlagen der Version 3 von iperf.

iperf - UDP Messungen

Das User Datagram Protocol, oder kurz UDP, ist ein einfaches, verbindungsloses Protokoll. Mit UDP Messungen können Aussagen über den Paketverlust und den Jitter (Laufzeitvarianz von Datenpaketen) gemacht werden.

iperf - TCP Messungen

[caption id="attachment_243" align="alignright" width="300"]network switch with cables Photo by Thomas Jensen on Unsplash[/caption]Das Transmission Control Protocol, oder kurz TCP, ist ein zuverlässiges, verbindungsorientiertes, paketvermitteltes Transportprotokoll. Mit TCP Messungen können Aussagen über die maximale Bandbreite gemacht werden. Um TCP Messungen mit iperf durchführen zu können muss kein spezieller Parameter angegeben werden. Es darf aber nicht der Parameter [cci]--udp[/cci] oder [cci]-u[/cci] verwendet werden, da dieser für Messungen via UDP verwendet wird. Im einfachsten Fall sieht ein Durchlauf wie folgt aus: Server: [cc] $ iperf3 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.1.112, port 51459 [ 5] local 192.168.1.112 port 5201 connected to 192.168.1.112 port 51460 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 99.0 MBytes 831 Mbits/sec [ 5] 1.00-2.00 sec 99.8 MBytes 837 Mbits/sec [ 5] 2.00-3.00 sec 101 MBytes 844 Mbits/sec [ 5] 3.00-4.00 sec 103 MBytes 860 Mbits/sec [ 5] 4.00-5.00 sec 108 MBytes 905 Mbits/sec [ 5] 5.00-6.00 sec 110 MBytes 923 Mbits/sec [ 5] 6.00-7.00 sec 103 MBytes 868 Mbits/sec [ 5] 7.00-8.00 sec 103 MBytes 861 Mbits/sec [ 5] 8.00-9.00 sec 77.9 MBytes 653 Mbits/sec [ 5] 9.00-10.00 sec 53.3 MBytes 447 Mbits/sec [ 5] 10.00-10.00 sec 71.3 KBytes 375 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.00 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-10.00 sec 957 MBytes 803 Mbits/sec receiver [/cc] Client: [cc] $ iperf3 -c 192.168.1.112 Connecting to host 192.168.1.112, port 5201 [ 4] local 192.168.96.129 port 54510 connected to 192.168.1.112 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.01 sec 99.7 MBytes 831 Mbits/sec 0 65.6 KBytes [ 4] 1.01-2.00 sec 99.5 MBytes 837 Mbits/sec 0 65.6 KBytes [ 4] 2.00-3.01 sec 101 MBytes 843 Mbits/sec 0 65.6 KBytes [ 4] 3.01-4.00 sec 102 MBytes 863 Mbits/sec 0 65.6 KBytes [ 4] 4.00-5.00 sec 108 MBytes 907 Mbits/sec 0 65.6 KBytes [ 4] 5.00-6.00 sec 110 MBytes 921 Mbits/sec 0 65.6 KBytes [ 4] 6.00-7.00 sec 104 MBytes 869 Mbits/sec 0 65.6 KBytes [ 4] 7.00-8.00 sec 103 MBytes 859 Mbits/sec 0 65.6 KBytes [ 4] 8.00-9.00 sec 77.9 MBytes 655 Mbits/sec 0 65.6 KBytes [ 4] 9.00-10.00 sec 53.3 MBytes 447 Mbits/sec 0 65.6 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 957 MBytes 803 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 957 MBytes 803 Mbits/sec receiver iperf Done. [/cc] Wie man sehen kann ist TCP die Standard-Messung bei iperf3. Es gibt keinen expliziten Parameter für TCP, durch das Fehlen des Paramters [cci]--udp[/cci] bzw. [cci]-u[/cci] wird immer TCP verwendet. Anhand der Ausgaben sieht man auch schon, dass mit einer Dauer von 10 Sekunden und einem Ausgabeintervall von 1 Sekunde als Defaultwerte gemessen wird. Es wird dabei versucht, die Verbindung zwischen Client und Server möglichst auszulasten ("bandwith unlimited"). Bandbreite beschränken Wenn man nicht die komplette Bandbreite verwenden will kann die Bandbreite mit [cci]--bandwidth #[KMG][/#][/cci] bzw. [cci]-b #[KMG][/#][/cci] beschränkt 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 mit 5Mbit/s gesendet, es werden aber 10 Pakete aufs Mal gesendet: [cc] $ iperf3 -c 192.168.1.112 -b 5M/10 Connecting to host 192.168.1.112, port 5201 [ 4] local 192.168.96.130 port 48636 connected to 192.168.1.112 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 1.41 MBytes 11.8 Mbits/sec 0 64.2 KBytes [ 4] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 0 64.2 KBytes [ 4] 2.00-3.00 sec 579 KBytes 4.74 Mbits/sec 0 65.6 KBytes [ 4] 3.00-4.00 sec 1.25 MBytes 10.5 Mbits/sec 0 74.1 KBytes [ 4] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0 74.1 KBytes [ 4] 5.00-6.00 sec 1.25 MBytes 10.5 Mbits/sec 0 64.2 KBytes [ 4] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0 64.2 KBytes [ 4] 7.00-8.00 sec 519 KBytes 4.25 Mbits/sec 0 71.3 KBytes [ 4] 8.00-9.00 sec 485 KBytes 3.97 Mbits/sec 0 68.4 KBytes [ 4] 9.00-10.00 sec 1.25 MBytes 10.5 Mbits/sec 0 64.2 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 6.71 MBytes 5.62 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 6.71 MBytes 5.62 Mbits/sec receiver iperf Done. [/cc] 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 [cci]--time #[/cci] bzw. [cci]-t # [/cci] kann beim Client die Aussendedauer in Sekunden angegeben werden. Das Report-Intervall kann mit [cci]--interval #[/cci] bzw. [cci]-i # [/cci] 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: [cc ]$ iperf3 -s -i 20 ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.1.112, port 49763 [ 5] local 192.168.1.112 port 5201 connected to 192.168.1.112 port 49764 [ ID] Interval Transfer Bandwidth [ 5] 0.00-20.00 sec 1.32 GBytes 567 Mbits/sec [ 5] 20.00-40.00 sec 1.26 GBytes 541 Mbits/sec [ 5] 40.00-60.00 sec 1.31 GBytes 565 Mbits/sec [ 5] 60.00-60.00 sec 207 KBytes 689 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-60.00 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-60.00 sec 3.89 GBytes 558 Mbits/sec receiver [/cc] Client: [cc] $ iperf3 -c 192.168.1.112 -i 10 -t 60 Connecting to host 192.168.1.112, port 5201 [ 4] local 192.168.96.130 port 48640 connected to 192.168.1.112 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-10.00 sec 687 MBytes 576 Mbits/sec 0 65.6 KBytes [ 4] 10.00-20.00 sec 665 MBytes 558 Mbits/sec 0 65.6 KBytes [ 4] 20.00-30.00 sec 661 MBytes 555 Mbits/sec 0 65.6 KBytes [ 4] 30.00-40.00 sec 629 MBytes 527 Mbits/sec 0 65.6 KBytes [ 4] 40.00-50.00 sec 624 MBytes 524 Mbits/sec 0 65.6 KBytes [ 4] 50.00-60.00 sec 722 MBytes 606 Mbits/sec 0 65.6 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-60.00 sec 3.89 GBytes 558 Mbits/sec 0 sender [ 4] 0.00-60.00 sec 3.89 GBytes 558 Mbits/sec receiver iperf Done. [/cc] Senderichtung Ohne spezielle Angabe werden die Daten immer vom Client zum Server gesendet. Mit [cci]--reverse[/cci] bzw. [cci]-R[/cci] beim Client kann die Senderichtung umgekehrt werden, so dass der Server sendet und der Client empfängt. Server: [cc] $ iperf3 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.1.112, port 50019 [ 5] local 192.168.1.112 port 5201 connected to 192.168.1.112 port 50020 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 114 MBytes 953 Mbits/sec [ 5] 1.00-2.00 sec 110 MBytes 918 Mbits/sec [ 5] 2.00-3.00 sec 115 MBytes 962 Mbits/sec [ 5] 3.00-4.00 sec 112 MBytes 940 Mbits/sec [ 5] 4.00-5.00 sec 107 MBytes 900 Mbits/sec [ 5] 5.00-6.00 sec 117 MBytes 982 Mbits/sec [ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec [ 5] 7.00-8.00 sec 114 MBytes 959 Mbits/sec [ 5] 8.00-9.00 sec 100 MBytes 839 Mbits/sec [ 5] 9.00-10.00 sec 92.6 MBytes 776 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.00 sec 1.07 GBytes 917 Mbits/sec sender [ 5] 0.00-10.00 sec 0.00 Bytes 0.00 bits/sec receiver [/cc] Client: [cc] $ iperf3 -c 192.168.1.112 -R Connecting to host 192.168.1.112, port 5201 Reverse mode, remote host 192.168.1.112 is sending [ 4] local 192.168.96.130 port 48644 connected to 192.168.1.112 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 109 MBytes 918 Mbits/sec [ 4] 1.00-2.00 sec 109 MBytes 917 Mbits/sec [ 4] 2.00-3.00 sec 116 MBytes 970 Mbits/sec [ 4] 3.00-4.00 sec 112 MBytes 936 Mbits/sec [ 4] 4.00-5.00 sec 109 MBytes 912 Mbits/sec [ 4] 5.00-6.00 sec 117 MBytes 982 Mbits/sec [ 4] 6.00-7.00 sec 112 MBytes 940 Mbits/sec [ 4] 7.00-8.00 sec 114 MBytes 959 Mbits/sec [ 4] 8.00-9.00 sec 98.5 MBytes 826 Mbits/sec [ 4] 9.00-10.00 sec 92.7 MBytes 778 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 1.07 GBytes 917 Mbits/sec sender [ 4] 0.00-10.00 sec 1.06 GBytes 914 Mbits/sec receiver iperf Done. [/cc] Fazit Mit diesen Parametern sollten die wichtigsten TCP-Szenarien gemessen werden können. Weitere Parameter können der Hilfe bzw. dem Grundlagen-Artikel entnommen werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.