数据包抽样统计的方法及装置的制作方法

文档序号:6612386阅读:137来源:国知局

专利名称::数据包抽样统计的方法及装置的制作方法
技术领域
:本发明涉及通信系统流统计
技术领域
,尤其涉及一种数据包抽样统计的方法及装置。
背景技术
:随着互联网的高速发展,网络规模空前庞大,各种网络攻击也越来越多,因此在网络设备上监控网络流量分布是十分有必要的,这为有针对性地阻止网络攻击提供了必要的参考。为了对数据包进行统计,出现了很多基于流统计的技术,例如这些技术都能统计一段时间内的数据包和字节数的情况,但是这些技术都是基于每个数据包进行单独统计的,会消耗大量的CPU资源,另外,由于用于统计的带宽资源的限制,所能统计的数据包也是有限的。为了降低CPU负担,同时也为了统计更大范围的流量分布情况,一般会采用抽样统计技术,这样既能有效降低统计的数据流量,又能准确了解数据的流量分布情况。现有抽样统计一般是基于网络设备的接口按照一定方式进行抽样的,抽样方式包括按包抽样和按时间抽样两种。按包抽样又包括固定按包抽样和随机按包抽样,固定按包抽样就是间隔固定数量的数据包进行抽样,例如,抽样间隔为4时,是只每4个数据包抽取1个,随机按包抽样就是在一个抽样间隔内抽取的数据包是随机的,例如,随机抽取第10、100以及第1000数据包;按时间抽样就是在抽样周期内进行抽样,例如,抽样周期0.5s内抽取1个数据包。对于流量分布的统计,主要关注数据流的分布情况,但是上述抽样统计方式都是仅基于接口进行的,不能很好的区分各种数据包的流量分布。例如,通常一个接口上同时并发的数据流非常大,数十万条数据流同时存在,多的同时有上百万条或更多,这样容易出现大流淹没小流的情况,使得数据量小的数据包很难被抽中,这会导致小流量数据包的统计与实际偏差较大,不能4艮好体现实际的数据流分布情况,致使抽样失真
发明内容有鉴于此,本发明在上述抽样统计方案的基础上,提供一种改进的数据包抽样统计的方法和装置,以降低抽样失真度。为此,本发明采用如下技术方案一种数据包抽样统计的方法,包括步骤预置各类数据包计数器;提取所接收数据包的关键字,从而获知该数据包的类型;对所述类型数据包的计数器值加l,并对最新的计数器值按照预置的抽样间隔进行^#运算;若取模结果为系统预置的抽样值,则对该数据包进行抽样统计。优选地,在预置计数器时,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,对提取的IP五元组进行所述哈希运算,利用该哈希值确定该数据包类型。或者,在预置计数器时,是按照部分或全部IP五元组信息区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,利用部分或全部IP五元组确定该数据包类型。一种数据包抽样统计的方法,包括预置计时器,并预置各类数据包抽样标志,当计时器值为预置抽样周期整数倍时,将所述抽样标志置位;提取接收的数据包的关键字,从而获知该数据包的类型;判断该类数据包抽样标志是否置位,如果置位,则对该数据包进行抽样,同时将抽样标志复位。优选地,在预置抽样标志时,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,对提取的IP五元组进行所述哈希运算,利用该哈希值确定该数据包类型。或者,在预置抽样标志时,是按照部分或全部IP五元组信息区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,利用部分或全部IP五元组确定该数据包类型。一种婆:据包抽样统计的装置,包括用于接收彩:据包的接口单元、用于解析所述数据包获取关键字的解析单元、用于保存抽样值的预置单元,以及,对数据包进行抽样统计的抽样统计单元,所述预置单元还保存抽样值;所述装置还包括索引表存储单元,用于存储各类数据包对应的计数器;匹配单元,用于按照所述解析单元提取的关键字匹配所迷索引表,获知数据包对应的计数器,并更新所述索引表对该计数器加1;取模单元,用于对最新的计数器值按照预置的抽样间隔进行取模运算;判断单元,用于判断取模结果是否为预置的抽样值,若是,指示所述抽样统计单元对数据包进行抽样统计。其中,所述索引表,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;所述匹配单元,从关键字中提取数据包IP五元组并进行所述哈希运算,利用该哈希值匹配所述索引表,从而确定该数据包类型;或者,所述索引表,是按照部分或全部IP五元组信息区分每类数据包的;所述匹配单元,/人关键字中提取数据包IP五元组,并利用部分或全部IP五元组匹配所述索引表,从而确定该数据包类型。一种数据包抽样统计的装置,包括计时器、用于接收数据包的接口模块、用于解析所述数据包获取关键字的解析模块、用于保存抽样周期的预置模块,以及,对数据包进行抽样统计的抽样统计模块,所述装置还包括索引模块,用于存储各类数据包对应的抽样标志,并当计时器值为抽样周期整数倍时,负责将抽样标志置位;匹配模块,用于按照所述解析模块提取的关键字匹配所述索引模块,获知数据包对应的抽样标志;判断模块,如果抽样标志置位,则指示所述抽样统计模块对该数据包进行抽样统计,同时指示所述索引模块将抽样标志复位。其中,所述索引模块,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;所述匹配模块,从关键字中提取数据包IP五元组并进行所述哈希运算,利用该哈希值匹配所述索引模块,从而确定该数据包类型;或者,所述索引模块,是按照部分或全部IP五元组信息区分每类数据包的;所述匹配模块,从关键字中提取数据包IP五元组,并利用部分或全部IP五元组匹配所述索引模块,从而确定该数据包类型。对于上述技术方案的技术效果分析如下在现有抽样统计方案中,是按照全部数据包进行按包或按时间抽取,对于小流量数据包,很容易淹没在大流量数据包中而难以被抽取,从而增加了抽样失真度,本发明对数据包进行按类抽样,针对每一类进行按包或^t姿时间进行抽取,保证每类数据包能够被抽中,从而尽可能还原真实流量分布情况,降低抽样失真度,为阻止网络攻击提供真实可靠的参考。其中,可以按照IP五元组对数据包进行分类,优选地,利用IP五元组信息进行哈希运算值对数据包分类,从而在不过多增加系统负担的情况下,实现抽样统计。图1为本发明方法流程图;图2为本发明方法按包抽样示意图;图3为本发明方法按时间抽样示意图;图4为本发明第一装置示意图;图5为本发明第二装置示意图。具体实施方式本发明与现有技术简单基于接口进行数据包的抽样统计不同,对数据包进行类别区分,保证从各类数据包都进行抽样统计,避免小流量的数据包淹没在大流量数据包中,从而减小抽样失真度。本发明按类抽样的方法既可以适用于按包抽样,也可以适用按时间抽样。首先,介绍按包抽样的方法。概括而言,本发明提供的按包抽样包括以下步骤[1]预置各类数据包计数器;[2]提取接收的数据包的关4定字,从而获知该数据包的类型;[3]对所述数据包所属类型对应的计数器值加1,并对最新的计数器值按照预置的抽样间隔进行取模运算;[4]若计数器值取模结果为系统预置的抽样值,则对该数据包进行抽样。上面所述的数据包的关键字,一般包括数据包的IP五元组,以及接收该数据包的接口信息和其他必要信息。如何对数据包进行分类,最极限也是最彻底的方法是按照数据包的IP五元组各项进行严格区分,当然也可以按照部分IP五元组进行区分,本发明优选以IP五元组的哈希运算值对数据包进行分类,这种分类是近似分类,有可能出现IP五元组不同却属于一类的情况,但是通过简单的哈希运算不会占用系统过多资源,又能很好地对数据包进行分类。哈希运算具体方式可任意选择,例如,对IP五元组进行字节"异或"操作或者"与,,操作就都是很简单的哈希运算,对于所有IP五元组总共会计算出N个不同值,然后利用各哈希运算结果作为索引,建立各类数据包计数器表,参见表l,为初始索引表。表1<table>tableseeoriginaldocumentpage9</column></row><table>当数据包进入网络设备接口时,利用数据包IP五元组进行与上述相同的哈希运算,即可得到哈希值,然后按照表1进行匹配,获知该数据包所属类型的计数器值。相对于所有数据包都共用一个计数器统计的方式,漏抽的概率要小很多,抽样失真度就会小很多,随着N值的扩大,抽样失真度会更小。对于数据包所匹配上的计数器值,进行加l操作;最后,判断最新计数器值是否满足抽样条件,如果满足,则对该lt据包进行抽样。抽样条件的判断可以通过所匹配计数器值与抽样间隔进行取模运算值进行判断,对于固定按包抽样,可以在取模结果等于某一固定值时进行抽样,对于随机按包抽样,可以在取模结果等于某个随机值时进行抽样,随机值每一个抽样周期变化一次。参见图1,为按包抽样方法流程图。包括步骤101:针对网络设备的^^妄口,均预置一个包含各类数据包索引值及计数器值的索引表;索引值可以通过部分或全部IP五元组确定;优选地,索引值是通过对IP五元组进行哈希运算得到的。步骤102:网络设备某接口接收到数据包;步骤103:解析数据包获取关键字;步骤104:利用关键字中IP五元组进行哈希运算,利用哈希值匹配索引表;步骤105:对匹配项的计数器值加l;步骤106:计数器值与抽样间隔进行^^莫运算;步骤107:取模运算结果是否满足抽样条件,若是,执行步骤108,否贝'J,不对该数据包进行抽样,直接返回执行步骤102,对下一数据包进行处理;步骤108:对该数据包进行抽样统计,返回执行步骤102,对下一lt据包进行处理。下面以一个具体实例进行说明。参见图2,网络设备某接口所接收数据包示意图。由图可知,两类数据包随机交替出现,第一类数据包在图中以方形表示,第二类数据包在图中以圆形表示,并假设第一类数据包流量大于第二类数据包流量。现假设已按某种哈希运算建立了索引表,并假设按照4:1进行抽样,也就是说抽样间隔为4,预置抽样值为0。当首个第一类数据包到达时,提取该数据包的关键字,假设源IP为16.0.0.1,源端口为3000,协议类型为TCP,目的IP为152.0.0.1,目的端口为21,对这些关键字进行哈希运算,假设哈希运算结果为15,匹配索引值为15的计数器,由于是此类第一个数据包,因此,计数器值增加1后为1;然后,将计数器值l与抽样周期4进行取模运算,得到结果为1;最后,判断取模结果是否与预置的抽样值一致,显然与之前预置的抽样值0不同,因此,对该第一个数据包不进行抽样。对于后续出现的第一类数据包,执行上述类似处理,例如,当该类第4个数据包到来时,计数器加1后为4,与抽样周期4进行取模后为0,与抽样值一致,则对该类第4个数据包进行抽样统计。当首个第二类数据包到达时,提取该数据包的关键字,假设源IP为16.0.0.2,源端口为2000,协议类型为TCP,目的IP为152.0.0.1,目的端口为21,对这些关键字进行哈希运算,假设哈希运算结果为123,匹配索引值为123的计数器,由于是此类第二个数据包,因此,计数器值增加l后为l;然后,将计数器值1与抽样周期4进行取才莫运算,得到结果为1;最后,判断取模结果是否与预置的抽样值一致,显然与之前预置的抽样值O不同,因此,对该第一个数据包不进行抽样。对于后续出现的第二类数据包,执行上述类似处理,例如,当该类第8个数据包到来时,计数器加1后为8,与抽样周期4进行取模后为0,与抽样值一致,则对该类第8个数据包进行抽样统计。如果采用现有技术中按包抽样方法,第一类数据包被抽样的概率远比第二类数据包概率要大,因为它是按照整体数据包个数进行间隔抽取的,如图所示,第一类数据包与第二类数据包^皮抽取的比例为6:1(图2中的一行所示)。在本发明中,是分别对每一类数据包进行间隔抽取,第一类数据包与第二类数据包被抽取比例为5:2(图2中的二、三行所示),由此,采用本发明分类抽样的方法,避免小流被大流淹没,减小了抽样失真度。下面,介绍按时间抽样的方法。概括而言,本发明提供的按时间抽样包括以下步骤1]预置计时器,并预置各类数据包抽样标志,当计时器值为预置抽样周期整数倍时,将所述抽样标志置位;2]提取接收的数据包的关键字,从而获知该数据包的类型;3]判断该类数据包抽样标志是否置位,如果置位,则对该数据包进行抽样,同时将抽样标志复位。与上述按包抽样类似,可以采用数据包的IP五元组、部分IP五元组或IP五元组的哈希运算值来对数据包类别进行区分。按时间抽样的索f1表参见表2。表2<table>tableseeoriginaldocumentpage11</column></row><table>在初始阶段,抽样标志处于复位状态,假设复位时为O;当计时器^f直为4由样周期整数倍时,会对各类数据包的抽样标志进行置位,例如置位时抽样标志为1,只有在某类数据包抽样标志置位的条件下,才对该类数据包进行抽样,在抽样后,再将该类数据包的抽样标志复位,等待下一个周期时,重新置^f立和抽包。下面仍以一个具体实例进4于i兌明。参见图3,网络设备某接口所接收数据包示意图。由图可知,两类数据包随机交替出现,第A类数据包在图中以三角形表示,第B类数据包在图中以椭圆形表示。并假设第A类数据包流量大于第B类数据包流量。现假设已按某种p合希运算建立了索引表,并假设每间隔ls抽样一次,初始抽样标志没有置位,当第一个数据包到达时,启动计时器。当第A类数据包到达时,提取该数据包的关键字,假设源IP为17.0.0.1,源端口为4000,协议类型为TCP,目的IP为152.0.0.1,目的端口为21,对这些关键字进行哈希运算,假设哈希运算结果为25,匹配索引值为25的抽样标志。初始阶段抽样标志没有置位,不抽样。当后续第A类数据包到达时,当1秒钟计时器到达时,将A类抽样标志置位,这时第5个数据包为A类数据包(A类标志位置位后的首个A类数据包),此时A类抽样标志已经置位,则抽取该数据包,同时清除抽样标志。后续包类似。当第B类数据包到达时,提取该数据包的关键字,假设源IP为17.0.0.2,源端口为5000,协议类型为TCP,目的IP为152.0.0.1,目的端口为21,对这些关键字进行哈希运算,假设哈希运算结果为128,匹配索引值为128的抽样标志。初始阶段抽样标志没有置位,不抽样。当后续第B类数据包到达时,当1秒钟计时器到达时,将B类抽样标志置位,这时第7个数据包为B类数据包(B类标志位置位后的首个B类数据包),此时B类抽样标志已经置位,则抽取该数据包,同时清除抽样标志。后续包类似。如果釆用现有技术的抽样方法,第A类数据包^皮抽样的概率比第B类凄t据包概率要大,因为它是按照整体数据包进行时间间隔抽取的,如图所示,第A类数据包与第B类数据包被抽取的比例为6:1(图3中第一行所示)。在本发明中,是分别对每A类数据包进行间隔抽取,第A类数据包与第B类数据包被抽取比例为6:3(图3中第二、三行所示),由此,采用本发明分类抽样的方法,避免小流被大流淹没,减小了抽样失真度。与上述方法相对应,本发明还提供了数据包抽样统计的两种装置,可分别用于对按包抽样统计和按时间抽样统计。本发明提供的装置可以是网络设备的一部分,也可以是独立于网络设备存在并为网络设备提供流量统计月良务的专用设备。参见图4,为第一种装置示意图。该装置除了包含现有的用于接收数据包的接口单元401、用于解析所述数据包获取关键字的解析单元02、用于保存抽样值的预置单元403以及对数据包进行抽样统计的抽样统计单元404之外,还包括索引表存储单元405、匹配单元406、取才莫单元407和判断单元408,而且,预置单元403功能也有所扩展,主要在于,预置单元403还保存有预置的抽样值;索引表存储单元405,主要用于存储各类数据包及对应计数器;匹配单元406,用于按照所述解析单元402提取的关键字匹配所述索引表存储单元405中存储的索引表,获知数据包对应的计数器,并更新所述索引表存储单元405中存储的索引表并对该计数器加1;取模单元407,用于对最新的计数器值按照预置的抽样个数取^f莫;判断单元408,用于判断取模结果是否为预置的抽样值,若是,指示所述抽样统计单元404对数据包进行抽样统计。其中,索引表存储单元405中存储的索引表可以采用多种方式对凄t据包进行分类。例如,一种是,索引表按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包;相应地,匹配单元406从关键字中提取数据包IP五元组并进行所述哈希运算,利用该哈希值匹配所述索引表,从而确定该邀据包类型。另一种是,索引表按照部分或全部IP五元组信息区分每类数据包;相应地,匹配单元406,从关键字中提取数据包IP五元组,并利用部分或全部IP五元组匹配所述索引表,从而确定该数据包类型。参见图5,为第二种装置示意图。该装置除了包含现有的计时器500、用于接收数据包的接口模块501、用于解析所述数据包获取关键字的解析模块502、用于保存抽样周期的预置才莫块503以及对数据包进行抽样统计的抽样统计模块504之外,还包括索引模块505、匹配模块506和判断模块507。其中,索引模块505,主要用于存储各类数据包对应的抽样标志,并在计时器值为预置抽样周期整数倍时,负责将所述抽样标志置位;匹配模块506,主要用于按照所述解析模块502提取的关键字匹配所述索引模块505,获知数据包对应的抽样标志;判断模块507,如果抽样标志置位,则指示所述抽样统计模块504对该数据包进行抽样统计,同时指示所述索引模块505将抽样标志复位。其中,索引模块505可以采用多种方式对数据包进行分类。例如,一种是,索引模块505按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包;相应地,匹配模块506从关键字中提取数据包IP五元组并进行所述哈希运算,利用该哈希值匹配所述索引模块505,从而确定该数据包类型。另一种是,索引模块505按照部分或全部IP五元组信息区分每类数据包的;相应地,匹配模块506从关键字中提取数据包IP五元组,并利用部分或全部IP五元组匹配所述索引模块,从而确定该数据包类型。对于本发明所提供装置的具体实现细节参见方法实施例的介绍,在此不再赘述。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1、一种数据包抽样统计的方法,其特征在于,包括预置各类数据包计数器;提取所接收数据包的关键字,从而获知该数据包的类型;对所述类型数据包的计数器值加1,并对最新的计数器值按照预置的抽样间隔进行取模运算;若取模结果为系统预置的抽样值,则对该数据包进行抽样统计。2、根据权利要求l所述方法,其特征在于,在预置计数器时,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,对提取的IP五元组进行所述哈希运算,利用该哈希值确定该数据包类型。3、根据权利要求l所述方法,其特征在于,在预置计数器时,是按照部分或全部IP五元组信息区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,利用部分或全部IP五元组确定该数据包类型。4、一种数据包抽样统计的方法,其特征在于,包括预置计时器,并预置各类数据包抽样标志,当计时器值为预置抽样周期整数倍时,将所述抽样标志置位;提取接收的数据包的关键字,从而获知该数据包的类型;判断该类数据包抽样标志是否置位,如果置位,则对该数据包进行抽样,同时将抽样标志复位。5、根据权利要求4所述方法,其特征在于,在预置抽样标志时,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,对提取的IP五元组进行所述哈希运算,利用该哈希值确定该数据包类型。6、根据权利要求4所述方法,其特征在于,在预置抽样标志时,是按照部分或全部IP五元组信息区分每类数据包的;当接收到数据包后,从关键字中提取数据包IP五元组,利用部分或全部IP五元组确定该数4居包类型。7、一种数据包抽样统计的装置,包括用于接收数据包的接口单元、用于解析所述数据包获取关键字的解析单元、用于保存抽样值的预置单元,以及,对数据包进行抽样统计的抽样统计单元,其特征在于,所述预置单元还保存抽样值;所述装置还包括索引表存储单元,用于存储各类数据包对应的计数器;匹配单元,用于按照所述解析单元提取的关键字匹配所述索引表,获知数据包对应的计数器,并更新所述索引表对该计数器加1;取模单元,用于对最新的计数器值按照预置的抽样间隔进行取才莫运算;判断单元,用于判断取模结果是否为预置的抽样值,若是,指示所述抽样统计单元对数据包进行抽样统计。8、根据权利要求7所述装置,其特征在于,所述索引表,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;所述匹配单元,从关键字中提取数据包IP五元组并进行所述哈希运算,利用该哈希值匹配所述索引表,从而确定该数据包类型;或者,所述索引表,是按照部分或全部IP五元组信息区分每类数据包的;所述匹配单元,从关键字中提取数据包IP五元组,并利用部分或全部IP五元组匹配所述索引表,从而确定该数据包类型。9、一种数据包抽样统计的装置,包括计时器、用于接收数据包的接口模块、用于解析所述数据包获取关键字的解析模块、用于保存抽样周期的预置模块,以及,对数据包进行抽样统计的抽样统计模块,其特征在于,所述装置还包括索引模块,用于存储各类数据包对应的抽样标志,并当计时器值为抽样周期整数倍时,负责将抽样标志置位;匹配模块,用于按照所述解析模块提取的关键字匹配所述索引模块,获知数据包对应的抽样标志;判断才莫块,如果抽样标志置位,则指示所述抽样统计^^莫块对该数据包进行抽样统计,同时指示所述索引模块将抽样标志复位。10、根据权利要求9所述装置,其特征在于,所述索引模块,是按照IP五元组信息进行哈希运算所得到的各哈希值区分每类数据包的;所述匹配模块,从关键字中提取数据包IP五元组并进行所述哈希运算,利用该哈希值匹配所述索引模块,从而确定该数据包类型;或者,所述索引模块,是按照部分或全部IP五元组信息区分每类数据包的;所述匹配模块,从关键字中提取数据包IP五元组,并利用部分或全部IP五元组匹配所述索引模块,从而确定该数据包类型。全文摘要本发明公开了一种数据包抽样统计的方法,包括步骤预置各类数据包计数器;提取所接收数据包的关键字,从而获知该数据包的类型;对所述类型数据包的计数器值加1,并对最新的计数器值按照预置的抽样间隔取模;若计数器值取模结果为系统预置的抽样值,则对该数据包进行抽样统计。本发明对数据包进行按类抽样,针对每一类进行按包或按时间进行抽取,保证每类数据包能够被抽中,从而尽可能还原真实流量分布情况,降低抽样失真度。与上述方法相对应,本发明还提供一种数据包抽样统计的装置。文档编号G06F17/30GK101119246SQ200710154640公开日2008年2月6日申请日期2007年9月20日优先权日2007年9月20日发明者卢胜文申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1