我比较了两个工具的发送数据包速度,hping
以及packETHcli
. packETHcli 的命令行选项是
./packETHcli -i eth0 -m 2 -n 0 -d -1 -f icmpSample.pcap
而对于 hping 是
hping --flood 192.168.0.1
但是在iptraf中显示hping的发包速度比packETHcli快10倍左右。
两种工具都使用原始套接字,但为什么会有如此大的差异?
这是获取源代码的链接。
hping:http ://wiki.hping.org/
packETHcli:http: //sourceforge.net/projects/packeth/
编辑:
我注意到hping
使用 AF_INET 原始套接字,有效负载是 TCP。packETHcli
使用 PF_PACKET 原始套接字,在我的示例中,有效负载是带有 ICMP 有效负载的 IP 数据包。它会影响数据包发送速度吗?
编辑2
这次,我使用 ifconfig 来查找运行前后的 TX 数据包计数hping3
差异packETHcli
。并且发现这两个工具的数据包生成率接近。hping3
大约是每秒 100000 个数据包,packETHcli
大约是每秒 80000 个数据包。
我也vnstat
用来测量数据包的生成率。结果与我从中得到的数字一致ifconfig
。
所以,这似乎是iptraf
谎言。并且我iptraf
用来监控一个TCP数据包的重复重发,而不更新IP ID号和TCP序列号。iptraf
认为我的数据包发送速率是每秒 0 个数据包。可能iptraf
不计算重复的数据包?