2013-02-28 7 views
5

私は、パケットを送信するための2つのツール、hpingpackETHcliを比較しました。 packETHcliためのコマンドラインオプションhpingはパケットを送るのにとても速いのですか?

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

とhpingためには

hping --flood 192.168.0.1 

しかしiptrafであるが、それはパケットがhpingのスピードを送信することpackETHcli比べて約10倍高速であることを示しています。

どちらのツールもrawソケットを使用しますが、なぜこのような大きな違いがありますか?

ここにソースコードを取得するためのリンクがあります。

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

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

編集:私はhping使用AF_INET rawソケットは、ペイロードがTCPであることに気づいたpackETHcli PF_PACKET rawソケットを使用し、私の例ではペイロードはICMPのペイロードを持つIPパケットです。 パケット送信速度の違いはありますか?

EDIT2

今回は、TXパケットを見つけるために、ifconfigコマンドを使用する前とhping3packETHcliを実行した後の違いを数えます。そして、2つのツールではパケット生成率が近いことがわかりました。 は約100000パケット/秒であり、packETHcliは約80000パケット/秒である。

また、vnstatを使用してパケット生成率を測定します。そして結果はifconfigから得られる数字と一致しています。

だから、iptrafがあると思われます。そして私はiptrafを使用して、IPパケット番号とTCPシーケンス番号を更新することなく、TCPパケットの繰り返し再送を監視します。 iptraf私のパケットの送信速度は0パケット/秒だと思います。 iptrafになることがあります重複したパケットを数えませんか?

+1

CPU使用率が最大になっていますか?おそらく一方は他方よりも効率的にコード化されているでしょう。 (特殊なツールとして、hpingはおそらくより希薄です)。 – nneonneo

+0

@nneonneoどちらもsendto()を使って生のパケットを送り、for(;;)またはwhile(1)ループをラップします。どちらもシングルスレッドで動作します。 – longbowk

+0

Mhmですが、そのループには他に何がありますか?私が求めているのは、両方のCPUが最大限にCPUを使い果たしているかどうかを判断するためにCPU使用率の「トップ」比較を行うことだけです。あなたは 'ntop'でネットワークを最大限に活用しているかどうかを知りたいかもしれません。 – nneonneo

答えて

0

* .pcapファイルに各パケットのタイムスタンプ情報があります。そして、私は、* .pcapファイルがキャプチャされているネットワーク環境をシミュレートするタイムスタンプ情報を使って、* .pcapファイルを解析していると思うので、タイムスタンプに従ってパケット間の遅延を加えなければなりません。

hpingではありませんが。

私はそれが違いだと思います。

もしそうなら、packetETHcliツールに、送信するパケットのスピードアップをサポートするオプションがありますか?

関連する問題