2013-02-28 6 views
5

패킷 전송 속도가 두 가지 인 도구 hpingpackETHcli을 비교했습니다. packETHcli에 대한 명령 줄 옵션은hping이 패킷을 보내는 데 너무 빠를 수 있습니까?

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

하고 HPING에 대한

hping --flood 192.168.0.1 

입니다 그러나 iptraf에, 그것은 HPING의 속도를 전송 패킷이 약 10 배 빠른 packETHcli보다 것을 보여준다.

두 도구 모두 원시 소켓을 사용하지만 왜 그렇게 큰 차이가 있습니까?

다음은 소스 코드를 가져 오는 링크입니다.

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

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

편집 : 나는 hping 사용 AF_INET 원시 소켓, 페이로드는 TCP입니다 것으로 나타났습니다 . packETHcli은 PF_PACKET raw socket을 사용하고, 필자의 예에서는 페이로드가 ICMP의 페이로드가있는 IP 패킷입니다. 패킷 전송 속도의 차이를 만드나요?

EDIT2

이 시간

, 나는 TX 패킷 전에 사이 hping3packETHcli을 실행 한 후 차이를 계산 찾기 위해 ifconfig를 사용합니다. 그리고 속도를 생성하는 패킷은 두 도구에서 비슷하다는 것을 알았습니다. hping3은 약 100000 패킷/초이고 packETHcli은 약 80000 패킷/초입니다.

또한 패킷 생성 속도를 측정하기 위해 vnstat을 사용합니다. 결과는 ifconfig에서 얻은 숫자와 일치합니다.

따라서 iptraf이있는 것으로 보입니다. 그리고 iptraf을 사용하여 IP ID 번호와 TCP 시퀀스 번호를 업데이트하지 않고 TCP 패킷의 반복 된 재전송을 모니터링합니다. iptraf 내 패킷 전송 속도가 초당 0 패킷이라고 생각하십시오. iptraf 일 수 있습니다 중복 된 패킷을 계산하지 않습니까?

+1

둘 다 CPU 사용량이 최대입니까? 아마도 하나는 다른 하나보다 효율적으로 코딩됩니다. (전문 도구로서 hping은 아마도 더 희박합니다.) – nneonneo

+0

@nneonneo 둘 다 sendto()를 사용하여 원시 패킷을 보내고 for (;;) 또는 while (1) 루프를 래핑합니다. 둘 다 단일 스레드에서 실행됩니다. – longbowk

+0

Mhm,하지만 그 루프에는 얼마나 많은 crud가 있습니까? 필자가 묻는 것은 CPU 사용량의 '상위'비교를 통해 CPU 사용량이 모두 최대가되는지 확인하는 것입니다.ntop을 사용하여 네트워크를 최대화하고 있는지 확인할 수도 있습니다. – nneonneo

답변

0

* .pcap 파일의 각 패킷에 대한 타임 스탬프 정보가 있습니다. 그리고 툴킷 인 PacketHcli가 타임 스탬프 정보를 사용하여 * .pcap 파일을 파싱하고 * .pcap 파일이 캡처 된 네트워크 환경을 시뮬레이트한다고 생각합니다. 타임 스탬프에 따라 패킷 사이에 약간의 지연이 추가되어야 함을 의미합니다.

hping은 그렇지 않습니다.

나는 그것이 차이라고 생각합니다.

그렇다면 패킷 전송 속도를 높이기 위해 packETHcli 도구에 옵션이 있습니까?