【发明内容】
本发明的目的是弥补现有网络流量模拟生成器技术存在的不足,提出一种基于多分形小波的网络流量并行生成方法。
本发明结合ON/OFF模型,对单一源的多分形小波模型生成流量的方法进行并行化改进,将其生成的流量序列进行并行化拆分,使其能并行发送,并且通过使用重尾分布的理论来模拟真实环境中多机并发访问在时间上的行为特征,继而得到一种在大尺度上表现出自相似性质,在小尺度上表现出多重分形性质的网络流量。
本发明方法的具体生成过程包括如下步骤:
步骤1、建立多分形小波模型,选用具有最小的消失矩和最短的支集的Haar小波基函数作为多分形小波模型,它还是Daubechies小波的一种,也是使用最简单的函数;
采用基于多分形小波模型生成算法生成具有多重分形特征的网络流量序列{X1,X2,...,Xn},定义流量序列长度为n,n表示流量发送单位时间长度,为系统运行时动态设定的一个大于0的正整数。
步骤2、搭建ON/OFF模型,利用其重尾分布的性质以及ON/OFF模型的结构,对步骤1生成的网络流量序列进行并行化拆分;
ON/OFF模型可以从网络的物理结构上模拟多机并行访问,在ON/OFF数据源各状态的时间长度序列为重尾分布时,多个ON/OFF数据源生成的流量进行汇聚所产生的流量具有分形的性质。
步骤3、对于每一个流量发送端,使用Pareto分布生成ON时间和OFF时间的时间长度序列;
选用最简单的重尾分布为Pareto分布,其分布函数和密度函数由下式给出,
f(x)=αkαx-(α+1) x≥k k>0 0<α<2
其中,F(x)为分布函数,f(x)为密度函数,k和α为函数系数,取不同值对应得到具体的Pareto分布,在ON/OFF模型中,使ON区间与OFF区间分别符合Pareto分布,并且取ON区间α=1.7,OFF区间α=1.2;
步骤4、根据步骤3生成的时间长度序列,得到每一个发送端发送决策序列,对于多个发送端,可以形成一个决策矩阵。
所述的发送决策序列是指,对于每一组的ON时间序列和OFF时间序列交替叠加,得到与流量序列长度n相同的ON/OFF时间序列,以每一个时间单位作为序列中的一个元素,若处于ON状态,则元素值为1;若处于OFF状态,则元素值为0。对于每一个发送端都能得到一个由0和1组成的序列{T1,T2,...,Tn},可称为发送决策序列。
步骤5、对于步骤4所述决策矩阵中的每一行,按照时间轴和流量序列,生成各自相应的流量发送序列,组成流量发送矩阵,每一个发送端按照所对应的流量发送序列对流量进行发送。
其中,流量发送序列应满足如下条件:
(1)若决策序列中某时刻的值为零,则在流量发送序列中,与之相对应的值也为零;
(2)在决策矩阵中,若某时刻至少存在一个发送端所对应的值不为零时,则将所有为零的发送端在该时刻的流量设置为零;所有不为零的发送端,其流量大小之和应为序列{X1,X2,...,Xn}中所对应时刻的流量,其值可以通过生成以Xi的k分之一为均值的随机数,其中i表示当前时刻,k表示决策序列相应值在该时刻不为零的发送端的个数。
本发明的优点和积极效果:
本发明提出的方法,对网络流量进行建模,在具有灵活的分形特性的网络模型的基础上生成网络流量序列。同时,为了模拟真实环境下的网络结构,将生成算法进行改进,使流量序列能够并行的生成。在本发明中,将基于多分形小波模型(MWM)设计网络流量模拟生成的方法,实现网络流量的并行生成,并保证在时间尺度较大时表现自相似性和时间尺度较小时表现多重分形的性质,对于网络流量性质研究和网络应用系统性能测试具有重要意义。
【具体实施方式】
实施例1
实施方式以四个并行发送端为例,使用本发明中所述方法实现对多分形小波模型生成的网络流量序列进行并行化拆分处理。具体实施如下:
首先,建立多分形小波模型,生成具有多重分形特征的流量序列{X1,X2,...,Xn},定义流量序列长度为n,n表示流量发送单位时间长度,为系统运行时动态设定的一个大于0的正整数。
多分形小波模型基于小波域,并且因为每一个基于多分形小波模型生成的样本是通过几个正的独立的随机变量而产生,所以能够保证模型输出为正值。在所有的正交小波中,Haar小波有最小的消失矩和最短的支集,并且它还是Daubechies小波的一种,使用的也是最简单的函数,在多分形小波模型中采用Haar小波基函数能够得到最理想的结果。
离散的小波变换可以对信号X(t)进行多尺度分析:
其中,J0为最大的尺度,Uk和Wj,k分别是小波变换的尺度系数和小波系数。
对于Haar小波变换,其尺度系数与小波系数可以由下式来进行计算:
多分形小波模型在设计上基于以下两点:
(1)为了确保合成的序列是非负的,需要对小波系数做如下限制:
(2)为了表征流量的分形特性,需定义小波能量衰减为尺度的函数,具体如下:设Aj,k为区间上[-1,+1]上的随机变量,则由(3.4)式可得:
Wj,k=Aj,k·Uj,k
其中,Aj,k为具有对称分布的β分布。递归计算可得小波变换的尺度系数和小波系数。其中:
使用多分形小波模型生成流量序列的算法可以按照以下步骤进行实现。
(1)当尺度j为0时,计算或设置最粗略的尺度系数U0,k,并设置Hurst参数H。
(2)在尺度j下,产生随机数Aj,k,计算小波系数Wj,k,由尺度系数Uj,k和小波系数Wj,k,计算j+1尺度下的尺度系数Uj+1,2k和Uj+1,2k+1。
(3)j加1,重复步骤2,直到所需尺度m。
最后生成流量序列{398,567,370,...,311}。生成流量序列长度n为600,单位时间为1秒,即生成的流量序列可供持续发送10分钟。
图1显示了离散小波变换的尺度系数和小波系数的递归计算过程。
其次,搭建ON/OFF模型,利用其重尾分布的性质对流量序列进行并行化拆分处理。
通过多分形小波模型已经生成流量序列{398,567,370,...,311}。但是,如果通过单一数据源对生成的流量序列进行合成和发送,不能够很好的模拟真实网络环境中多数据源、多访问源并行对网络应用系统进行连接和访问的情况。ON/OFF模型可以从网络的物理结构上模拟多机并行访问。在ON/OFF数据源各状态的时间长度序列为重尾分布时,多个ON/OFF数据源生成的流量进行汇聚所产生的流量具有分形的性质。网络环境中,数据源端和目的端的活跃期和沉默期的时间分布检测出具有重尾分布的现象。同时,网络中文件的传输时间,文件的大小也为重尾分布。最简单的重尾分布为Pareto分布,其分布函数和密度函数由下式给出。
f(x)=αkαx-(α+1) x≥k k>0 0<α<2
在ON/OFF模型中,使ON区间与OFF区间分别符合Pareto分布,并且在ON区间α=1.7,OFF区间α=1.2时,对于模拟多个用户对网络进行连接行为的效果最优。
图2显示了使用ON/OFF模型,通过对发送端生成流量序列的示意图。
再次,对于使用多分形小波模型生成的序列{398,567,370,...,311}进行拆分,首先要明确并行发送端的数量。下面以四个并行发送端为例,描述生成并行发送流量序列的步骤:
1、对于每一个流量发送端使用Pareto分布生成ON时间和OFF时间的时间长度序列,其中Pareto分布函数中α参数在ON区间为1.7,在OFF区间为1.2。生成的四个ON时间长度序列分别为{3,1,4,...,3}、{1,4,2,...,3}、{2,1,2,...,1}、{1,1,3,...,2},四个OFF时间长度序列分别为{2,1,3,...,}、{3,2,1,...,4}、{2,2,1,...,3}、{2,1,1,...,1}。
2、对于每一组的ON时间序列和OFF时间序列交替叠加,得到与流量序列长度600相同的ON/OFF时间序列,以每一个时间单位作为序列中的一个元素。若处于ON状态,则元素值为1;若处于OFF状态,则元素值为0。对于每一个发送端都能得到一个由0和1组成的序列分别为{1 1 1 0 0 1 0 1…0}、{1 0 0 0 1 1 1 1…1}、{0 0 1 1 0 1 1 0…1}、{0 1 1 0 1 0 0 1…0},可称为发送决策序列,对于多个发送端,可以形成一个决策矩阵。其中,每行代表一个发送端,在使用四个发送端时,可生成一个4×600的矩阵,决策矩阵决定了所有发送端在时间上的发送策略。
3、对于决策矩阵中的每一行,按照时间轴和流量序列{398,567,370,...,311},生成其各自相应的流量发送序列,分别为{197,278,111,...,0}、{201,0,0,...,156}、{0,0,143,...,158}和{0,286,108,...,0}。可组成流量发送矩阵,四个序列应满足以下条件:
(1)若决策序列中某时刻的值为零,则在流量序列中,与之相对应的值也为零。
(2)在决策矩阵中,若某时刻至少存在一个发送端的所对应的值不为零时,则将所有为零的发送端在该时刻的流量设置为零;所有不为零的发送端,其流量大小之和应为序列{398,567,370,...,311}中所对应时刻的流量,其值的确定可以通过,在决策矩阵中,当一个发送端所对应的值不为零时,其值为以所对应时刻流量为均值的随机数;当有两个不为零时,其值为以所对应时刻流量的1/2为均值的随机数;当有三个不为零时,其值为以所对应时刻流量的1/3为均值的随机数;当有四个不为零时,其值为以所对应时刻流量的1/4为均值的随机数。
图3显示了四个并行发送端情况下,流量序列的拆分过程,其中图3(a)为发送决策序列;图3(b)为发送决策矩阵;图3(c)为流量发送矩阵;图3(d)为流量序列并行化拆分过程示意图;其中,{X1,X2,...,Xn}为多分形小波模型生成的具体流量序列,Ai、Bi、Ci、Di表示各发送端相应时刻的流量值,即为以Xi的k分之一为均值的随机数,其中k取值为决策矩阵中第i列1的个数,即为1、2、3或者4。
最后,每一个发送端按照所对应的发送序列对流量进行发送。使用这种方法,一方面使得总流量的性质满足多分形小波模型;另一方面,利用Pareto分布对发送时间进行了分配,模拟了多用户并行访问的行为特征。