Linux发包工具pktgen

pktgen是Linux内核自带的高性能发包工具,主要用于网络性能测试。它运行于内核态,资源消耗少,发包速率高,特别适合千兆网卡测试,无需额外硬件。pktgen仅支持UDP发包,适用于底层网络设备性能测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.pktgen简介:

    pktgen是Linux内核里包含的一个高性能发包工具,主要用来测试网络性能。一般情况下,使用pktgen就可以满足千兆网卡的测试需要,不必花钱购买昂贵的硬件发包设备。
pktgen运行在“内核态”,并不占用太多的系统资源,就可以达到非常高的发包速率。
    pktgen只支持UDP发包(端口9)。因为pktgen是一个非常底层测试工具,而且一般是测试网络设备的性能,并不涉及到应用层面。
如果要测试高级的网络应用的性能,请使用其它的测试工具。

sudo modprobe pktgen //加载内核模块后,我们可以通过命令modinfo pktgen看到pktgen已经在/proc文件系统里和内核线程中出现了。

 ls /proc/net/pktgen/ //可以看到其中的每一个线程对应到一个CPU

参考网址:
http://www.cnblogs.com/kekukele/p/3709781.html
https://wenku.baidu.com/view/0a90276d011ca300a6c390a2.html


linux上的应用pktgen发包(与pktgen-dpdk发包不同)

modprobe pktgen
cd /proc/net/pktgen/

echo rem_device_all>kpktgend_0  //删除绑定在某个线程(kpktgend_0)的所有端口
echo add_device enp61s0f0>kpktgend_0  //添加某个端口(enp61s0f0)到某个线程(kpktgend_0)

echo count 1000>enp61s0f0 //发送数据包的个数,0 表示一直发送
echo clone_skb 1000>enp61s0f0 //表示复制多少数据包,clone_skb=1000,说明发送完第一个数据包后,接着还发送1000个这种克隆的包;clone_skb=0表示只发送master包,即重复发送这种相同的数据包。
echo pkt_size 1000>enp61s0f0
echo dst 10.11.11.11>enp61s0f0
echo dst_mac 48:bd:3d:2e:91:66>enp61s0f0
echo start>pgctrl //所有的线程开始发送

echo stop>pgctrl //所有的线程发送停止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值