2013-02-28 26 views
5

Porównałem dwa narzędzia do szybkości wysyłania pakietów, hping i packETHcli. Opcje wiersza polecenia dla packETHcli jestJak może być tak szybkie wysyłanie pakietów?

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

i hping jest

hping --flood 192.168.0.1 

Ale w iptraf, to pokazuje, że pakiety z prędkością wysyłania hping jest około 10 razy szybciej niż packETHcli.

Oba narzędzia używają gniazd surowych, ale dlaczego tak duża różnica?

Oto link do uzyskania kodów źródłowych.

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

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

EDIT: zauważyłem, że gniazdo surowy AF_INET hping używanie, ładunek jest TCP. packETHcli używaj surowego gniazda PF_PACKET, aw moim przykładzie ładunek jest i pakiet IP z ładunkiem ICMP. Czy robi różnicę prędkości wysyłania pakietów?

EDIT2

Tym razem używam ifconfig aby znaleźć pakiety TX liczyć różnicę pomiędzy przed i po uruchomieniu hping3 i packETHcli. Okazało się, że pakiety generujące stawki są zbliżone do dwóch narzędzi. hping3 to około 100 000 pakietów na sekundę, a packETHcli to około 80000 pakietów na sekundę.

Używam również vnstat do pomiaru pakietów generujących stawki. Wynik jest zgodny z numerem uzyskanym z ifconfig.

Wygląda na to, że kłamie iptraf. I używam iptraf do monitorowania powtórnego ponownego wysłania pakietu TCP, bez aktualizacji numeru IP ID i numeru kolejnego TCP. iptraf Myślę, że moja stawka wysyłania pakietów wynosi 0 pakietów na sekundę. Może być iptraf, nie licząc zduplikowanych pakietów?

+1

Czy są one maksymalnie obciążające procesor? Być może jeden jest wydajniej kodowany niż drugi. (Jako narzędzie specjalistyczne, hping jest prawdopodobnie bardziej szczupły). – nneonneo

+0

@nneonneo Obaj używają sendto(), aby wysłać surowy pakiet i zawinąć w pętlę for (;;) lub while (1). Oba działają w jednym wątku. – longbowk

+0

Mhm, ale ile innych crudów jest w tej pętli? Wszystko, o co pytam, to zrobić "górne" porównanie użycia procesora, aby sprawdzić, czy oba te procesy maksymalizują procesor.Możesz również sprawdzić, czy maksymalizują one sieć za pomocą 'ntop'. – nneonneo

Odpowiedz

0

Istnieje informacja o sygnaturze czasowej dla każdego pakietu w pliku * .pcap. I myślę, że pakiet narzędziowy CONHcli analizuje plik * .pcap, używając informacji o znaczniku czasu do symulacji środowiska sieciowego, w którym przechwycono plik * .pcap, co oznacza, że ​​musi dodać pewne opóźnienie między pakietami zgodnie ze znacznikiem czasu.

Podczas gdy hping nie.

Myślę, że to różnica.

Jeśli tak, to czy istnieje jakieś narzędzie PacketHcli, które obsługuje przyspieszanie wysyłania pakietów?