专利名称:基于自适应非线性抽样方法的每流分组数目统计装置的制作方法
技术领域:
本发明是一种用于高速网络设备中统计每流分组数目的装置,属于计算机网络测量领域。
背景技术:
因特网经过不断地进化,已经发展成承载各种业务的通用通信基础设施,但是与此同时对因特网的监控和管理也变得越来越难。被动业务量测量(Passive traffic measurement)可以提供丰富的网络状态信息,包括业务量矩阵,分组长度分布,业务量,会话持续时间等。这些信息对于网络计费,服务质量控制,网络安全等应用提供了很大的帮助。要得到这些信息,首先要对每一个业务流的分组数目进行统计,存储在计数器中,而计数器维护在存储器中。随着网络线速和业务流数目的增加,每流测量(per-flow measurement)成为一个巨大的挑战。一方面,网络线速的提高要求高速存储器,如SRAM;另一方面,业务流数目的增加要求大容量的存储器,如DRAM。但是目前市场上并不存在的既大又快的存储器能同时满足业务流数目巨大的高速网络的要求。为了解决这一挑战,本发明提出一种基于自适应非线性抽样方法的每流分组数目统计装置,通过对计数器空间的压缩,利用SRAM完成高速网络设备上的每个业务流的分组数目统计。
发明内容
本发明提出一种基于自适应非线性抽样方法的每流分组数目统计装置,如图1所示。本发明 该装置包含,业务流分类模块,抽样概率模块,流号与计数器地址映射表,P(c)值的预计算表,计数器模块,其中, 业务流分类模块有一个分组头输入端口和一个业务流号输出端口,该模块根据输入的分组头部获取相应的流号输出,输出端口和抽样概率模块相连; 抽样概率模块有一个输入端和业务流分类模块相连,从该输入端获取业务流号;该模块有一个输出端和流号与计数器地址映射表相连,该输出端输出从业务流分类模块获取的业务流号;该模块有一个输入端和流号与计数器地址映射表相连,该输入端获取业务流对应的计数器的地址;该模块有一个输出端和计数器相连,该输出端向计数器输出计数器的地址;该模块有一个输入端和计数器相连,该输入端从计数器获取所输出计数器地址对应的计数器的值;该模块有一个输出端和P(c)值的预计算表相连,该输出端输出计数器的值;该模块有一个输入端和P(c)值的预计算表相连,该输入端获取P(c)的值,该模块根据P(c)的值决定是否更新计数器;该模块有一个计数器更新命令的输出端和计数器相连,用于发送更新计数器的命令;该模块还有一个输出端和计数器相连,如果需要更新计数器,则先前读取的计数器值加1,然后通过该输出端输出计数器的需要更新的值,设时间t时的计数器计数值为ct,t′为下一个分组到达的时间间隔,则t+t′时刻计数器的计数值将按照下式更新,
流号与计数器地址映射表有一个输入端和一个输出端用于跟抽样概率模块相连,该模块的输入端用以获取业务流号,该模块的输出端用于输出业务流对应的计数器地址; P(c)值的预计算表有一个输入端和一个输出端用于跟抽样概率模块相连,该模块的输入端用以获取计数器的值,该模块的输出端输出P(c)值;P(c)值的预计算表保存c等于0到10000时对应的P(c)值,按照函数P(c)=1/[f(c+1)-f(c)]进行计算,其中抽样函数f(c),满足如下条件, 1)f(c)是一个实数空间内的递增凸函数; 2)初始条件,f(0)=0并且f(1)=1; 3)f(c)<f(c+1)≤bf(c)+1,b>1,c>0; 计数器模块对每一个被抽样到的业务流各维护一个计数器,该模块有一个输入端和抽样概率模块相连,该输入端用于获取输出计数器的地址;该模块还有一个输入端和抽样概率模块相连,该输入端用于获取计数器需要更新的值;该模块有一个输出端和抽样概率模块相连,用于输出计数器的计数值; 并且用来反向估计真实的业务流的分组数目。
当自适应非线性抽样方法采用作为无偏估计时,相对误差的上界是 我们可以得到静态抽样和ANLS方法的相对误差的曲线,如图2所示。从图中可以看出,静态方法对于小流的相对误差很大,而ANLS方法无论对于任何大小的业务流来说,相对误差基本保持不变,而对于静态抽样方法对于小流的误差却非常大。
采用自适应非线性抽样方法的计数器所需要的位数的上界是
(
表示向上取整)。而静态抽样的计数器所需要的位数的上界是
我们将结果表示在图3中。当n比较小的时候,静态抽样所需要的计数器位数比较少,而当n比较大的时候,自适应非线性抽样方法所需要的计数器位数比较少。值得注意的是,设计计数系统时,一个业务流对应于一个计数器,而每一个计数器的宽度是由需要统计的最大计数值决定的,所以ANLS可以对每一个计数器采用更小的宽度。当采用相同数目的计数器时,ANLS所需要的总的存储空间更小。
图1发明装置的结构图。
图2相对误差结果比较。图中虚线表示静态抽样的结果,实线表示本发明装置的结果。
图3占用计数器位数比较。图中虚线表示静态抽样的结果,实线表示本发明装置的结果。
图4真实业务流下的计数误差。
具体实施例方式 实施例1 从P(c)定义中给出的一类抽样函数中选出一个如下的特定函数 f(c)=[(1+u)c-1]/u;0<u<1。
其中u是常数参数。很容易证明,只要设定b=1+u,上式就可以满足P(c)定义。是当上式作为抽样函数时的无偏估计。此时我们可以得到精确的相对误差由此可以看出,n的变化对于相对误差的影响很小,当n趋于无穷大时,相对误差趋于
实施例2 我们合成了不同分布的业务流量。假设我们测量一个满负荷工作的OC-48(2.5Gbps)链路,测量的时间窗口是一分钟。我们一共生成了3种服从不同业务流大小分布的业务流量Pareto分布,其形状(shape)参数为1.053,标度(scale)参数为4;指数分布,其位置参数=500(即平均业务流大小为500);均匀分布,业务流大小在1和1000之间。采用f(c)=[(1+u)c-1]/u;0<u<1来计算P(c)时的结果如下表所示。从中可以看出,不同的分布对相对误差影响不大。
实施例3 我们将自适应非线性抽样方法用于OC-192链路下的真实的业务流量的统计。其结果如图4所示。结果表明,ANLS对于大流和小流都能提供很好的准确度。
权利要求
1.一种基于自适应非线性抽样方法的每流分组数目统计装置,其特征在于
该装置包含,业务流分类模块,抽样概率模块,流号与计数器地址映射表,P(c)值的预计算表,计数器模块,其中,
业务流分类模块有一个分组头输入端口和一个业务流号输出端口,该模块根据输入的分组头部获取相应的流号输出,输出端口和抽样概率模块相连;
抽样概率模块有一个输入端和业务流分类模块相连,从该输入端获取业务流号;该模块有一个输出端和流号与计数器地址映射表相连,该输出端输出从业务流分类模块获取的业务流号;该模块有一个输入端和流号与计数器地址映射表相连,该输入端获取业务流对应的计数器的地址;该模块有一个输出端和计数器相连,该输出端向计数器输出计数器的地址;该模块有一个输入端和计数器相连,该输入端从计数器获取所输出计数器地址对应的计数器的值;该模块有一个输出端和P(c)值的预计算表相连,该输出端输出计数器的值;该模块有一个输入端和P(c)值的预计算表相连,该输入端获取P(c)的值,该模块根据P(c)的值决定是否更新计数器;该模块有一个计数器更新命令的输出端和计数器相连,用于发送更新计数器的命令;该模块还有一个输出端和计数器相连,如果需要更新计数器,则先前读取的计数器值加1,然后通过该输出端输出计数器的需要更新的值,设时间t时的计数器计数值为ct,t′为下一个分组到达的时间间隔,则t+t′时刻计数器的计数值将按照下式更新,
流号与计数器地址映射表有一个输入端和一个输出端用于跟抽样概率模块相连,该模块的输入端用以获取业务流号,该模块的输出端用于输出业务流对应的计数器地址;
P(c)值的预计算表有一个输入端和一个输出端用于跟抽样概率模块相连,该模块的输入端用以获取计数器的值,该模块的输出端输出P(c)值;P(c)值的预计算表保存c等于0到10000时对应的P(c)值,按照函数P(c)=1/[f(c+1)-f(c)]进行计算,其中抽样函数f(c),满足如下条件,
1)f(c)是一个实数空间内的递增凸函数;
2)初始条件,f(0)=0并且f(1)=1;
3)f(c)<f(c+1)≤bf(c)+1,b>1,c>0;
计数器模块对每一个被抽样到的业务流各维护一个计数器,该模块有一个输入端和抽样概率模块相连,该输入端用于获取输出计数器的地址;该模块还有一个输入端和抽样概率模块相连,该输入端用于获取计数器需要更新的值;该模块有一个输出端和抽样概率模块相连,用于输出计数器的计数值;
并且用来反向估计真实的业务流的分组数目。
全文摘要
一种基于自适应非线性抽样方法的每流分组数目统计装置,属于业务流测量技术领域,其特征在于含有业务流分类模块,把输入的分组头部按类区分并输出业务流号;流号与计数器地址映射模块,把业务流号映射为计数器地址;抽样概率模块,收到业务流号后去获取抽样概率,然后按照概率决定是否向计数器发出更新命令和更新的计数值;计数器模块根据更新指令更新计数器的计数值;流号与计数器地址映射表用于输出业务流对应的计数器地址;P(c)值的根据从抽样概率模块获得的计数值来获取抽样概率的值,并返回给抽样概率模块。本发明对小流采用大的抽样概率,对大流采用小的抽样,使得相对误差基本保持不变。
文档编号H04L12/24GK101252484SQ20081010381
公开日2008年8月27日 申请日期2008年4月11日 优先权日2008年4月11日
发明者胡成臣, 斌 刘 申请人:清华大学