一种网络异常流量检测方法和装置

文档序号:31034632发布日期:2022-08-06 02:50阅读:185来源:国知局
一种网络异常流量检测方法和装置

1.本技术涉及网络技术领域,尤指一种网络异常流量检测方法和装置。


背景技术:

2.在海量的网络流量中高效、准确、即时地发现异常网络行为,主要关注海量流量中的基数计数(cardinality counting)问题,即有多少个不同的元素。如附图1所示,ddos受害者的特征是一个ip地址接收到来自大量其他ip地址的数据。扫描攻击的特征是某个攻击者向大量ip地址或端口发送信息。网络管理员可以通过识别流量中的此类行为,发现可能存在的网络攻击行为。


技术实现要素:

3.本技术提供了一种网络异常流量检测方法及装置,实现了一种运算效率高、内存使用量少、可以实时上报基数值超过阈值的流标识符的方法。
4.本技术提供了一种网络异常流量检测方法,所述方法包括:
5.接收待检测的数据包,其中,所述数据包包括流标识符;
6.根据所述数据包的流标识符,在预先设置的数据结构中查找具有相同流标识符的元素,其中,该数据结构包括多个元素;
7.对于查找到的元素,根据该数据包对该元素执行更新操作;
8.如果执行更新操作后的元素符合预设条件,则上报所述元素,以供进行检测网络异常行为。
9.一种示例性的实施例中,所述预先设置的数据结构包含r
×
c个元素;
10.所述数据结构中的每行对应不同的哈希函数;
11.其中,r为数据结构的行数,c为数据结构的列数,r、c均为大于1的正整数。
12.一种示例性的实施例中,所述数据包还包括属性信息;所述元素包括(bitmap)位图;
13.所述对于查找到的元素,根据该数据包对该元素执行更新操作包括:
14.根据流标识符、属性信息和每行对应的哈希函数确定所查找到的元素的(bitmap)位图中对应的位;
15.若该位上为“0”,则将该位上的值更新为“1”,并将该元素的计数器值加1;
16.若该位上为“1”,则结束更新操作。
17.一种示例性的实施例中,所述流标识符为源ip地址或目的ip地址;所述属性信息为目的ip地址或源ip地址。
18.一种示例性的实施例中,所述根据所述数据包的流标识符,在预先设置的数据结构中查找具有相同流标识符的元素,包括:
19.根据所述数据包的流标识符,利用比对元素确认公式确定待比对的数据结构中的元素集;
20.对所确定的元素集中的每个元素分别与所述数据包的流标识符进行一一比对,找到和数据包具有相同流标识符的元素;
21.其中,所述比对元素确认公式为:
22.hashi(流标识符)mod c;
23.上述公式中,hash为哈希函数,mod为取余计算,c为数据结构的列数。
24.一种示例性的实施例中,方法还包括:
25.所述根据所述数据包的流标识符,在预先设置的数据结构中未查找具有相同流标识符的元素,则确定待比对的元素集中计数器值最小的元素;
26.从预先建立的基数估计值表中确定该计数器值最小的元素所对应的值,并用随机生成的概率值进行命中判断;
27.如果命中该概率值则将所述数据包的流标识符替换为该计数器值最小的元素的流标识符。
28.一种示例性的实施例中,所述如果执行更新操作后的元素符合预设条件,则上报所述元素,包括:
29.判断该执行更新操作后的元素的位图中“1”的数量是否大于或等于阈值t1;
30.若该元素更新后的计数器值大于或等于位图中的“1”的数量,则将该元素的流标识符和位图进行上报,并将该元素进行清空。
31.一种示例性的实施例中,所述阈值是通过以下步骤确定的:
32.预先设置目标流标识符和属性信息、上报信息所对应的基数值;
33.并根据该属性信息确定位图的位数;
34.根据该基数值和基数估计值表确定位图中的“1”的数量。
35.一种示例性的实施例中,所述基数估计值表是计数器值与基数估计值对应关系的表;
36.其中,所述计数器值与基数估计值对应关系是通过预先设置的位图的位数和数据流中的计数器的值根据基数值估计公式计算确定的。
37.本技术还提供了一种网络异常流量检测装置,所述装置包括:存储器和处理器;所述存储器用于保存网络异常流量检测的程序,所述处理器用于读取执行所述用于网络异常流量检测的程序,执行上述实施例中任一项所述的网络异常流量检测方法。
38.与相关技术相比,本技术提供一种网络异常流量检测方法和装置,所述方法包括:接收待检测的数据包,其中,所述数据包包括流标识符;根据所述数据包的流标识符,在预先设置的数据结构中查找具有相同流标识符的元素,其中,该数据结构包括多个元素;对于查找到的元素,根据该数据包对该元素执行更新操作;如果执行更新操作后的元素符合预设条件,则上报所述元素,以供进行检测网络异常行为。本技术利用流标识符和预先设置的数据结构可以实现一种效率高、内存使用量少、并实时上报基数值超过阈值的流标识符的方法。
39.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
40.附图用来提供对本技术技术方案的理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
41.图1为一示例性实施例中扫描攻击示意图;
42.图2本技术实施例的网络异常流量检测方法流程图;
43.图3为本技术实施例的网络异常流量检测装置示意图;
44.图4为一示例性实施例中内存中的数据状态及处理流程示意图;
45.图5为一示例性实施例中更新、替换操作完成后的数据状态示意图。
具体实施方式
46.本技术描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本技术所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
47.本技术包括并设想了与本领域普通技术人员已知的特征和元件的组合。本技术已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本技术中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
48.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本技术实施例的精神和范围内。
49.在海量的网络流量中高效、准确、即时地发现异常网络行为是当前需要解决的难题。对于10gbps的网络链路,每个数据包平均只有几十纳秒的处理时间。而交换机上的内存资源也很有限。与流量速度相适应的片上高速内存(sram)通常只有几十mb,而且还要和其他程序共用。如果将攻击者的流量称为大流,将普通用户的流量称为小流。网络流量中的大流数量很少,而小流数量众多。用较少的计算资源和存储资源发现大流并及时上报,已有的方法主要分为两类:
50.第一类、基于采样转发的方法。该方法是以预设的采样率将数据包复制一份,发送到专用的服务器上进行后续分析。目前商用交换机能支持的采样率通常只有1/100或1/1000。这种方法的优点在于通用性强,计算资源和存储资源相对充足。该方法的主要不足在于:
51.(i)转发数据包会产生额外的网络流量,对网络造成压力;
52.(ii)采样导致准确率较低;
53.(iii)从网络行为的产生,到把数据包转发至服务器上分析,再到得出结果。这个过程的时间较长。
54.第二类、在网络设备上使用高效算法统计信息。这类特别设计的算法具有的特点是针对具体测量任务设计的;每次采集数据的运算量和需要的存储空间少,因而能实时地采集信息;虽然该统计方法不是完全准确的,但因利用了所有数据包的信息而比采样方法更准确。但是,通过发明人的研究发现,该第二类方法中还存在着以下不足:(1)第二类方法并不能实现完全实时性,需要等设定的测量时间结束之后,再经过分析,才能上报基数值大的流量。(2)精度较差,容易受到众多基数值小的流的干扰。
55.针对上述所存在的问题,发明人提出一种可以实现效率高、内存使用量少、并实时上报基数值超过阈值的流标识符以进行异常网络行为的检测的方法。
56.本公开实施例提供了一种网络异常流量检测方法,如图2所示,方法包括步骤s100-s130,
57.s100.接收待检测的数据包;
58.s110.根据所述数据包的流标识符,在预先设置的数据结构中查找具有相同流标识符的元素,其中,该数据结构包括多个元素;
59.s120.对于查找到的元素,根据该数据包对该元素执行更新操作;
60.s130.如果执行更新操作后的元素符合预设条件,则上报所述元素,以供进行检测网络异常行为。
61.在本实施例中,通过查找、替换以及在远端服务器上将属于同一ip地址的信息进行汇总,以实现更加精准的检测异常网络行为。其中,将属于同一ip地址的信息进行汇总是指,对于某一个目标的ip地址,在网络异常流量检测方法中被上报之后该元素就会被清空,但该目标的ip地址后续的数据包还可能经过累计被多次上报,这样就实现在远端的服务器上把多次上报的数据汇总。
62.一种示例性的实施例中,该方法网络异常流量检测的基础信息是每一条流的基数值。例如网络管理员希望知道网络中是否存在某个ip地址在向大量不同的目的ip地址发送数据,则将此处的流定义为源ip地址相同的数据包构成的集合,将基数值定义为不同目的ip地址的数量。该数据包包括并不限于:流标识符(在代码中可以用key表示)和属性信息(在代码中可以用attr表示)。所述流标识符为源ip地址或目的ip地址;所述属性信息为目的ip地址或源ip地址。比如:在一些场景中也可定义流标识符key为“目的ip”,属性信息attr为“源ip”。例如,ddos(distributed denial of service attack,分布式拒绝服务攻击)受害者的特征是一个目的ip地址接收到来自大量其他源ip地址的数据。
63.一种示例性的实施例中,该预先设置的数据结构是一个r行c列组成的表;该数据结构包含r
×
c个元素;其中,r为数据结构的行数,c为数据结构的列数,r、c均为大于1的正整数。每个元素包括:流标识符,位图和计数器。所述数据结构中的每行对应不同的哈希函数;该哈希函数的作用是根据流标识符将数据包映射到该行的一个元素中。流标识符表示为ip地址;位图是一个长m位的二进制空间,是用于估计数据包即某条数据流对应的基数值,例如:估计有多少个不同的目的ip地址,根据该ip地址的数量确定位图m的值。计数器用
于记录位图中有多少位被置为“1”。在本实施例中计数器使用“1”的数量有利于提高算法的计算效率。
64.一种示例性的实施例中,根据所述数据包的流标识符,在预先设置的数据结构中查找具有相同流标识符的元素,包括:根据数据包的流标识符,利用比对元素确认公式确定待比对的数据结构中的元素集;对所确定的元素集中的每个元素分别与所述数据包的流标识符进行一一比对,找到和数据包具有相同流标识符的元素;其中,所述比对元素确认公式为:
65.hashi(流标识符)mod c;
66.上述公式中,hash为哈希函数,mod为取余计算,c为数据结构的列数。在本实施例中,当数据包(key,attr)进入网络异常流量检测方法流程中,该数据包会依次经过预先设置的数据结构r行。在每行中与第hashi(key)mod c个元素比较,对与遇见的第一个存储的key与数据包的key相同的元素或空元素执行更新操作。
67.一种示例性的实施例中,如果执行更新操作后的元素符合预设条件,则上报所述元素,包括:判断该执行更新操作后的元素的位图中“1”的数量是否大于或等于阈值t1;若该元素更新后的计数器值大于或等于位图中的“1”的数量,则将该元素的流标识符和位图进行上报,并将该元素进行清空变为一个空元素。
68.一种示例性的实施例中,阈值t1是通过以下步骤确定的:预先设置目标流标识符和属性信息、上报信息所对应的基数值(t0);并根据该属性信息确定位图的位数;根据该基数值和基数估计值表确定位图中的“1”的数量(t1)。
69.一种示例性的实施例中,所述基数估计值表是计数器值与基数估计值对应关系的表;其中,所述计数器值与基数估计值对应关系是通过预先设置的位图的位数(m值)和数据流中的计数器的值(u值)根据基数值估计公式计算确定的。基数值估计公式为:
70.或者使用近似公式:
[0071][0072]
式中,m为位图的位数,该值为预定义的值,在整个检测过程中该值是固定不变的;u为计数器的值。在本实施例中,因为算法需要经常使用计数器值所对应的基数估计值。尽管数据结构中已经维护了计数器值,但每次使用基数估计值时都由计数器值计算得到,此过程的开销较大。所以算法用预先计算出的表a保存这些结果。在算法处理输入流量时,就可以根据计数器值从表a中直接取得基数估计值,从而节省计算开销。表a存储了不同的计数器值对应的基数估计值,即a[计数器值]=est(m,计数器值)。
[0073]
一种示例性的实施例中,根据所述数据包的流标识符,在预先设置的数据结构中未查找具有相同流标识符的元素,则确定待比对的元素集中计数器值最小的元素;从预先建立的基数估计值表中确定该计数器值最小的元素所对应的值,并用随机生成的概率值进行命中判断;如果命中该概率值则将所述数据包的流标识符替换为该计数器值最小的元素的流标识符。
[0074]
在本实施例中,执行网络异常流量检测方法中的代码示例如下:
[0075][0076][0077]
一种示例性的实施例中,获取预设时间段内所上报的元素,根据所上报的元素所对应的流标识符的位图按位或,得到汇总信息;并根据汇总信息计算得到待检测的数据流的基数值。在上述示例性实施例中,实现了根据输入的数据包更新数据结构,并实时上报基数值超过阈值的流标识符。基于上述所上报的信息,可以估计被上报的流标识符在一段时间内的基数值,具体的估计方法包括:
[0078]
第一步、设定本实施例的参数如下:bitmap的长度m=16,计算器counter的上报阈值t1=7。
[0079]
第二步、假设管理员在预定时间段内收到了5条上报的元素信息:(1,01011000 11110000),(3,01011000 11110000),(3,01011000 11110000),(1,10100010 11001001),(1,10011101 00100100)。其中上报信息的格式为(key,bitmap)。
[0080]
第三步、根据所上报的元素所对应的流标识符的位图按位或,得到汇总信息。即将
属于同一个流标识符key的位图bitmap按位或,得到上报信息汇总为:(1,11111111 11111101),(3,01011000 11110000)。
[0081]
第四步、根据基数值估计公式计算得到对应的流标识符的数据流基数值;
[0082]
例如:流标识符key为1的流的基数值为:est(16,15)≈38
[0083]
流标识符key为3的流的基数值为:est(16,7)≈9。
[0084]
本实施例中的网络异常流量检测方法特点包括:(1)通过上报和替换两种方式清除设备内存中的数据,从而能应对更大量的输入流量。(2)设计了一种概率替换的方式来降低假阳性率。当进入数据包的流标识符没有被记录在内存中时,需要以特定概率才能被接纳入内存中,从而降低小基数流对内存中已有记录的影响。(3)通过单独设置变量维护位图中“1”的数量,提升了概率替换和阈值检测时的运算效率。(4)算法使用固定大小的内存空间和简单的运算操作,因此容易实现到多种硬件平台上。(5)本技术可以实时上报估计基数值超过阈值的流标识符,还可以估计被上报的流标识符在较长时期内的基数值。
[0085]
本技术还提供了一种网络异常流量检测装置,如图3所示,所述装置包括:存储器300和处理器310;所述存储器用于保存网络异常流量检测的程序,所述处理器用于读取执行所述用于网络异常流量检测的程序,执行上述实施例中任一项所述的网络异常流量检测方法。
[0086]
示例一
[0087]
本示例用于说明网络异常流量检测的过程,如下所示:
[0088]
步骤400.预先设置参数值;在网络异常流量检测前,估算网络管理员对目标流标识符key和属性attr,以及上报时的基数阈值t0。系统计算估计值最接近t0时,位图bitmap中为“1”的位数t1。本示例也支持估计这些key的基数值。如果某个key及其bitmap被上报了多次,则首先将它的各bitmap按位或,再使用公式对其估计。
[0089]
步骤410.预先建立数据结构表;
[0090]
该基数估计值表a作为可用于快速得到计数器counter值对应的基数估计值,可以减少每次使用时的计算开销。表a存储了各计数器counter值到基数估计值的映射,即a[counter]=est(m,counter)。
[0091]
步骤420.根据所述数据包的流标识符,利用比对元素确认公式确定待比对的数据结构中的元素集;
[0092]
对所确定的元素集中的每个元素分别与所述数据包的流标识符进行一一比对,找到和数据包具有相同流标识符的元素;
[0093]
其中,所述比对元素确认公式为:
[0094]
hashi(流标识符)mod c;
[0095]
上述公式中,hash为哈希函数,mod为取余计算,c为数据结构的列数。
[0096]
步骤430.判断是否满足更新操作条件;
[0097]
当数据包(key,attr)进入数据结构表时,会依次经过r行。在每行中与比对元素集即第hashi(key)mod c个元素进行比较,对遇到的第一个元素所存储的key与数据包的key
相同的元素或空元素则满足更新操作的条件,执行步骤440以执行更新操作,否则执行步骤460;
[0098]
步骤440.更新操作;
[0099]
该更新操作包括:
[0100]
第一步,确定本数据包对应元素位图bitmap的位,可以用公式idx=g(key,attr)mod m来确定,其中,g为hash函数,mod为取余操作。在本步骤中,作为hash函数的g函数保证了算法不会对(key,attr)相同的数据包重复计数。
[0101]
第二步,如果位图bitmap[idx]为'0',则将该位置更新为'1',并将计数器counter增加1;
[0102]
如果bitmap[idx]已经为'1',则不执行任何操作。
[0103]
步骤450.判断是否符合上报条件,满足则上报;
[0104]
在更新操作之后,判断执行更新操作的元素的计数器counter值是否大于或等于阈值t1,若计数器counter值是大于或等于阈值t1,则满足上报条件,将该元素的流标识符key和位图bitmap上报,并将该元素清空,对此数据包的处理流程结束。
[0105]
步骤460.替换操作;
[0106]
若数据包在经过数据结构表r行的r个元素后,未遇到key相同的元素或空桶,则选择比对元素集中计数器counter值最小的元素比较。并用随机生成的概率值进行命中判断;如果命中该概率值则将所述数据包的流标识符替换为该计数器值最小的元素的流标识符。例如:设该元素对应的估计值为estvalmin,则以1/(estvalmin+1)的概率替换该桶的key并执行更新操作。
[0107]
在本示例中,可以实时地上报超过阈值的key,网络管理员可以及时采取措施防范网络攻击,如直接阻断相关流量或对进一步分析这些key。本实施例也支持估计这些流在更长时间内的基数值。如果某个流标识符及其位图被上报了多次,则首先将它的各个位图按位或,再使用上文公式计算其基数值。
[0108]
作为对比,spreadsketch算法与本实施例均使用256kb空间,处理相同的压力较大的真实流量样本,spreadsketch的准确率和召回率分别为10.5%、28.5%;而本实施例的对应指标分别为95.3%、72.9%。对于另一测试环境,vector bloom filter算法使用1280kb内存,其准确率和召回率分别为91.1%、47.1%;而本实施例在使用128kb内存时,对应指标分别为96.6%、96.6%。这说明本实施例的准确性,特别是假阳性率指标显著优于已有算法。
[0109]
本示例的技术效果包括:
[0110]
(1)在和已有算法运算效率相仿的情况下,内存使用少,假阳性率低。
[0111]
(2)支持实时上报超过阈值的条目,也能够为基数值较大的条目给出估计值。已有的算法(如spreadsketch)只能在测量周期结束之后,再经过一段处理才能提取出超过阈值的key。另一些算法(如beaucoup)可以在测量时,实时地上报达到阈值的key,却不能给出key的具体估计值。
[0112]
示例二
[0113]
在示例采用网络异常流量检测方法进行更新与上报的两个流程说明。
[0114]
第一步、首先设置的参数如下:行数r=3,列数c=3,上报时的基数阈值t0=14,
hashi(x)=x mod(3+i),且从0开始计数。
[0115]
第二步、根据基数估计值公式进行计算,当m=8时,使得est(m,u)的值最接近14的u为7,因此,确定计算器counter的上报阈值t1=7;
[0116]
其中,该基数估计值公式为:
[0117][0118]
在本公式中,为预设位图bitmap中的位数值,u为计算器counter值。
[0119]
第三步、预先建立的数据结构表在内存中的当前状态如图4所示,每个格子即每个元素保存的内容为(key,bitmap,counter),为简略起见,省略了图中的位图bitmap。
[0120]
第四步、key=4的数据包更新操作流程:
[0121]
接收到了一个key=4的数据包,根据所述数据包的流标识符,利用比对元素确认公式确定待比对的数据结构中的元素集。
[0122]
确定数据包对应的索引:idx=g(key,attr)mod m,其中g为hash函数,mod为取余操作;计算确定该索引=g(key,attr)mod 8=8mod 8=0;执行它在第0行没有遇到与自己key相匹配的元素或者空元素,在第1行遇到了匹配的元素,于是对该元素执行更新操作。
[0123]
由g函数计算得到“1”是该元素位图bitmap中该位中没有的,于是把bitmap的相应位置更新为“1”,并将计数器counter值增加1;counter值增加1后达到了预设的阈值t1,将流标识符key和位图bitmap上报,并将该元素清空,对此数据包的处理流程结束。
[0124]
第五步、key=65的数据包替换操作流程:
[0125]
收到了一个key=65的数据包。根据所述数据包的流标识符,利用比对元素确认公式确定待比对的数据结构中的元素集;对所确定的元素集中的每个元素分别与所述数据包的流标识符进行一一比对,找到和数据包具有相同流标识符的元素;其中,所述比对元素确认公式为:hashi(流标识符)mod c;上述公式中,hash为哈希函数,mod为取余计算,c为数据结构的列数。例如:hashi(x)=x mod(3+i)即hashi(x)=x mod(3+i)该元素集包括:hash0(x)=x mod(3)即hash0(65)=2、hash1(x)=x mod(4)即hash0(65)=1、hash2(x)=x mod(5)即hash0(65)=0。
[0126]
对所确定的元素集中的每个元素分别与所述数据包的流标识符进行一一比对,在数据结构的3行元素比对中,没有遇到与数据包key相匹配的元素或者空元素。于是找到元素集中三个元素中计数器值counter值最小的一个,确定该元素为(f8,bitmap,4)。基数估计值est(8,4)=5.08,按照随机生成的概率1/(5.08+1)的概率尝试替换该元素中的key。若替换不成功,则不做其他操作,对该数据包的处理流程结束。若替换成功,元素中的key被替换为65,再对该元素继续执行更新操作。在本示例中,由g函数计算得到“1”是该元素的bitmap中已有的,因此,对该元素不做其他操作,处理流程结束。
[0127]
执行上述步骤四和步骤五操作之后,内存中的数据状态如下图5所示。
[0128]
在本示例中,整个检测过程需要经常使用计数器值所对应的基数估计值。尽管数据结构中已经维护了计数器值,但每次使用基数估计值时都由计数器值计算得到,此过程的开销较大。所以算法用预先计算出的表a保存这些结果。在算法处理输入流量时,就可以根据计数器值从表a中直接取得基数估计值,从而节省计算开销。
[0129]
示例三
[0130]
本示例展示估计被上报的流标识符在预设时间段内的基数值。
[0131]
在上述示例性实施例中,实现了根据输入的数据包更新数据结构,并实时上报基数值超过阈值的流标识符。基于上述所上报的信息,可以估计被上报的流标识符在一段时间内的基数值,具体的估计方法包括:
[0132]
第一步、设定本示例的参数如下:bitmap的长度m=16,计算器counter的上报阈值t1=7。
[0133]
第二步、假设管理员在预定时间段内收到了5条上报的元素信息:(1,01011000 11110000),(3,01011000 11110000),(3,01011000 11110000),(1,10100010 11001001),(1,10011101 00100100)。其中上报信息的格式为(key,bitmap)。
[0134]
第三步、根据所上报的元素所对应的流标识符的位图按位或,得到汇总信息。即将属于同一个流标识符key的位图bitmap按位或,得到上报信息汇总为:(1,11111111 11111101),(3,01011000 11110000)。
[0135]
第四步、根据基数值估计公式计算得到对应的流标识符的数据流基数值。例如:
[0136]
流标识符key为1的流的基数值为:est(16,15)≈38
[0137]
流标识符key为3的流的基数值为:est(16,7)≈9。
[0138]
在本示例中,利用流标识符和预先设置的数据结构可以实现一种效率高、内存使用量少、并实时上报基数值超过阈值的流标识符,并可以估计被上报的流标识符在较长时期内的基数值。
[0139]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1