一种数据包构造系统及其工作方法与流程

文档序号:12751877阅读:339来源:国知局

本发明属于数据通信领域,尤其涉及到一种数据包构造系统及其工作方法。



背景技术:

对于网络软硬件产品,在上市发布前需要大量的真实流量进行长期测试,已提早发现解决性能和功能上的问题。真实的流量特别是较高的(万兆)往往是不可能直接拿到,出于用户私密性和权限的限制。而市面上一些模拟流量的商用的数据包生成器,特别昂贵基本是100万以上的价格,这给中小公司的产品测试带来了困扰。



技术实现要素:

为解决上述问题,本发明提供了一种数据包构造系统,所述系统运行于服务器上,其包括原始数据包库、数据放大模块、放大倍数设置模块。

所述原始数据包库内存储有若干被预先分类的原始数据包,每个分类下具有一个或者若干个原始数据包。

所述数据放大模块用于读取原始数据包库中选定的原始数据包,提取相关信息,根据放大倍数对信息进行变化后复制生成信息不重复的数据包。

所述放大倍数设置模块用于设置数据放大倍数。

数据发送模块用于发送数据放大模块生成的数据包。

进一步的,所述数据放大模块读取原始数据包中的IP信息和端口号信息。

进一步的,所述系统还包括人机交互界面,所述人机交互界面与放大倍数设置模块及数据发送模块连接,用于配置数据放大倍数,并发送复制后的数据。

进一步的,所述人机交互界面还读取数据发送模块的相关参数,以监控数据包发送情况。

进一步的,所述系统还设置有数据包读发调节单元,用于加速或者减速数据包的读取和发送速度,所述人机交互界面设置对应于数据读发调节单元的、可手动调节的功能条,调节功能条能控制数据包的读取和发送速度。

进一步的,数据包的发送速度参数包括每秒发送数据包大小的总数、每秒发送数据包个数总数。

进一步的,所述原始数据包库中的数据包按照行业进行分类。

上述数据包构造系统的工作方法包括如下步骤:

步骤一:预先在原始数据包库存入需要的原始数据包。

步骤二:选定需要复制学习的原始数据包。

步骤三:执行数据包读取线程,顺序读取所选定原始数据包中的相关信息,读取后将相关信息按照预定规则进行修改。

步骤四:执行数据包发送线程,发送修改后形成的数据包。

步骤五:重复执行步骤三、四,直到完成预定的数据包发送任务。

进一步的,步骤三中,步骤三具体为:执行数据包读取线程,顺序读取各个原始数据包中的IP地址和端口号,读取后将IP地址的四个字节循环进行规律修改,并将端口信息的2个字节循环进行规律修改。

进一步的,所述方法还包括用户控制数据包读取和发送速度的过程,该过程通过在步骤三中执行的数据包读取线程和步骤四中执行的数据包发送线程中增加sleep(n)函数来实现,其中n表示休眠时间。

本发明的有益效果为:

本发明通过植入原始数据包,改变原始数据包相关信息的方式复制产生不重复的数据包,并预先设定流量放大倍数以产生符合要求的流量。另外,本发明的还可以通过控制BPS(每秒数据流量)、PPS(每秒数据包个数)进行数据包读取及数据包发送的控制,具有极好的操作性。

附图说明

图1是本发明所述方法的时序图。

具体实施方式

本发明提供了一种数据包构造系统,所述系统运行于服务器上,其包括原始数据包库、数据放大模块、放大倍数设置模块。所述服务器应配置足够大的磁盘空间,原始数据包库位于磁盘空间内。

所述原始数据包库内存储有若干被预先分类的原始数据包,每个分类下具有一个或者若干个原始数据包。所述原始数据包库中的数据包按照行业进行分类,如运营商、金融系统、政府 能源。

所述数据放大模块用于读取原始数据包库中选定的原始数据包,提取相关信息,根据放大倍数对信息进行变化后复制生成信息不重复的数据包。一般而言,数据放大模块会读取原始数据包中的IP信息和端口号信息加以改变。

所述放大倍数设置模块用于设置数据放大倍数。

通过放大倍数来指定对每个数据包的副本个数,例如原始数据包是1.1.1.1:11111 <-> 2.2.2.2:22222(四元组信息)的数据包,经过2倍放大后,实际发出的是两个数据包如下:

1.1.1.2:11111 <-> 1.2.2.2:22222

1.1.1.3:11111 <-> 3.2.2.2:22222

这样可以方便地将实际构造的流量模拟发送到万兆的水平。数据包万兆发送技术可采用Inter公开共享的DPDK技术。

数据发送模块用于发送数据放大模块生成的数据包。所述数据发送模块一般为网卡。

优选的,所述系统还包括人机交互界面,所述人机交互界面与放大倍数设置模块及数据发送模块连接,用于配置数据放大倍数,并发送复制后的数据。更优选的,进一步的,所述人机交互界面还读取数据发送模块的相关参数,以监控数据包发送情况(采用定时器监控)。所述数据发送模块的相关参数包括每秒发送数据包大小的总数(BPS)、每秒发送数据包个数总数(PPS)。

优选的,所述系统还设置有数据包读发调节单元,用于加速或者减速数据包的读取和发送速度,所述人机交互界面设置对应于数据读发调节单元的、可手动调节的功能条,调节功能条能控制数据包的读取和发送速度。具体实现室在数据包线程和数据包发送线程中增加sleep(n)函数来实现 ,n为休眠时间,全速时n为0。

上述数据包构造系统的工作方法包括如下步骤:

步骤一:预先在原始数据包库存入需要的原始数据包。

步骤二:选定需要复制学习的原始数据包。

步骤三:执行数据包读取线程,顺序读取所选定原始数据包中的相关信息,读取后将相关信息按照预定规则进行修改。

以IP地址信息及端口信息为例,分别为四个字节和两个字节,顺序读取各个原始数据包中的IP地址和端口号,读取后将IP地址的四个字节循环进行规律修改,并将端口信息的2个字节循环进行规律修改。如下代码所示:

IPConvert(const uint8* in, int count , uint8* out)

{

for(int i = 0 ; i < 4; i++)

{

*out = static_const((*in) * 13 * count);

in++;

out++;

}

}

PortConvert(const uint8* in, int count , uint8* out)

{

for(int i = 0 ; i < 2; i++)

{

*out = static_const((*in) * 13 * count);

in++;

out++;

}

}

步骤四:执行数据包发送线程,发送修改后形成的数据包。

步骤五:重复执行步骤三、四,直到完成预定的数据包发送任务。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1