1.一种流统计聚合方法,其特征在于,包括以下步骤:
建立含有硬件关键字的聚合控制字设置表;
根据配置的聚合方式所包括的关键字在所述聚合控制字设置表中设置对应的比特位,生成所述聚合方式对应的聚合控制字;
根据所述聚合控制字进行流统计聚合,生成对应的硬件流统计表项。
2.如权利要求1所述流统计聚合方法,其特征在于,还包括:
在所述硬件流统计表项的关键字中增加所述聚合控制字。
3.如权利要求1所述流统计聚合方法,其特征在于,还包括:将所述硬件流统计表项中未与所述聚合控制字中的关键字对应的表项设置为无效值。
4.如权利要求1所述流统计聚合方法,其特征在于,存在因配置的多种聚合方式产生多种聚合控制字时,将多种聚合控制字相或后生成最终的聚合控制字。
5.一种网络设备,其特征在于,包括设置表建立模块、聚合控制字获取模块和聚合统计模块,
所述设置表建立模块,用于建立含有硬件关键字的聚合控制字设置表;
所述聚合控制字获取模块,用于根据配置的聚合方式所包括的关键字在所述设置表建立模块建立的聚合控制字设置表中设置对应的比特位,生成所述聚合方式对应的聚合控制字;
所述聚合统计模块,根据所述聚合控制字获取模块获取的所述聚合控制字进行流统计聚合,生成对应的硬件流统计表项。
6.如权利要求5所述网络设备,其特征在于,所述聚合统计模块包括聚合控制字添加子模块,用于在所述聚合统计模块生成的所述硬件流统计表项的关键字中增加所述聚合控制字。
7.如权利要求5所述网络设备,其特征在于,所述聚合统计模块包括设置子模块,用于将所述聚合统计模块生成的所述硬件流统计表项中未与所述聚合控制字中的关键字对应的表项设置为无效值。
8.如权利要求5所述网络设备,其特征在于,所述聚合控制字获取模块还包括最终生成模块,用于在存在因配置的多种聚合方式产生多种聚合控制字时,将所述配置子模块获取的多种聚合控制字相或后生成最终的聚合控制字。
9.如权利要求8所述网络设备,其特征在于,所述聚合统计模块为网络处理器、或可编程逻辑器件。
技术领域\n本发明涉及网络通信技术领域,特别是涉及一种流统计聚合方法和装置。\n背景技术\n随着互联网的高速发展和网络规模的不断扩大,不仅网上的应用也越来越复杂,而且网络上的各种攻击也越来越多(如病毒,蠕虫等),因此网络设备都需要具备监控网络流量分布情况的功能。目前现有技术中的网络设备都能够提供数据包的统计功能,但这个统计功能只能了解通过该网络设备大致的流量,不能详细的了解网络流量分布情况,如不能了解在通过该网络设备的流量中来自哪个源IP地址的流量最多,然而这正是对确定网络攻击源所必须的。为了实现这个目标,出现很多基于流统计的技术,这些技术一般都能够统计一个数据流的时间段内的数据包和字节数的统计情况,数据流一般情况下也会包含IP的五元组信息(源IP、源端口、协议类型、目的IP及目的端口构成一个IP五元组)和接口信息。\n现有技术为了提高网络设备的性能一般将基本流统计在网络设备的硬件部分中实现,高级的流统计通过软件设备来实现,这样就可以实现基于流的高速统计。然而在数据流比较多时,就会生成大量的流表统计表项,这些表项如果全部高速输出,就会对数据采集分析的服务器造成严重的负担,因此通常需要配置各种聚合来降低输出数据的数量。\n如图1所示,为现有技术中流统计示意图。现有技术采用通过网络设备硬件部分实现数据流等基本信息的统计,然后通过软件层面实现更高级的各种路由属性统计和聚合输出。例如使用专用芯片或NP(network process,网络处理器)芯片实现基于数据流的入接口、源IP、源端口、协议类型、目的IP、目的端口、TOS(业务类型)的包、字节数、时间等基本流的统计。然后通过上层软件实现包含前面提到的入接口、源IP、源端口、协议类型、目的IP、目的端口、TOS(业务类型)的包、字节数、时间的统计信息,还包括对应的路由信息,例如源和目的AS(自治域)信息、路由前缀信息、下一跳信息的统计输出。便于其它专用服务器根据其上报的聚合信息进行数据流量分析。对于网络核心的高速路由设备,这样的信息量是极其庞大的,不同用户对信息的关注度是不一样的,一般设备为了减少数据输出,会提供多种聚合方式,例如如果只关注源IP的统计属性,则可以按源IP进行统计,而不关心其它信息;如果只关注目的IP的统计属性那么就无需关注其它信息。这样通过支持多种聚合方式,来满足不同的需求,同时可以大大降低统计数据的发送量。\n在实现本发明实施例过程中,发明人发现现有技术中至少存在如下问题:由于软件聚合和底层的硬件统计是分别独立的,虽然上层的软件已经启用了聚合,它能够减少统计输出的数据量,但硬件统计还是按基本元素进行统计,因此并不能减少硬件表项的占用,造成软硬之间的接口数据量也非常大,使得硬件建流的性能远低于转发统计的性能,并且大量的新建流对网络设备的性能的影响也非常大。\n发明内容\n本发明实施例要解决的问题是提供一种流统计聚合方法和装置,解决现有技术中网络设备软硬件之间接口数据量大的技术缺陷。\n为达到上述目的,本发明实施例一方面提出一种流统计聚合方法,包括以下步骤:建立含有硬件关键字的聚合控制字设置表;根据配置的聚合方式所包括的关键字在所述聚合控制字设置表中设置对应的比特位,生成所述聚合方式对应的聚合控制字;根据所述聚合控制字进行流统计聚合,生成对应的硬件流统计表项。\n其中,还包括:在所述硬件流统计表项的关键字中增加所述聚合控制字。\n其中,还包括:将所述硬件流统计表项中未与所述聚合控制字中的关键字对应的表项设置为无效值。\n其中,存在因配置的多种聚合方式产生多种聚合控制字时,将多种聚合控制字相或后生成最终的聚合控制字。\n本发明实施例还提出一种网络设备,包括设置表建立模块、聚合控制字获取模块和聚合统计模块,所述设置表建立模块,用于建立含有硬件关键字的聚合控制字设置表;所述聚合控制字获取模块,用于根据配置的聚合方式所包括的关键字在所述设置表建立模块建立的聚合控制字设置表中设置对应的比特位,生成所述聚合方式对应的聚合控制字;所述聚合统计模块,根据所述聚合控制字获取模块获取的所述聚合控制字进行流统计聚合,生成对应的硬件流统计表项。\n其中,所述聚合统计模块包括聚合控制字添加子模块,用于在所述聚合统计模块生成的所述硬件流统计表项的关键字中增加所述聚合控制字。\n其中,所述聚合统计模块包括设置子模块,用于将所述聚合统计模块生成的所述硬件流统计表项中未与所述聚合控制字中的关键字对应的表项设置为无效值。\n其中,所述聚合控制字获取模块还包括最终生成模块,用于在存在因配置的多种聚合方式产生多种聚合控制字时,将所述配置子模块获取的多种聚合控制字相或后生成最终的聚合控制字。\n其中,所述聚合统计模块为网络处理器、或可编程逻辑器件。\n本发明实施例的技术方案具有以下优点,因为在硬件统计时进行硬件聚合,从而降低对网络设备中硬件资源的占用,提高对新数据流的处理能力,提高统计性能。\n附图说明\n图1为现有技术中流统计示意图;\n图2为本发明实施例一的流统计聚合方法流程图;\n图3为本发明实施例二的网络设备结构图。\n具体实施方式\n下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:\n如图2所示,为本发明实施例一的流统计聚合方法流程图,包括以下步骤:\n步骤S201,建立含有硬件关键字的聚合控制字设置表。根据配置需要建立相应的聚合控制字设置表,如下表所示,作为本发明的一个实施例,提出了如下所示的聚合控制字设置表,在该表中硬件关键字包括出接口、TOS、目的端口、目的IP、协议、源端口、源IP和入接口八个关键字,如果需要对上述关键字进行扩充,如对于MPLS报文增加MPLS标签、数据包的2层属性等更多属性,那么可以对聚合控制字的比特位进行相应的扩充即可。因此上述对于聚合控制字比特位数及关键字的变化,均应为本发明实施例保护范围所涵盖。\n表1聚合控制字设置表\n\n步骤S202,根据配置的聚合方式确定聚合所需的硬件关键字,根据硬件关键字配置聚合控制字设置表,获取聚合控制字。因为不同的聚合方式对应有不同的聚合控制字,如果如上表所示,如果存在多种聚合需求,则以多种聚合需求的并集所构成的聚合需求作为聚合需求而进行聚合。\n在具体实现上,可以先分别根据各配置不同的聚合方式生成多个聚合控制值,再将配置的多种聚合控制值相或后生成最终的聚合控制字,当然如果只配置了一种聚合方式那么直接生成的聚合控制值就是最终的聚合控制字。举例如下,对于聚合1来说,该配置的聚合方式与出接口、目的IP、源IP和入接口相关,因此该聚合1对应的聚合控制值为10010011,聚合控制值为0x93(16进制表示);对于聚合2来说,该配置的聚合方式与源IP和入接口相关,因此该聚合2对应的聚合控制值为00000011,聚合控制值为0x03;对于聚合3来说,该配置的聚合方式与出接口和目的IP相关,因此该聚合3对应的聚合控制值为10010000,聚合控制值为0x90。因此将上述三种聚合对应的聚合控制值相或后得到最终的聚合控制字为10010011(0x93)。\n步骤S203,网络设备根据所述聚合控制字进行流统计聚合,生成对应的硬件流统计表项。在进行硬件流统计时,根据与聚合控制字对应的关键字进行统计并生成对应的硬件统计表项。例如进入4个数据包,分别为:\n数据包1:入接口1、出接口2、10.10.0.1:3001->6.0.0.1:21的TCP报文一个,TOS为0;\n数据包2:入接口1、出接口2、10.10.0.1:3001->6.0.0.1:80的HTTP报文一个,TOS为0;\n数据包3:入接口2、出接口2、10.10.0.2:3001->6.0.0.1:21的TCP报文一个,TOS为0;\n数据包4:入接口2、出接口2、10.10.0.2:3001->6.0.0.1:80的HTTP报文一个,TOS为0。\n对于只采用聚合1来说,根据其聚合控制字只提取数据流中对应的出接口、目的IP、源IP和入接口四项属性,将其它属性如TOS等属性设置为0。对于上述四个数据包的统计为:\n0x93+入接口1+出接口2+10.10.0.1+3001+0+6.0.0.1+0+0-》2个包\n0x93+入接口2+出接口2+10.10.0.2+3001+0+6.0.0.1+0+0-》2个包\n其中,在上述硬件流统计表项中添加对应的聚合控制字(0x93)为本发明实施例优选方案,因为在上述实施方案中将聚合1不关心的所有属性均设置为0,那么如果出接口、目的IP、源IP和入接口这四项属性出现真实值为0的情况,例如硬件流统计表项为:0x93+0+出接口2+10.10.0.2+3001+0+6.0.0.1+0+0-,其中入接口ID为0,那么在上报软件进行聚合处理时,就会无法区分该位置的0是真实值,还是不关心的值。然而通过将聚合控制字(0x93)添加到硬件流统计表项中,那么就会明确告知上层软件该硬件流统计表项包括出接口、目的IP、源IP和入接口这四项属性及其对应位置,从而避免上述情况发生。当然还可以通过其它方式实现,不将其它不关心的属性设置为0,而设置为一个其对应的无效值,也能够达到上述目的。\n同样对于聚合2来说,根据其聚合控制字只提取数据流中对应的源IP和入接口两项属性,将其它属性如TOS等属性设置为0。对于上述四个数据包的统计为:\n0x03+入接口1+出接口2+10.10.0.1+3001+0+0+0+0-》2个包\n0x03+入接口2+出接口2+10.10.0.2+3001+0+0+0+0-》2个包\n同样对于聚合2来说,根据其聚合控制字只提取数据流中对应的目的IP和出接口两项属性,将其它属性如TOS等属性设置为0。对于上述四个数据包的统计为:\n0x90+出接口2+0+0+0+6.0.0.1+0+0-》4个包\n而对于用户同时配置了聚合2和聚合3,则它的聚合控制字为两者或的结果:0x90|0x03=0x93,因此该方式与出接口、目的IP、源IP和入接口相关。\n根据其聚合控制字只提取数据流的出接口、目的IP、入接口、源IP属性,将其它属性如TOS等属性设置为0。对于上述四个数据包的统计为:\n0x93+入接口1+出接口2+10.10.0.1+3001+0+6.0.0.1+0+0-》2个包\n0x93+入接口2+出接口2+10.10.0.2+3001+0+6.0.0.1+0+0-》2个包\n对于聚合2,该硬件统计表项能够满足上层软件聚合的信息需求,软件进行聚合处理时,由于有完整的源IP和入接口复合配置的聚合方式。同样对于聚合3来说由于有完整的目的IP和出接口信息,因此上层软件也能够根据这条2条表项生成聚合3的统计输出。\n步骤S204,网络设备根据所述硬件统计表项进行软件聚合处理。\n如图3所示,为本发明实施例二的网络设备结构图,该网络设备1包括设置表建立模块11、聚合控制字获取模块12和聚合统计模块13,设置表建立模块11用于建立含有硬件关键字的聚合控制字设置表;聚合控制字获取模块12用于确定聚合所需的硬件关键字,并根据硬件关键字配置所述聚合控制字设置表,获取聚合控制字;聚合统计模块13根据所述聚合控制字获取模块获取的所述聚合控制字进行流统计聚合,生成对应的硬件流统计表项。\n其中,聚合统计模块13包括聚合控制字添加子模块131,用于在聚合统计模块13生成的所述硬件统计表项的关键字中增加所述聚合控制字。\n其中,聚合统计模块13包括设置子模块132,用于将聚合统计模块13生成的所述硬件统计表项中未与所述聚合控制字中的关键字对应的表项设置为无效值。\n其中,聚合控制字获取模块12包括硬件关键字确定子模块121和配置子模块122,硬件关键字确定子模块121用于根据配置的聚合方式确定聚合所需的硬件关键字;配置子模块122用于根据硬件关键字确定子模块121确定的硬件关键字配置所述聚合控制字设置表,获取聚合控制字。\n其中,聚合控制字获取模块12还包括最终生成模块123,用于在存在因配置的多种聚合方式产生多种聚合控制字时,将配置子模块122获取的多种聚合控制字相或后生成最终的聚合控制字。\n其中,聚合统计模块13为网络处理器、可编程逻辑器件、专用集成电路或可编程处理器。\n通过本发明实施例在硬件统计时进行硬件聚合,从而降低对网络设备中硬件资源的占用,提高对新数据流的处理能力,提高统计性能。\n以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2020-10-20
未缴年费专利权终止
IPC(主分类): H04L 12/24
专利号: ZL 200710166068.7
申请日: 2007.11.01
授权公告日: 2010.10.13
- 2017-05-24
专利权人的姓名或者名称、地址的变更
专利权人由杭州华三通信技术有限公司变更为新华三技术有限公司
地址由310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更为310052 浙江省杭州市滨江区长河路466号
- 2010-10-13
- 2008-06-25
- 2008-03-26
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-04-04
|
2005-09-30
| | |
2
| |
2005-12-28
|
2005-01-31
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |