lon*_*owk 5 c sockets linux raw-sockets packet-injection
我已经比较了两种工具来发送数据包的速度,hping以及packETHcli.packETHcli的命令行选项是
./packETHcli -i eth0 -m 2 -n 0 -d -1 -f icmpSample.pcap
Run Code Online (Sandbox Code Playgroud)
对于hping来说
hping --flood 192.168.0.1
Run Code Online (Sandbox Code Playgroud)
但在iptraf中,它表明发送hping速度的数据包比packETHcli快10倍.
这两种工具都使用原始套接字,但为什么会有这么大的差异?
这是获取源代码的链接.
hping:http://wiki.hping.org/
packETHcli:http://sourceforge.net/projects/packeth/
编辑:
我注意到hping使用AF_INET原始套接字,有效负载是TCP.packETHcli使用PF_PACKET原始套接字,在我的示例中,有效负载是带有ICMP有效负载的IP数据包.它是否会影响数据包发送速度?
EDIT2
这一次,我用ifconfig找到TX包之前之间运行后计数差异hping3和packETHcli.并发现两个工具的数据包生成速率接近.hping3每秒约100000个数据包,每秒packETHcli约80000个数据包.
我还vnstat用来测量数据包生成速率.结果与我得到的数字一致ifconfig.
所以,似乎iptraf谎言.我iptraf用来监视TCP数据包的重复重发,而不更新IP ID号和TCP序列号.iptraf我认为我的数据包发送速率是每秒0个数据包.可能是iptraf不计算重复的数据包?
*.pcap 文件中包含每个数据包的时间戳信息。而且我认为packETHcli工具正在解析*.pcap文件,使用时间戳信息来模拟捕获*.pcap文件的网络环境,这意味着它必须根据时间戳在数据包之间添加一些延迟。
而hping则不然。
我认为这就是区别。
如果是这样,packETHcli工具中是否有任何选项支持加快数据包发送速度?
| 归档时间: |
|
| 查看次数: |
3638 次 |
| 最近记录: |