Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
Ubuntu 8.04 „Hardy Heron“
nttcp ist ein Werkzeug für die Kommandozeile, mit dem man die Geschwindigkeit einer Netzwerkverbindung testen kann. Dies kann z.B. nützlich sein, wenn man die Übertragungsgeschwindigkeit zwischen einem Client und einem Server testen möchte. Natürlich eignet sich nttcp auch zur Messung zwischen zwei (Client-) Rechner in eine Netzwerk. Dabei spielt es keine Rolle, ob die Rechner über Kabel oder WLan verbunden sind.
Folgendes Paket muss sowohl sowohl auf dem Ausgangs- als auch auf dem Zielrechner installiert [1] werden:
nttcp (multiverse)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install nttcp
sudo aptitude install nttcp
nttcp ist auch für andere Unix-Varianten verfügbar, so dass nicht unbedingt auf beiden Rechner Linux installiert sein muss.
Die Syntax von nttcp ist relativ einfach [2]:
nttcp <Option> Zieladresse # für den Rechner, der die Verbindung initiiert nttcp -i # für den Rechner, der auf die Verbindung wartet
Als Zieladresse ist dabei die IP-Adresse des Zielrechners anzugeben.
Per Voreinstellung sendet nttcp dabei 2048 TCP-Datenpaket mit einer Größe von 4 kB an den Zielrechner und misst dabei die Zeit, die dafür benötigt wird. Die Ergebnisse der Transfergeschwindigkeitsmessung werden in Tabellenform dargestellt, die Ausgabe erfolgt dabei standardmäßig auf stdout (also in der Regel den Bildschirm).
Nach Ende der Messung muss man nttcp auf dem Zielrechner manuell stoppen, da es sonst in "Wartestellung" bleibt!
nttcp kennt dabei eine Reihe von Optionen:
Optionen von nttcp | |
Option | Beschreibung |
-T | gibt eine Kopfzeile für die Ergebnistabelle aus (verbessert die Lesbarkeit der Ergebnisse) |
-u | nttcp versendet UDP-Pakete statt TCP-Pakete |
-n Zahl | es werden "Zahl" Datenpakete verschickt (Voreinstellung 2048) |
-l Zahl | die Datenpakete haben eine Länge von "Zahl", muss in Byte angegeben werden (Voreinstellung 4096) |
-r | die Datensenderichtung wird umgedreht, d.h. der Ausgangsrechner initiiert die Verbindung, allerdings werden die Datenpakete von Zielrechner an den Ausgangsrechner gesendet |
-v | ausführlichere Ausgabe, i.d.R. nur bei Problemen nötig |
-h | gibt eine kurze Befehlsübersicht zu nttcp aus |
nttcp kennt noch eine Reihe weitere Optionen, so kann z.B. auch die Art der Ausgabe des Ergebnisses beeinflusst werden. Die weiteren Optionen kann in den Manpages zu nttcp nachlesen.
Möchte oder muss man regelmäßig Geschwindigkeitsmessung zwischen zwei Rechner machen, so kann man auf dem Zielrechner (z.B. dem Server) auch nttcp per inetd starten lassen.
Davon rät der Entwickler aber ausdrücklich aufgrund von Sicherheitsrisiken ab!
Under security considerations, the inetd-mode of operation is NOT suggested. Hosts configured to start nttcp this way, are very open to denial-of-service attacks. If you are concerned about this issue, you should consider either the use of tcpwrapper or simply not install nttcp this way. (Zitat aus den Manpages, Abschnitt "Security")
Wer nttcp trotzdem über inetd starten lassen möchte, findet in den Manpages die entsprechenden Hinweise zur Einrichtung.
Die Ausgabe der Messung kann z.B. so aussehen:
user@laptop:~$ nttcp -T 192.168.2.100
Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l 8388608 13.21 0.19 5.0794 349.5053 2048 155.01 10666.1 1 8388608 13.25 0.07 5.0654 932.0158 5686 429.18 78967.8
Hier wurde also eine Verbindung zum (lokalen) Rechner mit der IP-Adresse 192.168.2.100 aufgebaut. Die Transferrate zwischen dem Ausgangsrechner und dem Zielrechner wurde mit ca. 5,1 MBit/s bestimmt.
ehemalige Homepage - nicht mehr verfügbar
ttcp/nttcp/nuttcp/iperf versions - ältere Beschreibung
iperf - Netzwerk-Geschwindigkeit messen
Benchmarks Übersichtsartikel