2012-03-24 14 views
1

Ich versuche, das TCP-Staufenster und den langsamen Startschwellenwert mit iperf und dem tcp_probe-Modul zu plotten. Ich genau das, was hier gesagt:tcp_probe-Modul gibt keine Ausgabe

die Daten zu erhalten:

modprobe tcp_probe port=5001 

chmod 444 /proc/net/tcpprobe 

cat /proc/net/tcpprobe >/tmp/tcpprobe.out & 

TCPCAP=$! 

iperf -i 10 -t 100 -c receiver 

kill $TCPCAP 

Hoppla!

/tmp/tcpprobe.out ist leer :(

Dies ist Ubuntu 11.04 x86

und versuchte bereits das gleiche auf Ubuntu 11.04 x64

Irgendwelche Vorschläge?

Antwort

3

Ich hatte das gleiche Problem. Was für mich gearbeitet wurde:

modprobe -r tcp_probe 

sudo modprobe tcp_probe port=5002 full=1 

sudo chmod 444 /proc/net/tcpprobe 

cat /proc/net/tcpprobe > /tmp/tcpprobe.out & 

TCPCAP=$! 

iperf -c <servers IP address here> -p 5002 -t 100 -i 1 

sudo kill $TCPCAP 

iperf Parameter zu prüfen, ob diejenigen (-t 100 -i 1) sind das, was Sie brauchen, indem Sie eingeben:

man iperf 
1

ich similiar Problem hatte, das tcp_probe Modul gibt nur in nicht offensichtlichen Zeitintervallen aus. Ich habe eine modifizierte Version davon erstellt, die alle empfangenen TCP-Segmente löscht. Dies verlangsamt das System, erlaubt es aber, kurzlebige Verbindungen wie HTTP besser zu überwachen.

Suchen the source code to the module here.

-1

Eine sehr späte Antwort, aber habe selbst mit diesem Problem gekämpft. Ich habe die von Dyna zur Verfügung gestellte Version ausprobiert und trotzdem keine Ausgabe erhalten, unabhängig von den verwendeten Parametern. Am Ende stellte ich fest, dass die Reihenfolge das Problem war.

Die Art, wie ich tcp_probe benutzte, war: Installieren/Aktivieren des Moduls, Ausführen einer TCP-Anwendung (ich führte einige TCP-Komponententests aus), dann Starten des Kopiervorgangs für/proc/net/tcpprobe (wie im anderen gezeigt) Antworten) und dann das Modul entfernen/stoppen. Der richtige Weg ist, den Kopiervorgang (Sperrung Tötung des Verfahrens) zu starten, bevor Sie die TCP-intensive Aktivität durchführen. Lassen Sie den cat-Prozess laufen, während Sie die tcp-Aktivität ausführen, und töten Sie sie erst danach.

Eine recht ernüchternde Erfahrung für mich, da es Stunden dauerte, um dies herauszufinden. Hoffentlich finden Leute das nützlich.

0

eine andere Frage, die keine Ausgabe verursacht Datei Genehmigung der Ausgabedatei tcpprobe.out

wenn Katze tcpprobe direkt ist, es ist in der Lage, die Ausgabe zu sehen, aber wenn die Ausgabe der Datei umleitet, ist die Größe der Ausgabedatei 0, das erinnert mich daran, dass es die Erlaubnis Problem ist ...

3

I/O-Funktion in C-Standardbibliothek Verwendung Puffer standardmäßig in der Regel 4k, so fread() geben nur, wenn der Puffer voll ist oder EOF.Sie können kleine Puffer, 128 Bytes verwenden, siehe:

dd if =/proc/net/tcpprobe ibs = 128 obs = 128

Nun Nachricht bündig schnell.