2013-02-28 8 views
5

Ich habe zwei Tools für die Geschwindigkeit des Sendens von Paketen, hping und packETHcli verglichen. Die Befehlszeilenoptionen für packETHcli istWie kann das hping so schnell Pakete senden?

./packETHcli -i eth0 -m 2 -n 0 -d -1 -f icmpSample.pcap 

und für hping ist

hping --flood 192.168.0.1 

Aber in iptraf, zeigt es, dass die Pakete Geschwindigkeit von hping Senden ist etwa 10-mal schneller als packETHcli.

Beide Tools verwenden rohe Sockets, aber warum so ein großer Unterschied?

Hier ist der Link, um die Quellcodes zu erhalten.

hping: http://wiki.hping.org/

packETHcli: http://sourceforge.net/projects/packeth/

EDIT: ich, dass die hping Verwendung AF_INET bemerkt Raw-Socket, die Nutzlast TCP ist. packETHcli Verwenden PF_PACKET Raw-Socket, und in meinem Beispiel ist die Nutzlast und IP-Paket mit Payload von ICMP. Macht es den Unterschied der Paketsendegeschwindigkeit?

EDIT2

Diesmal benutze ich ifconfig die TX-Pakete Unterschied hping3 und packETHcli zwischen vor und nach dem Laufen zählen zu finden. Und festgestellt, dass die Raten erzeugenden Pakete für die beiden Tools nah sind. hping3 ist etwa 100000 Pakete pro Sekunde und packETHcli ist etwa 80000 Pakete pro Sekunde.

Ich benutze vnstat auch die Pakete zu erzeugen Raten zu messen. Und das Ergebnis stimmt mit der Nummer überein, die ich von ifconfig bekomme.

So scheint es, dass iptraf liegt. Und ich verwende iptraf, um das wiederholte Neusenden eines TCP-Pakets zu überwachen, ohne die IP-ID-Nummer und TCP-Sequenznummer zu aktualisieren. iptraf denke, meine Paketsende-Rate ist 0 Pakete pro Sekunde. Kann iptraf die doppelten Pakete nicht zählen?

+1

Sind beide auf CPU-Auslastung maximal? Vielleicht ist einer effizienter codiert als der andere. (Als Spezialwerkzeug ist das Hping wahrscheinlich magerer). – nneonneo

+0

@nneonneo Beide verwenden sendto(), um das rohe Paket zu senden, und werden in eine for (;;) - oder while (1) -Schleife eingepackt. Beide laufen in einem Thread. – longbowk

+0

Mhm, aber wie viel andere Crud gibt es in dieser Schleife? Alles, was ich frage, ist ein "Top" Vergleich der CPU-Auslastung, um zu sehen, ob sie beide die CPU ausschöpfen.Sie können auch sehen, ob sie das Netzwerk mit 'ntop' ausstatten. – nneonneo

Antwort

0

Es gibt Zeitstempelinformationen für jedes Paket in der * .pcap-Datei. Und ich denke, das Tool packETHcli analysiert die * .pcap-Datei und verwendet die Timestamp-Informationen, um die Netzwerkumgebung zu simulieren, in der die * .pcap-Datei erfasst wird, dh es muss eine Verzögerung zwischen den Paketen entsprechend dem Zeitstempel hinzugefügt werden.

Während hping nicht.

Ich denke, das ist der Unterschied.

Wenn ja, gibt es eine Option im packETHcli Tool, welches das Senden der Pakete zu beschleunigen unterstützt?

Verwandte Themen