패킷 전송 속도가 두 가지 인 도구 hping
및 packETHcli
을 비교했습니다. 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 패킷 전에 사이hping3
및
packETHcli
을 실행 한 후 차이를 계산 찾기 위해 ifconfig를 사용합니다. 그리고 속도를 생성하는 패킷은 두 도구에서 비슷하다는 것을 알았습니다.
hping3
은 약 100000 패킷/초이고
packETHcli
은 약 80000 패킷/초입니다.
또한 패킷 생성 속도를 측정하기 위해 vnstat
을 사용합니다. 결과는 ifconfig
에서 얻은 숫자와 일치합니다.
따라서 iptraf
이있는 것으로 보입니다. 그리고 iptraf
을 사용하여 IP ID 번호와 TCP 시퀀스 번호를 업데이트하지 않고 TCP 패킷의 반복 된 재전송을 모니터링합니다. iptraf
내 패킷 전송 속도가 초당 0 패킷이라고 생각하십시오. iptraf
일 수 있습니다 중복 된 패킷을 계산하지 않습니까?
둘 다 CPU 사용량이 최대입니까? 아마도 하나는 다른 하나보다 효율적으로 코딩됩니다. (전문 도구로서 hping은 아마도 더 희박합니다.) – nneonneo
@nneonneo 둘 다 sendto()를 사용하여 원시 패킷을 보내고 for (;;) 또는 while (1) 루프를 래핑합니다. 둘 다 단일 스레드에서 실행됩니다. – longbowk
Mhm,하지만 그 루프에는 얼마나 많은 crud가 있습니까? 필자가 묻는 것은 CPU 사용량의 '상위'비교를 통해 CPU 사용량이 모두 최대가되는지 확인하는 것입니다.ntop을 사용하여 네트워크를 최대화하고 있는지 확인할 수도 있습니다. – nneonneo