首页> 中国专利> 基于多分形小波模型的FPGA网络流量发生系统及方法

基于多分形小波模型的FPGA网络流量发生系统及方法

摘要

本发明公开了基于多分形小波模型的FPGA网络流量发生系统及方法,包括依次连接的第一PCI主机、以太网输入接口、第一MAC地址输入队列、用户数据路径、第二MAC地址输入队列、以太网输出接口、第二PCI主机,第一PCI主机的信号还会送入寄存器输入输出接口,寄存器输入输出接口还与SRAM寄存器双向通信,用户数据路径还包括依次连接的数据包产生模块、数据仲裁转换模块、输出端查询模块、多分形小波模型控制模块和输出队列模块,数据包产生模块接收第一MAC地址输入队列的数据,输出队列模块的数据送入第二MAC地址输入队列。克服了以往流量发生系统所存在的不能模拟真实网络背景流量问题,拟合网络真实流量特征,用于网络新应用开发,网络流量分析和网络设备的测试。

著录项

  • 公开/公告号CN103248540A

    专利类型发明专利

  • 公开/公告日2013-08-14

    原文格式PDF

  • 申请/专利权人 济南大学;

    申请/专利号CN201310201863.0

  • 申请日2013-05-27

  • 分类号H04L12/26;H04L12/801;

  • 代理机构济南圣达知识产权代理有限公司;

  • 代理人张勇

  • 地址 250022 山东省济南市市中区济微路106号

  • 入库时间 2024-02-19 20:16:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-30

    授权

    授权

  • 2013-09-11

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20130527

    实质审查的生效

  • 2013-08-14

    公开

    公开

说明书

技术领域

本发明涉及一种基于多分形小波模型的FPGA网络流量发生系统及方法。

背景技术

在进行以太网测试的时候,经常需要流量发生器的协助,比如:在一个网段上施加预定 大小的流量用于测试网段的出错情况;通过生成坏帧(例如超短帧或超长帧)流量来测试网 络错误报告功能;利用远端设备检测功能来测试单端通过量;模拟额外用户;验证对交换机 端口流量的统计信息等。流量发生器是一种可以产生特定类型、特定长度、特定速率的帧, 并对网络的总体流量和利用率等参数进行统计的工具。

互联网的应用类型都有自己的统计特征,根据这些特征对网络进行分类和分析可以有效 的对网络的流量进行控制,为网络的使用者提供一个安全、可靠、高效的使用环境。而对网 络流量分析和分类的过程中,带特定标签的流量可以很好的对网络流量分类器进行训练,达 到最佳的分类效果,这种标签是互联网中所不存在的,因此,在实际的工程中,需要一种能 够产生高效、准确、快速的网络流量模型产生特定的数据标签,完成对网络流量分类器的训 练,从而达到精准的网络流量分类效果。

网络中的流量模型特征以及刻画这些特征的参数是流量建模的依据和基础。流量建模的 目的是通过模型,产生于具有真实网络流量特征的流量,并以此更好的服务于网络设备性能 研究、网络流量预测和网络流量的分类等。网络流量研究表明,最重要的统计特征是在大尺 度下的自相似性特征和小时间尺度下的多分形特征。

基于模型的流量产生(具有互联网背景的流量)算法模型采用的是多分型小波模型(MWM)。 研究发现,基于多分型的小波模型能够反映出互联网流量的长相关性和突发性,该模型能够 更好的描绘互联网流量特征。

发明内容

本发明的目的就是为了解决上述问题,提供一种基于多分形小波模型的FPGA网络流量发 生系统及方法,克服了以往流量发生系统所存在的不能模拟真实网络背景流量问题,能够拟 合网络真实流量特征,用于对网络新应用开发,网络流量分析和网络设备的测试。

为了实现上述目的,本发明采用如下技术方案:

一种基于多分形小波模型的FPGA网络流量发生系统,包括依次连接的第一PCI主机、以 太网输入接口、第一MAC地址输入队列、用户数据路径(User Data Path)、第二MAC地址输 入队列、以太网输出接口、第二PCI主机,所述用户数据路径(User Data Path)还与寄存器 输入输出接口(Register I/O)、SRAM寄存器(SRAM Interface)和DRAM寄存器(DRAM Interface) 双向通信,所述第一PCI主机的信号还会送入寄存器输入输出接口(Register I/O),寄存器 输入输出接口(Register I/O)还与SRAM寄存器(SRAM Interface)双向通信,所述用户数据路 径还包括依次连接的数据包产生模块(packet_generator_module)、数据仲裁转换模块 (input_arbiter_module)、输出端查询模块(Output_port_lookup_module)、多分形小波模 型控制模块(MWM_control_module)和输出队列模块(output_aueues_module),所述数据包产 生模块(packet_generator_module)接收第一MAC地址输入队列的数据,所述输出队列模块 (output_aueues_module)的数据送入第二MAC地址输入队列。

所述数据包产生模块包括依次连接的产生IP数据包头部和负载的模块、数据包控制模块 和先入先出模块,所述IP数据包头部和负载的模块接收随机数产生模块产生的随机数,数据 包控制模块接收数据包头,所述产生IP数据包头部和负载的模块与数据包控制模块之间是双 向通信,所述数据包控制模块和先入先出模块之间也是双向通信。

所述多分形小波模型控制模块包括升采样器、高通滤波器和低通滤波器,

所述升采样器用于对输入的信号进行升采样后送入到相应的高通滤波器和低通滤波器 中;

所述高通滤波器用于对输入的信号进行高通滤波;

所述低通滤波器用于对输入的信号进行低通滤波。

所述数据包产生模块用于产生符合互联网标准的数据包。

所述输入仲裁转换模块用于查询8输入队列中是否有输入数据,并且循环读取有输入数 据的队列,把这些数据交给输出端查询模块。

所述输出端查询模块用于:查询数据包的MAC地址位,并且根据MAC地址转发数据包。

所述多分形小波模型控制模块用于:产生一系列的数据包间隔时间,根据时间间隔控制 数据包的发送时间。

所述输出队列模块用于:根据MAC地址缓存输出数据,并且去掉NF2工程的包头,还原 数据包为网络数据包。

所述随机数产生模块为产生TCP或者UDP数据包所需要的负载,根据不同的需求,产生 不同数目或者字节的负载,以及在随机模式下产生数据包包头的随机IP地址和MAC地址,以 及端口号。

所述产生IP数据包头部和负载的模块用于:IP数据包有ip数据包头和负载两部分组成, IP数据包头模块部产生数据包的包头信息,负载产生数据包的负载信息

所述数据包控制模块用于:把IP数据包头和包负载进行合成,生成一个完整的数据包。

所述同步FIFO模块用于:FIFO是一种存储器,叫做first in first out(FIFO)。一般 情况下,FIFO有两种,同步FIFO和异步FIFO。同步FIFO是指输入端和输出端的时钟频率相 同,异步FIFO是指输入端和输出端的时钟频率不同。

一种基于多分形小波模型的FPGA网络流量发生系统所采用的网络流量发生方法,主要包 括以下具体步骤:

步骤(1):FPGA芯片上电,配置芯片内部的寄存器的数据和参数,发送数据流产生命令;

步骤(2):FPGA芯片内部产生随机数据包,并把随机数据包交由输入仲裁转换模块进行 处理;

步骤(3):多分形小波模型控制模块产生一系列的数据序列并且实施于数据流;

步骤(4):数据流输出。

所述步骤(2)随机数据包的产生过程分为以下几个步骤:

步骤(2-1):FPGA芯片上电至系统就绪,等待初始化配置完成;

步骤(2-2):收到随机数据包产生开始命令,随机数据产生模块根据多分形小波模型算 法将产生随机数,标示网络中的IP地址,端口号信息;

步骤(2-3):产生IP数据包头部和负载的模块接收步骤(2-2)随机数据产生模块产生 的随机数,形成随机数据包数据部分;

步骤(2-4):数据包控制模块接收步骤(2-3)的数据,并且添加数据包头;

步骤(2-5):一个同步先入先出模块作为步骤(2-4)产生随机数据包的暂存,并且等待 下一级的模块对其内容进行读取。

步骤(2-2)多分形小波模型算法的具体步骤如下:

设Hurst值H,尺度均值Mean,小波系数取值范围Scale,

步骤(2-2-1):通过尺度均值Mean和小波系数取值范围Scale,得到粗略的尺度系数U0,k

步骤(2-2-2):在尺度为j的情况下,产生随机数Aj,k,k表示小波变换中的平移因子, 即在j尺度下平移的位置;并且根据公式计算出小波系数Wj,k,有小波尺度系数Uj,k以及小 波系数Wj,k,计算出在j+1的尺度下,尺度系数Uj+1,2k和Uj+1,2k+1

步骤(2-2-3):尺度j一次加1,并且按照步骤(2-2-2)和步骤(2-2-3)步计算,直 到达到所需的尺度m。

由上述步骤知,通过小波尺度系数U0,k和Hurst值,即生成相应的时间序列,若Xi表示 第i个时间间隔情况下到达的数据包数目,则X={x1,x2...xi...xn}用于表示网络流量到达的过 程,n表示正整数。

步骤(3)的具体步骤如下:

步骤(3-1):Uj,k是根据网络流量计算的经验值得到的,Aj,k是根据经验产生的系数参 数,Wj,k是Uj,k与Aj,k的乘积;

步骤(3-2):U0,k和W0,k需要先经过升采样的过程;

所述升采样的过程遵循如下的规律:F(z)(↑R)=(↑R)F(zR);即在插值中经滤波器放置 在扩展器之前,就得到降低了R次的滤波器;F(z)表示滤波器,R表示实数范围

步骤(3-3):将升采样得到的值送入高通和低通的滤波器组,其实现过程如上面数字滤 波器的实现过程所述,最后得到经过滤波器组生成的信号Uj,k

步骤(3-4):在状态机的控制下,检测信号Uj,k的尺度是否达到了所需要的尺度m,若 达到了所需要的尺度,则把当前的生成序列X={x1,x2...xi...xn}输出,否则,进入步骤(3-5);

步骤(3-5):j的值加1,从新生成新的系数参数Aj,k,并且与当前的检测信号Uj,k进 行相乘,得到下一级小波系数Wj,k,并且对下一级小波系数Wj,k从新进行步骤(3-2),并把 信号迭代送入当前的高通滤波和低通滤波器中,从而得到新的尺度系数Uj,k

步骤(3-6):重新进行步骤(3-4)过程,直至达到所需要的尺度系数。

本发明的有益效果:

1本发明以FPGA为原型进行开发,新增了数据包产生模块和多分形小波模型控制模块, 提高了网络流量产生的效率;

2实现了将多分形小波模型算法应用到滤波器组,提高了滤波器的工作效率;

3改进了多分形小波模型算法,并在FPGA上实现;

4实现了对网络流量的模拟,其产生的流量可以应用到网络协议分析,网络流量分类和 网络设备性能测试等方面,流量产生速率高,拟合性强。

5通过对模型算法分析和计算特征研究,提出了一种分布式的实现架构,并在FPGA上进 行了实现。在这种架构中,基于FPGA实现了滤波器组,该滤波器组完成了对多分形小波模型 算法系数的计算,这是生成网络流量过程的关键。通过对小波树形结构根节点值选择方式的 改进,增加了网络流量的生成合理性。在实施过程中,通过多节点部署的FPGA实现,成功生 成了具有多重分形性质的流量序列,其更趋近于真实的网络流量。

6本发明(发明)所设计和实现的基于FPGA网络流量模拟系统,能够较好的模拟真实互 联网背景下网络流量的特征,并且模拟生成了具有自相似性特征和多重分形特征的网络流量。 本流量模拟系统生成的网络流量的质量,速度和效率与之前的流量发生系统相比较有较大的 提高。

附图说明

图1为实现该方案的系统设计框架图;

图2为数据包发生模块的总体设计架构图;

图3为多分形小波模型的算法原理示意图;

图4为转置结构的FIR滤波器;

图5为DA实现的MAC架构图;

图6为多分形小波模型算法的硬件实现方法;

图7为本发明的总体硬件实现过程;

图8为流量发生系统的状态转换图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

本发明分为两大部分,即数据包产生部分和数据包控制部分,本发明的系统框图如图1 所示。一种基于多分形小波模型的FPGA网络流量发生系统,包括依次连接的第一PCI主机、 以太网输入接口、第一MAC地址输入队列、用户数据路径、第二MAC地址输入队列、以太网 输出接口、第二PCI主机,所述用户数据路径还与寄存器输入输出接口、SRAM寄存器和DRAM 寄存器双向通信,所述第一PCI主机的信号还会送入寄存器输入输出接口,寄存器输入输出 接口还与SRAM寄存器双向通信,所述用户数据路径还包括依次连接的数据包产生模块、数据 仲裁转换模块、输出端查询模块、多分形小波模型控制模块和输出队列模块,所述数据包产 生模块接收第一MAC地址输入队列的数据,所述输出队列模块的数据送入第二MAC地址输入 队列。

如图2所示,所述数据包产生模块包括依次连接的产生IP数据包头部和负载的模块、数 据包控制模块和先入先出模块,所述IP数据包头部和负载的模块接收随机数产生模块产生的 随机数,数据包控制模块接收数据包头,所述产生IP数据包头部和负载的模块与数据包控制 模块之间是双向通信,所述数据包控制模块和先入先出模块之间也是双向通信。

在用户数据路径(User Data Path)中,两个模块数据包产生模块 (packet_generator_module)和多分形小波模型控制模块(MWM_control_module)就是为本 发明所添加的模块。下面将分别介绍这两个模块:

1.数据包产生模块(packet_generator_module)

数据包产生模块的主要功能是产生符合互联网标准的数据包。这些数据包具有互联网的 真实特征,比如动态源IP、目的IP、源端口、目的端口、网络协议而且还具备网络数据包规 定的数据包大小等特征等等。数据包发生模块的总体设计架构如图2所示,下面将简要介绍 各模块具体的设计和交互。

(1)随机数产生模块(Random),其主要功能是为产生TCP或者UDP数据包所需要的负 载,根据不同的需求,产生不同数目或者字节的负载,以及在随机模式下产生数据包包头的 随机IP地址和MAC地址,以及端口号等。运用线性移位寄存器(LFSR)是FPGA产生随机数 最通用的方法,线性移位寄存器非常适合FPGA进行高速的运算操作,因此产生随机序列的速 度快,更加高效,而且具有良好的统计学性质。

(2)产生IP数据包头部和负载的模块(Data_Gen),其内容通过随机数产生模块进行填 充。

(3)在数据包控制模块(Pkt_Gen)的控制之下,产生的Data_gen数据被添加NF2包头 信息,重新构成新的类型的数据包。

(4)FIFO用来保存新产生的数据包,并且等待下一个模块对其进行读取。

2.多分形小波模型控制模块(MWM_control_module)

多分形小波模型主要通过小波变换的方法实现的,在进行小波的变换的过程中,通过对 对小波系数的随机选取和分析,从而在产生小波变换后的随机序列,该随机序列作为计算机 网络中数据包大小、数据包间隔或者数据包发送速度的一个度量。由于小波具有多分辨率的 特征,因此在自相似网络流量中使用小波对网络流量进行模拟的过程中,能够更好的反映出 网络流量在大的时间尺度上的多分形的特征以及在较小分辨率情况下的单分形特征。

离散小波变换的经典方法是Mallat算法,是硬件实现小波变换的直接理论基础。Mallat 算法的核心思想是迭代,即先计算出第一级的小波变换,然后在第一级小波变换的基础上计 算出尺度系数和小波系数,在进行第二级小波变换,如此重复下去,直到达到所需的分辨率。

数字电路中,实现Mallat算法的方法是用数字滤波器电路。在实际的运用过程中,高通 滤波器和低通滤波器是相互关联的,它们之间的关系为:两个滤波器组成一个滤波器对使用, 代表对不同带宽信号的响应,根据网络信号的带宽设置不同的响应频段,从而实现对数字信 号的处理。使用滤波器组实现Mallat算法,可以使离散小波变换的计算量明显减少。

如图3所示,离散小波重构过程为:

在小波重构过程中,Uj,k是根据网络流量计算的经验值得到的,Aj,k是根据贝塔分布随机 产生的系数参数,Wj,k是Uj,k与Aj,k的乘积。在小波重构过程中,最主要的是制作一种高效、 快速的数字滤波器,这也是Mallat算法的核心。

(1)数字滤波器的实现

数字滤波器通常用于修正或改变时域或者频域中信号的特性。最为普通的数字滤波器就 是线性时不变(Linear Time-Invariant,LTI)滤波器。LTI通过一个称为线性卷积的过程, 与其输入的信号相互作用,表示为y=f*x,其中,f是滤波器的脉冲响应,x[n]是输入信号, 而y[n]是卷积输出。线性卷积过程的正式定义如下:

y[n]=x[n]*f[n]=Σk=0L-1x[k]f[n-k]

n和k就是一个从负无穷到正无穷的整数序列,L表示滤波器的阶数。

(2)FIR滤波器

带有常系数的FIR滤波器是一种LTI数字滤波器。L阶或者长度为L的FIR输出对应于 输入时间序列的关系由一种有限卷积和的形式给出,具体形式如下:

y[n]=x[n]*f[n]=Σk=0L-1x[k]f[n-k]

其中从f[0]≠0一直到f[L-1]≠0均是滤波器的L个系数,同时他们也对应于FIR的脉冲 响应。FIR滤波器是一个“抽头延时线”加法器和乘法器的集合构成。本文所采用的转置结 构的FIR滤波器如图4所示。

本发明中,由于考虑到FPGA速度和面积的原因,特别是FPGA硬件在做乘法的过程中将 消耗大量的资源,而且也将大大降低FPGA的运行速度,所以,本发明将采用分布式算法实现 FIR滤波器。

(3)分布式算法实现的FIR滤波器

分布式算法(Distributed Arithmetic,DA)是一项重要的FPGA技术,它广泛的应用在计 算积之和中。

y=<c,x>=Σn=0N-1c[n]x[n]

c[n]和x[n]表示两个信号序列。y表示两个信号序列的乘积和。在数字信号处理中,离 散信号是用c[n]和x[n]表示的,n表示从负无穷到正无穷的整数,即n取值为 [……-2,-1,0,1,2,…..],在此处本发明只取0和正整数。

采用分布式算法实现的FIR滤波器在FPGA中的工作速度只与输入数据的宽度B有 关,与滤波器的阶数N无关,阶数只影响FPGA资源的使用量。

如图5所示,在滤波器工作过程中,在Load_x为低电平时,x_in先把滤波器的滤波系 数下载到寄存器中reg0到reg15之中,当全部的滤波器系数下载完毕后,Load_x变为高电 平,此时x_in输入的便是需要滤波的信号,经过若干个时钟周期后,y_out将输出滤波后的 结果。高通滤波器与低通滤波器的原理一样,只需改变相应的滤波器系数就可以了。

(4)小波重构的实现

多分形小波模型的实现过程如图6所示。

信号U0,k和Wj,k经过升采样之后,被送入到相应的高通滤波器和低通滤波其中,经过滤 波器的滤波,输出信号为U1,k,对U1,k进行判断,当其尺度大到要求时,输出该信号,否则数 据进入下一级的升采样,并输入到相对应的低通滤波器中,生成信号U2,k,重新对U2,k进行 判断其尺度是否符合要求,以此类推。

多分形小波模型可以通过多分形模型的树型计算结构,实现流量序列生成算法。设Hurst 值H,尺度均值Mean,小波系数取值范围Scale。则多分形小波模型生成的流量序列可以同 过以下的算法进行实施。

A、通过尺度均值Mean和小波系数取值范围Scale,得到粗略的尺度系数U0,k

B.在尺度为j的情况下,产生随机数Aj,k,k表示小波变换中的平移因子,即在j尺度下 平移的位置,并且根据公式计算出小波系数Wj,k,有小波尺度系数Uj,k以及小波系数Wj,k,计 算出在j+1的尺度下,尺度系数Uj+1,2k和Uj+1,2k+1

C.尺度j一次加1,并且按照B,C步计算,直到达到所需的尺度m。

上述步骤可知,通过小波尺度系数U0,k和Hurst值,即可生成相应的时间序列。若Xi表 示第i个时间间隔情况下到达的数据包数目,则X={x1,x2...xi...xn}可用于表示网络流量到达 的过程,n表示正整数。

本发明的总体硬件实现过程,如图7所示

本发明包括数字滤波器、计算判断模块、随机系数生成模块、FIFO和状态机,所述状态 机与数字滤波器、计算判断模块、FIFO都是双向通信,所述数字滤波器的输出端与计算判断 模块的输入端连接,所述计算判断模块的输出端与FIFO连接,所述计算判断模块与随机系数 生成模块双向通信。

所述数字滤波器用于计算实现多分形小波模型的算法,根据小波变换算法与多分形小波 模型算法之间的相似之处,通过数字滤波器可以很方便的在FPGA上实现该模型算法。

所述随机系数生成模块用于产生[-1,1]范围内的随机数,该随机数与尺度系数相乘,从而 保证生成流量的非负性。

所述FIFO用于缓存运算过程中所生成的流量序列。

所述状态机用于控制多分形小波模型算法的计算流程。在状态机的控制之下,通过状态 的变化,从而计算出流量序列生成过程的一系列系数和最终的流量序列。

所述计算判断模块的主要功能是判断数字滤波器滤波之后的数据流量是否达到了需要的 值,若达到了,就把数字滤波器的输出作为数据流量的输出,若没有,则把这个部分值进行 继续的叠加,直到其符合要求。最后的数据流结果被存储在FIFO中,等待下级模块的读取。 其状态转换如图8所示。

(1)在IDLE状态下,当状态机接收到开始工作信号begin之后,状态机就进入START状 态。

(2)START状态的主要功能是加载FIR滤波器所需要的参数,以及输入的网络数据包的起 始参数值作为初始值,这个初始值可以通过对网络数据包流量的分析得到。

(3)当para_end信号有效的时候,状态机进入FIR_STR状态。在这个状态中,FIR滤波器 开始工作,得到低通滤波值,即初始状态值所产生的尺度系数Uj,k

(4)在ANALY状态,滤波器所产生的低通滤波结果与随机系数生成模块所产生的[-1,1]的 随机数进行乘法计算,得到Uj,k*Aj+1,k的值,并且加上Uj,k,得到Uj+1,2k的值。这个值就是 MWM模型所产生的一个流量数据。根据公式可以得到Uj+1,2k+1的值。

(5)在COMP状态下,滤波器所产生的低通滤波值与所需的尺度m进行比较, 当!empty&&(set_para==result)时,状态机进入WR_FIFO状态,进行流量数据的存储,否则, 状态机返回FIR_STR状态进行下一次的滤波。

(6)在WR_FIFO状态下,状态机完成对数据的存储之后,状态机进入IDLE状态,进行下 一次的数据处理。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限 制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付 出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号