pktgen

发布时间 2023-11-14 11:16:38作者: ImreW

一、pktgen使用详细教程

(一)pktgen简介

pktgen是一个位于linux内核层高性能网络测试工具,由瑞士皇家理工大学的TSlab实验室的Robert Olsson开发的(现在应该不在皇家理工了),主要用来测试网络驱动与网卡设备,支持多线程,能够产生随机mac地址、IP地址、UDP端口号的数据包,pktgen 的作者使用多CPU处理器在不同的PCI总线(pci 、pcie等总线)上用千兆以太网卡做过测试(pktgen的表现依赖于CPU处理速率、内存延时、pci总线速率等硬件参数),发送数据速率甚至可以大于10GBit/s。可见是可以满足大多数的网卡等测试需求

pktgen的配置与统计信息查看都使用/proc文件系统完成,/proc文件系统是一种特殊的,有软件创建的文件系统,内核使用/proc文件系统向外界导出信息,外界也可以通过它配置内核态的一些进程的参数,如ps top uptime等linux发行版中的很多工具就是通过/proc实现的.在大多情况下,我们只用/proc读出数据(用于调试内核驱动等),而在pktgen中配置命令就用到了/proc的写入数据功能。

(二)使用pktgen进行发包实验

现在版本的linux发行版大多加入了pktgen,使用以下命令加载pktgen模块:

#modprobe pktgen

然后你将在你的电脑的/proc/net/pktgen看到以下文件:

kpktgend_0  kpktgend_1  kpktgend_2  kpktgend_3  pgctrl

其中kpktgen_*的多少是根据你的CPU的个数决定的,如我的机子的CPU数目为4,则有四个此文件。

通过命令cat /proc/net/pktgen/pgctrl可以查看pktgen的版本等信息:

#cat /proc/net/pktgen/pgctrl<br>Packet Generator for packet performance testing. Version: 2.74