CN104009868B - 流量统计方法及装置 - Google Patents
流量统计方法及装置 Download PDFInfo
- Publication number
- CN104009868B CN104009868B CN201410200744.8A CN201410200744A CN104009868B CN 104009868 B CN104009868 B CN 104009868B CN 201410200744 A CN201410200744 A CN 201410200744A CN 104009868 B CN104009868 B CN 104009868B
- Authority
- CN
- China
- Prior art keywords
- log
- count value
- median
- value
- formula
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种流量统计方法及装置,其中,所述方法包括:解析待处理的网络流,获取第一计数值c和第一分组字节数l;根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;若所述第一计数值c大于等于所述的值,则确定第一中间值pA和第二中间值pB的大小;若第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c'。上述方法能够实现在高速网络中快速准确的统计各设备的网络流量。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种流量统计方法及装置。
背景技术
目前,互联网中网络测量对于互联网的计费、规划和安全等都非常重要,可保证互联网的有序发展。基于网络流的测量是网络测量中的一种重要技术。
网络流为在两个设备之间的具有一定共同特征(如相同五元组)的单向或双向的一系列数据包。基于网络流的被动测量(passive traffic measurement)是网络流测量的一个分支。
现有技术中,可在互联网的任一设备中设置流量测量装置实现对网路流的测量。业内人士提出了非线性采样流量统计算法对网络流的大小(即网络流的分组个数)和容量(即网络流的字节数)进行测量。
非线性采样流量统计算法是一种用于流长度统计的概率计数算法。该算法分为两个部分:计数器更新部分和反向估计部分。
然而,在计数器更新部分需要采用高精度的浮点运算方式,在低速网络中采用浮点运算还能够得到有效的测量结果,但是在高速网络中采用浮点运算需要较长的时间,且无法得到有效的测量结果,导致对网络流的估计不准确。
发明内容
本发明提供一种流量统计方法及装置,用于实现在高速网络中快速准确的统计各设备的网络流量。
第一方面,本发明提供一种流量统计方法,包括:
解析待处理的网络流,获取第一计数值c和第一分组字节数l;
根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;
若所述第一计数值c大于等于所述的值,则确定第一中间值pA和第二中间值pB的大小;
若第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c'。
可选地,所述方法还包括:
若所述第一中间值pA小于所述第二中间值pB,则将所述第一计数值c作为累计所述网络流的第二计数值c'。
可选地,若所述第一计数值c大于等于所述的值,则确定第一中间值pA和第二中间值pB的大小,包括:
根据下述的公式一和公式二分别确定第一中间值pA和第二中间值pB;
pA=l 公式一;
pB=[f(c+1)-f(c)]×m 公式二;
其中,l为第一分组字节数,f(c)为根据所述第一计数值c、从预设的第一计数值表中查找获取,f(c+1)为根据所述第一计数值c+1从预设的第一计数值表中查找获取,m为伪随机数,且m为32位的正数。
可选地,所述方法还包括:
若所述第一计数值c小于所述的值,则确定第一中间值pA和第二中间值pB的大小;
所述确定第一中间值pA和第二中间值pB的大小,包括:
根据下述的公式三和公式四确定第一中间值pA和第二中间值pB;
pA=l+f(c)-f(logbz+(e-8)logb2-1) 公式三;
pB=[f(logbz+(e-8)logb2)-f(logbz+(e-8)logb2-1)]×m 公式四;
其中,l为第一分组字节数,b=1+1/256;
f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2)为根据logbz+(e-8)logb2的值从预设的第一计数值表中查找获取;
为根据logbz+(e-8)logb2-1的值从预设的第一计数值表中f(logbz+(e-8)logb2-1)查找获取;
m为伪随机数,且m为32位的正数;
logbz的值为根据z值从预设的第一字节数表中查找获取;
(e-8)logb2的值为根据e值从预设的第二字节数表查找获取;
z=l+f(c)+1/(b-1) 公式五;
若根据所述公式五获得的z值小于1024,则e为0,则将z值和e值分别作为最终使用的z值和e值;
若根据所述公式五获得的z值大于等于1024,则将所述z值转换为无符号二进制数,并对所述无符号二进制数进行右移的移位运算,直至移位运算后的无符号二进制数对应的z值小于1024,则将移位运算后的无符号二进制数对应的小于1024的z值作为最终使用的z值;以及
对所述无符号二进制数进行右移的移位运算时,所述无符号二进制数每进行右移的移位运算一次,所述e在起始值上增加1,所述e的起始值为0,直至移位运算后的无符号二进制数对应的z值小于1024时,得到的e值作为最终使用的e值;
相应地,若第一中间值pA大于等于所述第二中间值pB,则根据下述的公式六获得累计所述网络流的第二计数值c',
c'=logbz+(e-8)logb2 公式六。
可选地,所述方法还包括:
若所述第一中间值pA小于所述第二中间值pB,则根据下述的公式七,获得累计所述网络流的第二计数值c',
c'=logbz+(e-8)logb2-1 公式七。
可选地,所述方法还包括:
封装所述网络流的第二计数值c',并将封装的第二计数值c'输出。
可选地,所述预设的第一计数值表根据下述的公式八获取;
公式八;
其中,b=1+1/256。
第二方面,本发明提供一种流量统计装置,包括:
第一处理单元,用于解析待处理的网络流,获取第一计数值c和第一分组字节数l;
第二处理单元,用于根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;
判断单元,用于判断所述第一计数值c和所述的值的大小,在所述第一计数值c大于等于所述的值时,判断第一中间值pA和第二中间值pB的大小;
获取单元,用于在所述判断单元确定第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c'。
可选地,所述获取单元,还用于
在所述判断单元确定第一中间值pA小于所述第二中间值pB,则将所述第一计数值c作为累计所述网络流的第二计数值c'。
可选地,判断单元,具体用于
在确定所述第一计数值c大于等于所述的值时,根据下述的公式一和公式二分别确定第一中间值pA和第二中间值pB;
pA=l 公式一;
pB=[f(c+1)-f(c)]×m 公式二;
其中,l为第一分组字节数,f(c)为根据所述第一计数值c、从预设的第一计数值表中查找获取,f(c+1)为根据所述第一计数值c+1从预设的第一计数值表中查找获取,m为伪随机数,且m为32位的正数;
在确定所述第一计数值c小于所述的值时,根据下述的公式三和公式四确定第一中间值pA和第二中间值pB;
pA=l+f(c)-f(logbz+(e-8)logb2-1) 公式三;
pB=[f(logbz+(e-8)logb2)-f(logbz+(e-8)logb2-1)]×m 公式四;
其中,l为第一分组字节数,b=1+1/256;
f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2)为根据logbz+(e-8)logb2的值从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2-1)为根据logbz+(e-8)logb2-1的值从预设的第一计数值表中查找获取;
m为伪随机数,且m为32位的正数;
logbz的值为根据z值从预设的第一字节数表中查找获取;
(e-8)logb2的值为根据e值从预设的第二字节数表查找获取;
z=l+f(c)+1/(b-1) 公式五;
若根据所述公式五获得的z值小于1024,则e为0,则将z值和e值分别作为最终使用的z值和e值;
若根据所述公式五获得的z值大于等于1024,则将所述z值转换为无符号二进制数,并对所述无符号二进制数进行右移的移位运算,直至移位运算后的无符号二进制数对应的z值小于1024,则将移位运算后的无符号二进制数对应的小于1024的z值作为最终使用的z值;以及
对所述无符号二进制数进行右移的移位运算时,所述无符号二进制数每进行右移的移位运算一次,所述e在起始值上增加1,所述e的起始值为0,直至移位运算后的无符号二进制数对应的z值小于1024时,得到的e值作为最终使用的e值;
相应地,所述获取单元,具体用于
在判断单元确定的所述第一中间值pA大于等于所述第二中间值pB时,则根据下述的公式六获得累计所述网络流的第二计数值c',
c'=logbz+(e-8)logb2 公式六;
在判断单元确定的所述第一中间值pA小于所述第二中间值pB时,则根据下述的公式七,获得累计所述网络流的第二计数值c',
c'=logbz+(e-8)logb2-1 公式七。
由上述技术方案可知,本发明的流量统计方法及装置,通过采用预设的第一字节数表获取所述第一分组字节数l对应的的值,进而比较第一计数值c和的值,在第一计数值c大于等于所述的值,则分别确定第一中间值pA和第二中间值pB的大小,并根据确定的第一中间值pA和第二中间值pB,确定网络流的第二计数值c'。本实施例中能够在高速网络中快速确定网络流的计数值,进而可快速获取高速网络中网络流容量的估计值。
附图说明
图1为本发明一实施例提供的流量统计方法的流程示意图;
图2为本发明一实施例提供的流量统计装置的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明一实施例提供的流量统计方法的流程示意图,如图1所示,本实施例的流量统计方法如下所述。
101、解析待处理的网络流,获取第一计数值c和第一分组字节数l;
102、根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;
103、若所述第一计数值c大于等于所述的值,则确定第一中间值pA和第二中间值pB的大小;
104、若第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c'。
可选地,若所述第一中间值pA小于所述第二中间值pB,则所述第一计数值c为累计所述网络流的第二计数值c'。
另外,在具体的应用过程中,若则中间变量δ(c,l)=0,其中,δ(c,l)为与c,l有关的中间变量。由此,在前述的步骤103中,可根据下述的公式一和公式二分别确定第一中间值pA和第二中间值pB;
pdA=l+f(c)-f(c+δ(c,l))=l 公式一;
pdB=[f(c+δ(c,l)+1)-f(c+δ(c,l))]×m=[f(c+1)-f(c)]×m
公式二;
其中,l为第一分组字节数,f(c)为根据所述第一计数值c、从预设的第一计数值表中查找获取,f(c+1)为根据所述第一计数值c+1从预设的第一计数值表中查找获取,m为伪随机数,且m为32位的正数。
进一步地,前述的步骤103中,若所述第一计数值c大于等于所述的值,且确定了第一中间值pA和第二中间值pB,为此,在前述图1所示的方法还可包括下述的图中未示出的步骤105:
105、若所述第一中间值pA小于所述第二中间值pB,则将所述第一计数值c作为累计所述网络流的第二计数值c'。
本实施例的流量统计方法,能够在高速网络中快速确定网络流的计数值,进而可快速获取高速网络中网络流容量的估计值。
在另一种可选的实现方式中,若第一计数值c小于所述的值,则中间变量δ(c,l)=a-c-1,a=logbz+(e-8)logb2,其中,δ(c,l)为与c,l有关的中间变量,a为与z和e有关的中间变量。
具体地,若所述第一计数值c小于所述的值,则确定第一中间值pA和第二中间值pB的大小;
可选地,根据下述的公式三和公式四分别确定第一中间值pA和第二中间值pB;
其中,l为第一分组字节数,b=1+1/256;
f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2)为根据logbz+(e-8)logb2的值从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2-1)为根据logbz+(e-8)logb2-1的值从预设的第一计数值表中查找获取;
m为伪随机数,且m为32位的正数;
logbz的值为根据z值从预设的第一字节数表中查找获取;
(e-8)logb2的值为根据e值从预设的第二字节数表查找获取;
z的值可根据实际需要进行修订;具体地,z值可根据下述的公式五进行确定:
z=l+f(c)+1/(b-1) 公式五;
若所述公式五中获得的z值小于1024,则e为0,则将z值和e值分别作为最终使用的z值和e值(例如可作为上述的使用,以及后续公式的使用);
若所述公式五中获得的z值大于等于1024,则将所述z值转换为无符号二进制数,并对所述无符号二进制数进行右移的移位运算,直至移位运算后的无符号二进制数对应的z值小于1024,则将移位运算后的无符号二进制数对应的小于1024的z值作为最终使用的z值(即上述公式三、四以及后续公式中的使用);
以及对所述无符号二进制数进行右移的移位运算时,所述无符号二进制数每进行右移的移位运算一次,所述e在起始值上增加1,所述e的起始值为0,直至移位运算后的无符号二进制数对应的z值小于1024时,得到的e值作为最终使用的e值(即上述公式三、四以及后续公式中的使用);
相应地,若第一中间值pA大于等于所述第二中间值pB,则根据下述的公式六获得累计所述网络流的第二计数值c',
进一步地,所述若第一中间值pA小于所述第二中间值pB,则根据下述的公式七,获得累计所述网络流的第二计数值c',
应说明的是,前述实施例中提及的预设的第一计数值表根据下述的公式八预先获取;
公式八。
在具体的实现过程中,前述图1所示的方法还可包括下述的图中未示出的步骤106:
106、封装所述网络流的第二计数值c',并将封装的第二计数值c'输出。
举例来说:将第二计数值c'进行封装,即将c'的值进行数位及格式变换,改变为控制模块可识别的位宽格式,并将封装后的第二计数值c'输出至通信设备的控制模块。
本实施例的流量统计方法,通过采用预设的第一字节数表获取所述第一分组字节数l对应的的值,进而比较第一计数值c和的值,在第一计数值c大于等于所述的值,则分别确定第一中间值pA和第二中间值pB的大小,并根据确定的第一中间值pA和第二中间值pB的大小,确定网络流的第二计数值c'。以及在第一计数值c小于所述的值时,分别确定第一中间值pA和第二中间值pB的大小,并根据确定的第一中间值pA和第二中间值pB的大小,确定网络流的第二计数值c'。本实施例中能够在高速网络中快速确定网络流的计数值,进而可快速获取高速网络中网络流容量的估计值。
另外,为较好的理解本发明的内容,下面详细说明上述图1中所示的方法的具体实施过程。
具体地,上述方法可在高速宽带网络的转发设备中进行。
首先初始化执行上述图1所示方法的通信设备,初始化后的通信设备中的控制模块将网络流输入至执行图1所示的方法的可编程逻辑模块中,可编程逻辑模块按照图1所示的步骤获取第二计数值c';具体如下过程。
应说明的是,可编程逻辑模块中在通信设备初始化之后内部随机数产生单元实时不间断产生伪随机数m,在使用伪随机数时,可直接使用随机数产生单元实时产生的伪随机数m。
下述的f(c)为递增凸函数,f(c)的值可预先获取并存储在可编程逻辑模块中,方便后续直接使用。
其中,b=1+1/256是一个预定义的参数,f-1(c)是一个递增的凹函数,流长度n和计数器值c的关系是n=f(c);由此,计数器中计数值的增长将大大慢于线性增长。
(e-8)logb2对应的预设第二字节数表中,e为大于或等于零的整数;
logbz对应的预设第一字节数表中,z的值可根据实际需要设置,例如,在第一字节数表中z可取0-1500之间的数值。
举例来说,可编程逻辑模块可在接收通信设备中的控制模块发送的网络流对应的数据之后,可执行下述的步骤A01至步骤A09;
A01、解析网络流对应的数据,获取当前计数器的第一计数值c,和网络流的第一分组字节数l。
可理解的是,当前计数器的第一计数值指的是完成对该网络流上一次统计后更新得到的计数器值,该值可由控制模块从通信设备的存储器中获取;第一分组字节数为当前到达的需要统计的属于该网络流的数据包字节数。
A02、根据第一计数值c的值查找预设的第一计数值表得到f(c);根据第一分组字节数l查找预设的第一字节数表得到logbz;
A03、确定第一计数值c和 表示向上取整)的大小,若则δ(c,l)=0(δ(c,l)为与c,l有关的中间变量),且执行步骤A08,否则,执行步骤A04;
A04、根据公式z=l+f(c)+1/(b-1),获取z的值;若z小于1024,则e=0,且将z和e的值输入下述步骤A05至A07中的公式;
否则,在z大于等于1024时,将z转换为无符号二进制数,并将转换后的无符号二进制数进行右移运算,若右移运算后的无符号二进制数对应的z<1024,则将右移运算后的无符号二进制数对应的z输入下述步骤A06中的公式,以及转换后的无符号二进制数每右移一位,则e在初始值上依次增加1,e的初始值为0,将直至右移运算后的无符号二进制数对应的小于1024的z的过程中获取的e的值输入下述步骤A05至A07中的公式。
A05、logbz为根据步骤A04中获取的z值查找预设的第一字节数表获得;(e-8)logb2为根据步骤A04中获取的e值查找预设的第二字节数表获得,
A06,根据步骤A05中获取的logbz、(e-8)logb2,以及公式a=logbz+(e-8)logb2获取a值,以及根据a值和公式δ(c,l)=a-c-1,获得δ(c,l)的值;
A07,根据公式pA=l+f(c)-f(c+δ(c,l))获取pA的值;根据公式pB=[f(c+δ(c,l)+1)-f(c+δ(c,l))]×m获取pB的值;
其中,f(c+δ(c,l))、f(c+δ(c,l)+1)分别根据预设的第一计数值表获取;
A08,比较步骤A07中获取的pA和pB的大小,若pA≥pB,则根据公式c'=c+δ(c,l)+1获取第二计数值c',否则,根据公式c'=c+δ(c,l)获取第二计数值c';
A09,将第二计数值c'进行封装,并将封装后的第二计数值c'输出至通信设备的控制模块。
应理解的是,通信设备的控制模块可根据第二计数值c',以及公式获得网络流中业务流容量的估计值。该处的n可为网络流中所有数据包的字节数。
应说明的是,在实际应用过程中,可编程逻辑模块可在接收通信设备中的控制模块发送的网络流对应的数据之后,为了保证系统较高的运行主频,可将复杂的计算步骤拆分为同步有限状态机来进行实现,减少每步的时间开销;由此,在具体的应用中,可编程逻辑模块可执行前述的步骤A01至步骤A09。也就是说,上述步骤A01至步骤A09对应了代码实现中的状态机的各步状态,为了保证系统的较高运行主频,可在有限状态机中每步完成较少动作,以较好同步于系统时钟。
此外,通过实验验证本发明中流量统计方法获取高速网络的流量的结果。实验测量一个满负荷工作的OC-48(2.5Gbps)链路,测量的时间窗口是一分钟。
通过生成3种服从不同业务流大小分布的业务流量:第一帕累托分布,其形状(shape)参数为1.053,标度(scale)参数为4;第二指数分布,其位置参数=500(即平均业务流大小为500);第三均匀分布,业务流大小在1和1000之间。如下表一中列出的比较本发明与基准算法的平均每业务流统计误差。
表一:
从表一中可以看出,不同的分布下本发明方法和基准算法相比平均每业务流误差性能接近。
进一步地,将本发明的流量统计方法用于OC-192(10Gbps)链路下的真实的业务流量的统计。本发明方法的平均每业务流统计误差为0.56%,基准算法的平均每业务流误差为0.39%。结果表明,本发明方法和基准算法相比平均每业务流误差性能接近。
由上述技术方案可知,本发明的流量统计方法,通过采用第预设的第一字节数表获取所述第一分组字节数l对应的的值,进而比较第一计数值c和的值,在第一计数值c大于等于所述的值,则分别确定第一中间值pA和第二中间值pB的大小,并根据确定的第一中间值pA和第二中间值pB,确定网络流的第二计数值c'。本实施例中能够在高速网络中快速确定网络流的计数值,进而可快速获取高速网络中网络流容量的估计值。
上述表一中提及的基准算法简单说明如下:非线性采样流量统计算法(DISCO)是一种用于流长度统计的概率计数算法。该算法分为两个部分:计数器更新部分和反向估计的部分。前者决定了对于长度为l的数据包计数器增加的数值;后者通过最终计数器的数值来反向估计真实的流长度。
DISCO算法的核心思想是使计数器的增量小于真实需要更新的数值,其大小是关于真实流长度(网络流的字节数和包个数)在实数空间上的一个递增凹函数的数值。对每个长度为l字节的包,计数器的大小被增大了一个小于l的数值Δ。然后,另一设备可将计数器的值回导后进行处理,利用计数器的值c恢复出网络流的真实长度n,得到有效的测量结果。
第二方面,本发明还提供一种流量统计装置,如图2所示,本实施例的流量统计装置可包括:第一处理单元21、第二处理单元22、判断单元23和获取单元24;
其中,第一处理单元21,用于解析待处理的网络流,获取第一计数值c和第一分组字节数l;
第二处理单元22用于根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;
判断单元23用于判断所述第一计数值c和所述的值的大小,在所述第一计数值c大于等于所述的值时,判断第一中间值pA和第二中间值pB的大小;
获取单元24用于在所述判断单元23确定第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c'。
进一步地,所述获取单元24还用于,在所述判断单元23确定第一中间值pA小于所述第二中间值pB,则将所述第一计数值c作为累计所述网络流的第二计数值c'。
举例来说,判断单元23具体用于,在确定所述第一计数值c大于等于所述的值时,根据下述的公式一和公式二分别确定第一中间值pA和第二中间值pB的大小;
pA=l 公式一;
pB=[f(c+1)-f(c)]×m 公式二;
其中,l为第一分组字节数,f(c)为根据所述第一计数值c、从预设的第一计数值表中查找获取,f(c+1)为根据所述第一计数值c+1从预设的第一计数值表中查找获取,m为伪随机数,且m为32位的正数;
在确定所述第一计数值c小于所述的值时,根据下述的公式三和公式四分别确定第一中间值pA和第二中间值pB;
pA=l+f(c)-f(logbz+(e-8)logb2-1) 公式三;
pB=[f(logbz+(e-8)logb2)-f(logbz+(e-8)logb2-1)]×m 公式四;
其中,l为第一分组字节数,b=1+1/256;
f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2)为根据logbz+(e-8)logb2的值从预设的第一计数值表中查找获取;
f(logbz+(e-8)logb2-1)为根据logbz+(e-8)logb2-1的值从预设的第一计数值表中查找获取;
m为伪随机数,且m为32位的正数;
logbz的值为根据z值从预设的第一字节数表中查找获取;
(e-8)logb2的值为根据e值从预设的第二字节数表查找获取;
z=l+f(c)+1/(b-1) 公式五;
若根据所述公式五获得的z值小于1024,则e为0,则将z值和e值分别作为最终使用的z值和e值;
若根据所述公式五获得的z值大于等于1024,则将所述z值转换为无符号二进制数,并对所述无符号二进制数进行右移的移位运算,直至移位运算后的无符号二进制数对应的z值小于1024,则将移位运算后的无符号二进制数对应的小于1024的z值作为最终使用的z值;
以及对所述无符号二进制数进行右移的移位运算时,所述无符号的二进制数每进行右移的移位运算一次,所述e在起始值上增加1,所述e的起始值为0,直至移位运算后的无符号二进制数对应的z值小于1024时,得到的e值作为最终使用的e值;
相应地,所述获取单元,具体用于
在判断单元确定的所述第一中间值pA大于等于所述第二中间值pB时,则根据下述的公式六获得累计所述网络流的第二计数值c',
c'=logbz+(e-8)logb2 公式六;
在判断单元确定的所述第一中间值pA小于所述第二中间值pB时,则根据下述的公式七,获得累计所述网络流的第二计数值c',
c'=logbz+(e-8)logb2-1 公式七。
本实施例的流量统计装置可为可编程逻辑模块,其通过可编程逻辑模块内的状态机实现对控制模块输入的网络流的分组字节数进行快速统计分析。本实施例的流量统计装置可应用在高速宽带网络中,快速准确的统计通信设备的网络流量。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (3)
1.一种流量统计方法,其特征在于,包括:
解析待处理的网络流,获取第一计数值c和第一分组字节数l;
第一计数值指的是完成对该网络流上一次统计后更新得到的计数器值,第一分组字节数为当前到达的需要统计的属于该网络流的数据包字节数;
根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;
若所述第一计数值c大于等于所述的值,则确定第一中间值pA和第二中间值pB的大小;
若第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c';
根据下述的公式一和公式二分别确定第一中间值pA和第二中间值pB;
pA=l 公式一;
pB=[f(c+1)-f(c)]×m 公式二;
其中,l为第一分组字节数,f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取,f(c+1)为根据所述第一计数值c+1从预设的第一计数值表中查找获取,m为伪随机数,且m为32位的正数;
所述预设的第一计数值表根据下述的公式八获取;
其中,b=1+1/256;
若所述第一中间值pA小于所述第二中间值pB,则将所述第一计数值c作为累计所述网络流的第二计数值c';
若所述第一计数值c小于所述的值,则确定第一中间值pA和第二中间值pB的大小;
所述确定第一中间值pA和第二中间值pB的大小,包括:
根据下述的公式三和公式四分别确定第一中间值pA和第二中间值pB;
pA=l+f(c)-f(logb z+(e-8)logb 2-1) 公式三;
pB=[f(logb z+(e-8)logb 2)-f(logb z+(e-8)logb 2-1)]×m 公式四;
其中,l为第一分组字节数,b=1+1/256;
f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取;
f(logb z+(e-8)logb 2)为根据logb z+(e-8)logb 2的值从预设的第一计数值表中查找获取;
f(logb z+(e-8)logb 2-1)为根据logb z+(e-8)logb 2-1的值从预设的第一计数值表中f(logb z+(e-8)logb 2-1)查找获取;
m为伪随机数,且m为32位的正数;
logb z的值为根据z值从预设的第一字节数表中查找获取;
(e-8)logb 2的值为根据e值从预设的第二字节数表查找获取;
z=l+f(c)+1/(b-1) 公式五;
若根据所述公式五获得的z值小于1024,则e为0,则将z值和e值分别作为最终使用的z值和e值;
若根据所述公式五获得的z值大于等于1024,则将所述z值转换为无符号二进制数,并对所述无符号二进制数进行右移的移位运算,直至移位运算后的无符号二进制数对应的z值小于1024,则将移位运算后的无符号二进制数对应的小于1024的z值作为最终使用的z值;以及
对所述无符号二进制数进行右移的移位运算时,所述无符号二进制数每进行右移的移位运算一次,所述e在起始值上增加1,所述e的起始值为0,直至移位运算后的无符号二进制数对应的z值小于1024时,得到的e值作为最终使用的e值;
相应地,若第一中间值pA大于等于所述第二中间值pB,则根据下述的公式六获得累计所述网络流的第二计数值c',
c'=logb z+(e-8)logb 2 公式六;
若所述第一中间值pA小于所述第二中间值pB,则根据下述的公式七,获得累计所述网络流的第二计数值c',
c'=logb z+(e-8)logb 2-1 公式七。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
封装所述网络流的第二计数值c',并将封装的第二计数值c'输出。
3.一种流量统计装置,其特征在于,包括:
第一处理单元,用于解析待处理的网络流,获取第一计数值c和第一分组字节数l;
第一计数值指的是完成对该网络流上一次统计后更新得到的计数器值,第一分组字节数为当前到达的需要统计的属于该网络流的数据包字节数;
第二处理单元,用于根据预设的第一字节数表,获取所述第一分组字节数l对应的的值;
判断单元,用于判断所述第一计数值c和所述的值的大小,在所述第一计数值c大于等于所述的值时,判断第一中间值pA和第二中间值pB的大小;
获取单元,用于在所述判断单元确定第一中间值pA大于等于所述第二中间值pB,则将所述第一计数值c增加1,获得累计所述网络流的第二计数值c';
根据下述的公式一和公式二分别确定第一中间值pA和第二中间值pB;
pA=l 公式一;
pB=[f(c+1)-f(c)]×m 公式二;
其中,l为第一分组字节数,f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取,f(c+1)为根据所述第一计数值c+1从预设的第一计数值表中查找获取,m为伪随机数,且m为32位的正数;
所述预设的第一计数值表根据下述的公式八获取;
其中,b=1+1/256;
所述获取单元,还用于
在所述判断单元确定第一中间值pA小于所述第二中间值pB,则将所述第一计数值c作为累计所述网络流的第二计数值c';
判断单元,具体用于
在确定所述第一计数值c小于所述的值时,根据下述的公式三和公式四分别确定第一中间值pA和第二中间值pB;
pA=l+f(c)-f(logb z+(e-8)logb 2-1) 公式三;
pB=[f(logb z+(e-8)logb 2)-f(logb z+(e-8)logb 2-1)]×m公式四;
其中,l为第一分组字节数,b=1+1/256;
f(c)为根据所述第一计数值c从预设的第一计数值表中查找获取;
f(logb z+(e-8)logb 2)为根据logb z+(e-8)logb 2的值从预设的第一计数值表中查找获取;
f(logb z+(e-8)logb 2-1)为根据logb z+(e-8)logb 2-1的值从预设的第一计数值表中查找获取;
m为伪随机数,且m为32位的正数;
logb z的值为根据z值从预设的第一字节数表中查找获取;
(e-8)logb 2的值为根据e值从预设的第二字节数表查找获取;
z=l+f(c)+1/(b-1) 公式五;
若根据所述公式五获得的z值小于1024,则e为0,则将z值和e值分别作为最终使用的z值和e值;
若根据所述公式五获得的z值大于等于1024,则将所述z值转换为无符号二进制数,并对所述无符号二进制数进行右移的移位运算,直至移位运算后的无符号二进制数对应的z值小于1024,则将移位运算后的无符号二进制数对应的小于1024的z值作为最终使用的z值;以及
对所述无符号二进制数进行右移的移位运算时,所述无符号二进制数每进行右移的移位运算一次,所述e在起始值上增加1,所述e的起始值为0,直至移位运算后的无符号二进制数对应的z值小于1024时,得到的e值作为最终使用的e值;
相应地,所述获取单元,具体用于
在判断单元确定的所述第一中间值pA大于等于所述第二中间值pB时,则根据下述的公式六获得累计所述网络流的第二计数值c',
c'=logb z+(e-8)logb 2 公式六;
在判断单元确定的所述第一中间值pA小于所述第二中间值pB时,则根据下述的公式七,获得累计所述网络流的第二计数值c',
c'=logb z+(e-8)logb 2-1 公式七。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410200744.8A CN104009868B (zh) | 2014-05-13 | 2014-05-13 | 流量统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410200744.8A CN104009868B (zh) | 2014-05-13 | 2014-05-13 | 流量统计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104009868A CN104009868A (zh) | 2014-08-27 |
CN104009868B true CN104009868B (zh) | 2017-07-07 |
Family
ID=51370364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410200744.8A Active CN104009868B (zh) | 2014-05-13 | 2014-05-13 | 流量统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104009868B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989147A (zh) * | 2018-07-16 | 2018-12-11 | 西安电子科技大学 | 基于fpga的sdn网络流量测量系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001088734A1 (en) * | 2000-05-17 | 2001-11-22 | Mci Worldcom, Inc. | Method and apparatus for multicast performance measurement |
CN1716867A (zh) * | 2004-06-29 | 2006-01-04 | 杭州华为三康技术有限公司 | 数据流量统计方法及装置 |
CN101155086A (zh) * | 2006-09-26 | 2008-04-02 | 中兴通讯股份有限公司 | 宽窄带综合接入设备的网络流量统计方法 |
-
2014
- 2014-05-13 CN CN201410200744.8A patent/CN104009868B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001088734A1 (en) * | 2000-05-17 | 2001-11-22 | Mci Worldcom, Inc. | Method and apparatus for multicast performance measurement |
CN1716867A (zh) * | 2004-06-29 | 2006-01-04 | 杭州华为三康技术有限公司 | 数据流量统计方法及装置 |
CN101155086A (zh) * | 2006-09-26 | 2008-04-02 | 中兴通讯股份有限公司 | 宽窄带综合接入设备的网络流量统计方法 |
Non-Patent Citations (3)
Title |
---|
ANLS: Adaptive Non-Linear Sampling Method for;Chengchen Hu 等;《IEEE Transactions on Communications 》;20111202;第60卷(第3期);789=798 * |
DISCO: Memory Efficient and Accurate Flow;Chengchen Hu 等;《Distributed Computing Systems (ICDCS), 2010 IEEE 30th International Conference on》;20100625;665-674 * |
高速IP网络流量测量技术研究;王宜青;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140215(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104009868A (zh) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105592487B (zh) | 一种lte网络业务流量评估方法及装置 | |
US9276853B2 (en) | Hashing of network packet flows for efficient searching | |
CN110519290A (zh) | 异常流量检测方法、装置及电子设备 | |
CN103424733B (zh) | 一种数字量输入电能信息采样数据丢失的修正方法 | |
CN103516508A (zh) | 一种单向和双向时延抖动测量中修正时钟漂移的方法及系统 | |
CN105871725B (zh) | 一种报文分流方法及装置 | |
EP2550775A1 (en) | Token bucket management apparatus and method of managing a token bucket | |
CN109299160B (zh) | 一种基于监控大数据挖掘的电力cps安全性分析方法 | |
CN102299863B (zh) | 一种网络流量聚类的方法及其设备 | |
CN104462443B (zh) | 数据处理方法和装置 | |
CN109558727A (zh) | 一种路由安全检测方法和系统 | |
CN104009868B (zh) | 流量统计方法及装置 | |
JP5862811B1 (ja) | 評価装置、評価方法、及びプログラム | |
CN102546293B (zh) | 基于哈希比特串复用的高速网络流量网络地址测量方法 | |
CN107920024A (zh) | 一种sdn控制器动态流表管理方法 | |
CN105721107B (zh) | 一种分块计算crc以提高时钟频率的装置和方法 | |
CN106789703A (zh) | 一种基于sdn架构的流量监管算法 | |
CN108733728B (zh) | 时序数据统计方法、装置、计算机设备及可读存储介质 | |
CN104219102B (zh) | 一种网络数据压缩统计的方法、装置和系统 | |
CN102970246B (zh) | 一种以太网报文流量控制方法 | |
CN113271263B (zh) | 一种数据处理方法及其设备 | |
CN106911807A (zh) | 一种安全感知的车载can fd网络设计空间搜索方法 | |
Zhu et al. | CBFSketch: A scalable sketch framework for high speed network | |
CN103259731A (zh) | 一种基于开/关源模型的网络关键节点自相似流量生成简化方法 | |
CN108599834B (zh) | 一种卫星通信网络链路利用率分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |