网络业务流识别系统及其识别方法

文档序号:7702619阅读:132来源:国知局
专利名称:网络业务流识别系统及其识别方法
技术领域
本发明涉及网络安全和网络行为分析技术领域,具体地说,本发明涉 及网络业务流识别系统及其识别方法。
背景技术
近年来,互联网上运行业务种类不断增多,尤其是各种基于P2P协议业 务的出现(如各种P2P下载和在线视频),给网络管理带来了严峻的问题, 其中最突出的就是网络带宽资源被无节制消耗,导致网络出现拥塞,造成各 种实时性要求较高的业务(如VoIP等)无法得到有效的网络保障。因此, 根据业务的不同对数据流进行划分,制定不同的服务支持等级进行管理和规 划,成为解决此问题的关键。为此针对各种不同业务(如WEB, P2P和VOIP 等)的识别技术大量涌现,包括基于端口号的识别技术、基于深包检测的识 别技术、基于流统计特征的识别技术等。
对于基于端口号进行识别,传统应用协议通常采用在IANA才几构注册的 公认端口号作为通信端口,例如www使用80端口, ftp使用20、 21端口。 使用端口号作为业务流识别的方法快速而简单,但是对于为了隐藏自身协议 身份而动态随机更改端口号或仿冒使用公认端口号的协议,识別结果不可靠。
基于深包检测技术进行识别需要深入检查数据包载荷数据段的内容,进 行进一步的分析来识别业务。对于不同的协议类型,在载荷数据段中会有相 应的特征字段,通过判断数据包内容相应字段与特征字段是否匹配,可以确 定此数据包是否属于该种协议类型。基于数据包载荷内容的业务流识别方法 可分为三个层次(1)根据一个和几个载荷数据段特征匹配;(2)从语义角 度深入分析载荷数据段,如HTTP必须包含HTTP报头,这个层次的识别需 要更多的查看数据段的内容,而不是几个字节;(3)从语法的角度,分析一 个业务流的多个数据包,分析协议行为,如HTTP协议规定来自客户端的GET请求后面一定是服务器的某种响应数据包。"深包检查"技术非常的准 确,但是由于需要进行对数据包进行解包分析,需要更多的资源(处理器资 源和内存),效率有限,不适于高速网和骨干网的业务流识别。同时此方法 无法识别已加密数据。
基于流统计特征进行识别是业务流识别的最新技术,可解决已加密数据 流的业务识别问题。此方法通过分析不同协议的数据包统计特征值(如业务 流持续时间,平均数据包长度,数据包间隔时间等)进行匹配。但此方法目 前的识别准确率较低,而且由于需要大量数据包的统计值,所以实时性无法 满足。而且,目前此方法支持的协议种类有限,远小于实际网络中的繁多的 应用协议。
虽然,现有技术中存在上述多种业务识别技术,但是这些技术大都仅支 持单一业务类型识别功能,即判断当前业务流是否是某一特定的业务类型。 而对于多类型业务的识别,现有技术中一般采用深包检测技术,提取当前业 务流(即当前连接)的数据包内容字段,按照顺序逐一匹配各类型业务的各 条业务识别规则,直到匹配某一规则或对所有规则遍历一遍匹配失败,从而 得出当前业务流的业务类型。这种匹配机制的缺陷包括1、只能识别特定 的几种业务类型,若需要根据需求添加新的业务类型支持时,则需要做较大 的改动,协议升级和可扩展性差;2、忽略了各条规则的互斥性和相关性, 有相当多的冗余重复操作,匹配效率低;3、对于混合业务流(比如包含有 多个TCP连接,或者包含TCP连接和持续UDP流的混合业务流)容易出现 识别错误(即误报)。

发明内容
因此,本发明的目的是提供一种能够识别多种业务类型且易于扩展的 网络业务流识别系统及识别方法。
为实现上述发明目的,本发明提供了一种网络业务流识别系统,包括
识别插件库,所述识别插件库包括多个识别插件;
数据接收单元,用于接收待识别连接的数据包;
注册管理单元,用于维护识别插件列表,增加或删除所述识别插件列 表中的识别插件项目;以及
插件调度及综合识别单元,用于调用各识别插件对所述数据接收单元
5所提供的数据包进行识別并根据各识别插件的识别结果综合得出当前待 识别连接的业务类型。
其中,所述网络业务流识別系统还包括识别结果统计单元,用于记录 各类型的业务在数据流中的分布。
其中,每个所述识别插件用于识别一个或多个业务类型。
其中,所述网络业务流识别系统还包括插件关联关系库,用于记录混 合业务中各识别插件所对应业务的关联关系,所述业务包括底层业务和应 用业务,所述关联关系是应用业务对底层业务的依附关系。
其中,所述识别插件是采用基于端口号的识别单元、基于深包检测的 识别单元或者基于流统计特征的识别单元。
本发明还提供了 一种基于上述网络业务流识别系统的识别方法,包括
如下步骤
1) 根据需要注册所需的识别插件;
2) 接收当前待识别连接的数据包;
3) 分别调用各识别插件并根据各识别插件的识别结果综合得出当前 待识别连接的业务类型。
其中,所述步骤3)中,包括下列子步骤
31) 根据各类型的业务在数据流中的分布设定各识别插件的优先级;
32) 然后根据优先级依次调用各识别插件;
33) 当前识别插件根据识别结果返回一个返回值,所述返回值包括 OK和NO; OK表示当前待识别连接的数据包与所述当前识别插件匹配, NO表示当前待识别连接的数据包与所述当前识别插件不匹配;当当前识别 插件的返回值为OK时,对当前待识别连接的识别结束;当当前识别插件 的返回值为NO时,回到步骤32),依照优先级调用下一个识别插件。
其中,所述步骤31)还包括,根据实时统计的业务识别结果,对各类 型的业务在数据流中的分布进行更新,然后根据更新后的各类型的业务在 数据流中的分布重置各识别插件的优先级。
其中,所述步骤31)还包括,根据插件关联关系库将底层业务的识别 插件的优先级强制设定为高于该底层业务所对应的应用业务的识别插件 的优先级。
其中,所述步骤33)中,所述返回值还包括 和PASS; PENDING表示当前待识别连接的数据包的部分特征与所述当前识别插件匹配,需要所述当前带识别连接的更多数据包进行进一步的确认;PASS 是插件关联关系中底层业务的识别插件所特有的返回值,该返回值表示当 前待识别连接的数据包与该底层业务的识别插件匹配;当当前识别插件的 返回值为PENDING时,当前识别插件将继续对所述当前^f寺识别连"t妄的下 一个数据包进行识別,直至返回值为OK或NO;当当前识别插件的返回值 为PASS时,在关联关系库中查找并调用该底层业务的识别插件所对应的 应用业务的识别插件。
与现有技术相比,本发明具有如下技术效果
1、 扩展性强,易于升级。
2、 网络适应性好,可根据部署网络的业务分布情况灵活控制各业务 类型识别的先后顺序。
3、 能够消除重复识别等冗余操作,使处理效率大大提高。
4、 能够避免对混合业务流的误判。


以下,结合附图来详细说明本发明的实施例,其中
图1示出了本发明的总体结构示意图2示出了本发明一个实施例的结构示意图3示出了本发明一个实施例的运行流程图4示出了本发明 一个实施例中对业务流的识别处理流程图5示出了本发明一个实施例的实测性能。
具体实施例方式
下面结合具体实施例对本发明作进一步地描述。
本发明提供了一种网络业务流识别系统,其总体结构如图l所示,包括 管理调度单元和多个识别插件。
图2示出了本发明的一个实施例,该实施例中所述管理调度单元包括数 据接收单元、注册管理单元和插件调度及综合识别单元(可参考图2)。
数据接收单元用于接收待识别连接的数据包,并将所述的数据包提供 给所述插件调度及综合识別单元。
注册管理单元用于维护识别插件列表,可以在识别插件列表上增加或删除识别插件项目,以达到插件管理的目的。所述注册管理单元还包括多 个识別插件接口单元,用于连接所述识別插件。为了更加方^f更地实现识别 插件的注册和注销,本实施例中,每对识别插件和识别插件^矣口单元均设
有三个对应的功能接口注册初始化、注销和业务识别接口。所有识别插件 均保存在一个识别插件库中,并且每个识别插件具有唯一的ID,可根据系统 配置的需要,通过识别插件的ID对相应识别插件进行注册和调用。
插件调度及综合识别单元用于按照一定调度策略分别调用各识别插件 对所述数据包进行识别,并接收各识别插件所返回的识别结果,进而根据各 识别插件的识别结果综合得出当前待识别连接的业务类型。
每个识别插件用于识别某个或某几个特定的业务类型,在本实施例中, 识别插件的返回值有两种0K和N0。 OK表示数据包所岸义载的业务正是本识 别插件所代表的业务,即数据包与本识别插件完全匹配,NO表示数据包所承 载的业务不是本识别插件所代表的业务,即数据包与本识别插件不匹配。插 件调度及综合识别单元为每个连接设置一个关联插件表,用于记录为识别 该连接所调用的业务识别单元及其返回值。这样,插件调度及综合识别单元 可以根据各业务识别插件所代表的业务及相应的返回值进行综合匹配,得出 当前待识别连接所承载的业务类型。
为了提高识别效率,插件调度及综合识别单元需要按照一定调度策略 依序调用各识別插件。本实施例中,可以由用户通过用户接口单元来设定各 识别插件的调用顺序。这种做法在软硬件实现上较为筒单,但是由于需要人 工输入,工效较低。因此,在另一实施例中,所述插件调度及综合识别单元 采用基于优先级机制的调度策略。该实施例中,还包括一个识别结果统计 单元,用于统计一段时期或一定数目的连接的识别结果,并分别记录各业 务类型所出现的次数(即数据流中各业务的分布情况)。这样可以根据在实 际的网络环境中数据流中各业务的分布情况,使数据流占比重大的业务类型 所对应的识别插件优先进行识别,以减少数据包在各插件的识别次数以提高 系统的效率。为此,该实施例4艮据所识别的业务类型为每一个业务识别插件 设置一个优先级。在对它们进行调用的时候,按照优先级从高到低的顺序进 行。在调用过程中, 一旦有业务识别插件返回了 0K,则完成本次识别过程, 而返回N0则继续调用下一个业务识别插件。而每个连接的最终识别结果将 存储在识别结果统计表中。插件调度及综合识别单元#4居当前统计的结果
8动态的更新插件的优先级,以适应不同类型网络中业务流的突发性和集中 性。
另外,在实际的网络通信中还存在混合业务流(比如包含有多个TCP 连接,或者包含TCP连接和持续UDP流的混合业务流),为了避免误报, 还需要引入基于竟争机制的调度策略。
混合业务流中, 一般包括底层业务和应用业务。例如大部分的P2P类软 件,它们的通信过程首先是一段HTTP通信(即底层业务),然后才是P2P协 议(即应用业务),而前述实施例的网络业务流识别系统是建立在以连接为 单位的&出上,这就意味着一旦对一个连接进行了定性,那么在这个连接超 时之前就不会对其进行再次识别。因此如果HTTP插件的优先级高于BT,那 么一个BT业务就会被误认为是HTTP应用,从而导致误判。
因此,在一个新的实施例中,增加一个插件关联关系库,用于记录混 合业务中各识别插件所对应业务类型的关联关系。在插件关联关系库中, 所有识别插件可分为两类, 一类是底层业务所对应的识别插件, 一类是应 用业务所对应的识别插件。所述关联关系是指底层业务所对应的识别插件与 应用业务所对应的识别插件的对应关系(具体地,该对应关系是指应用业务 对底层业务的依附关系)。同时,为涉及上述关联关系的插件的识别结果的 返回值增加了一个新类型PASS,表示虽然本插件识别了数据包承载的业务, 但是还是不退出识别过程,而是继续交给下面那些有可能使用本协议的应用 业务对应的插件进行识别。比如HTTP插件首先对一个数据包进行了确认, 但此时不会马上结束本次识别过程,而是返回PASS,然后插件调度及综合 识别单元将数据包交给那些基于HTTP协议的应用业务(如BT, THUNDER ) 的插件继续识别。这样就避免了对混合业务流的误判。
需要注意的是,本发明中插件调度及综合识别单元即可以单独采用基 于优先级机制的调度策略或基于竟争机制的调度策略,也可以同时采用上 述两种策略。在采用基于竟争机制的调度策略时,需要注意,底层业务的识 别插件的优先级应当高于应用业务的识别插件优先级。
进一步地,在所述基于竟争机制的调度策略中,为了避免对不可识别业 务进行无限处理,网络业务识别系统对每一个连接的识别次数设定一个上 限, 一旦对一个连接的识别超过了这个上限还没有明确结果的话,就放弃识 别。同时,考虑到即使在识别次数没有超过识别上限时,如果数据包每次都经过所有的插件,也会产生不必要的冗余处理,因此可以为插件返回值增加了一个新类型PENDING。 PENDING表示现在还不能判定这个连接的业务类型 是不是本插件所能识别的,或者这个数据包匹配了本插件所代表业务的部分 特征,需要更多的数据进行进一步的确认。这个返回值会#1网络业务识别系 统记录下来,这样当同一连接的新数据包到来时,就只发会^^皮送给那些曾经 返回过PENDING的插件进行处理,直到这个业务被某一个插件所识别(即返 回值为OK ), 或者被所有的插件否定(即返回值为NO ),或者对该连接的识 别的次数超过所设定的上限。下面详细介绍一个综合优先级及竟争机制调度策略的优选实施例的业务 识别方法。该实施例中,识别插件的返回值有四种0K,表示数据包所承载的业务正是本插件识所代表的业务,所以此连接识 別类型即为返回0K的插件的业务类型,对属于此连接的数据包不再做到各 插件识别的操作;NO,表示数据包所承载的业务不是本插件识所代表的业务,此连接进行 进一步识别业务的数据包将跳过此插件;PENDING,表示现在还不能判定这个连接的业务类型是不是本插件所能识 别的,或者这个数据包匹配了本插件所代表业务的部分特征,需要更多的数 据进行进一步的确认。PASS,表示虽然本插件识別了数据包承载的业务,但是不退出识别过程, 而是继续交给那些有可能使用本协议的业务对应的插件进行识别,所以将标 志为PASS的业务类型的相关类型插件标志为PENDING。附图3示出了本优选实施例的网络业务识别系统中对数据流的业务识别 流程,该流程包括下列步骤。步骤301网络管理员可根据部署网络情况及使用本框架的各网络流量管 理系统需求,通过用户接口制定业务识別类型。步骤302系统根据用户配置信息,到识别插件库查询相应插件,通过调 用插件本身的注册函数,将各插件注册到注册管理单元中。注册过程包括 初始化插件注册表,记录各插件信息,如插件名称,插件ID,识别业务类型, 优先级初始值。步骤303根据插件类型,插件依赖关系库设置各插件优先级。步骤304初始化连接状态表,识别结果统计表,关联插件表。其中连接 状态表包含连接ID,连接识别状态,识别类型。连接识别状态有三种NOT YET 表示尚未识别出业务类型;SUCCESS表示已识别出此连接的类型,所识别出 的业务类型在识别类型字段存储;FAIL表示未识别出该连接的业务类型, FAIL所对应的识别类型为UNKNO丽。步骤305对于当前连接,系统根据优先级依序调用各插件进行业务识别, 具体识别过程将结合附图4在下文中详细说明。 .步骤306根据各插件的识别结果更新业务识别结果统计表。步骤307若识别结果统计表表明该部署网络的业务分布排序有变化,则 进入步骤308,否则回到步骤305,继续识别下一个连《|妻。步骤308根据识别结果统计表各业务的分布排序更新各插件优先级,同 时限定此优先级设置与插件依赖关系库不矛盾,然后回到步骤305。下面结合附图4介绍步骤305中的具体业务识别处理流程。步骤401接收一个新数据包。步骤402在连接状态表中查询此数据包所属的连接。步骤403若未找到所属连接,则表明是一个新连接,继续步骤404,若查 找相应的连接,则继续步骤406。步骤404在连接状态表创建新连接项,连接状态为NOT YET,业务类型为 隨N麵。步骤405在关联插件表为该连接创建新条目,初始所有插件的返回类型 为PENDING。这种初始方法可使新连接的第一个数据包到所有的业务识别插 件进行匹配。步骤406判断此连接的识别状态,如果是SUCCEED或者FAIL,表明该连 接识别出业务类型或者识别不出相应业务。所以此连接识别工作已经结束, 不对该数据包进行各插件的匹配工作,然后执行步骤418。如果是NOTYET, 则继续执行步骤407。ii步骤407如果已达到该连接的识别次数上限,表明通过此连接的前N个 数据包的匹配处理,业务识别失败。则执行步骤408,判断该连接的识别业 务类型。否则,用各插件对该数据包进行业务匹配,执行步骤411。步骤408遍历该连接对应的关联插件表项,如果存在返回类型是PASS 的插件,执行步骤409。不存在返回类型是PASS的插件,则执行步骤410。步骤409将返回类型是PASS的插件的业务类型作为该连接的最终识别 业务类型,设置该连接的识别状态为SUCCESS。然后扭J亍步骤418。步骤410设置该连接的识别状态为FAIL,业务类型为UNKNOWN。然后执行 步骤418。步骤411搜索该连接对应的关联插件表中返回类型为PENDING的应用业 务插件,依次调用这些插件的识别功能。步骤412所调用的应用业务插件对该数据包进行识别得出业务识别结果 的返回值。如果返回值是N0,执行步骤413,如果返回值是PENDING,执行步 骤414,如果返回值是PASS,执行步骤415,如果返回值是OK,执行步骤416。步骤413将对应关联插件表项中的该插件属性置为NO,继续步骤417。步骤414将对应关联插件表项中的该插件属性置为PENDING,继续步骤 417。步骤415将对应关联插件表项中的该插件属性置为PASS,并且在插件关 系依赖表中查找与此插件有依赖关系的插件,将其属性置为PENDING,执行 步骤417。步骤416则将此连接的识别状态置为SUCCESS,业务类型即为该插件的业 务类型。然后执行步骤418。步骤417调用下一个属性为PENDING的插件,回到步骤412。步骤418,输出当前流的业务类型,结束识別过程,跳至401继续下一连 接(或数据包)的识别。另外,需要补充的是,本实施例中,所述识别插件即可以通过基于端口 号的识别技术实现,也可以通过基于深包检测的识别技术或基于流统计特征 的识别技术实现。所述识别插件接口单元是同时兼容上述三种识别技术的接如图5所示,在较低的硬件配置(CPU:P4 2.0G,内存512MB,网卡Intel EPRO100 * 2)下,通过上述优选实施例提供的识别方法能够以很高的性 能完成业务流识别。具体来说,在10个业务插件的情况下,实时业务流 识别性能可以达到92Mbps,在50个业务识別插件的情况下依然能够达到 89.2Mbps。实测结果表明本发明具有很高的效率,并且,本发明的插件机 制、调度机制以及优先级机制很好的优化了多业务识别的过程,降低了多 业务识别过程中的冗余操作,因此即使在需要识别业务类型大量增加的情 况下,本发明依然能够保持很高的性能。以上所述的具体实施例对本发明的目的、技术方案以及有益效果进行了 详细的说明。所应理解的是,上述内容仅为本发明的具体实施例而已,并不 用于限制本发明。凡在本发明的精神与原则之内,所做的任何修改、等同替 换以及改进等,均应包含在本发明的保护范围之内。1权利要求
1.一种网络业务流识别系统,包括识别插件库,所述识别插件库包括多个识别插件,每个所述识别插件用于识别一个或多个特定业务类型;数据接收单元,用于接收待识别连接的数据包;注册管理单元,用于维护识别插件列表,增加或删除所述识别插件列表中的识别插件项目;以及插件调度及综合识别单元,用于调用各识别插件对所述数据接收单元所提供的数据包进行识别并根据各识别插件的识别结果综合得出当前待识别连接的业务类型。
2. 根据权利要求1所述的网络业务流识别系统,其特征在于,所述网 络业务流识别系统还包括识别结果统计单元,用于记录各类型的业务在数 据流中的分布;所述插件调度及综合识别单元根据各类型的业务在数据流 中的分布设定各识别插件的优先级。
3. 根据权利要求1或2所述的网络业务流识别系统,其特征在于,所 述网络业务流识别系统还包括插件关联关系库,用于记录混合业务中各识 别插件所对应业务的关联关系,所述业务包括底层业务和应用业务,所述 关联关系是应用业务对底层业务的依附关系。
4. 根据权利要求1或2所述的网络业务流识别系统,其特征在于,所 述识别插件是采用基于端口号的识别单元、基于深包检测的识别单元或者 基于流统计特征的识别单元。
5. 根据权利要求4所述的网络业务流识别系统,其特征在于,所述识 别插件是采用基于端口号的识别单元、基于深包检测的识别单元或者基于流 统计特征的识别单元。
6. —种利用权利要求1所述的网络业务流识别系统的识别方法,包括 下列步骤1) 注册所需的识别插件;2) 接收当前待识别连接的数据包;3) 分别调用各识别插件对步骤2)中所述的数据包进行识别并根据 各识别插件的识别结果综合得出当前待识别连接的业务类型。
7. 根据权利要求6所述的识别方法,其特征在于,所述步骤3)包括下列子步骤[31 )根据各类型的业务在数据流中的分布设定各识别插件的优先级;[32) 然后根据优先级依次调用各识别插件;[33) 当前识别插件才艮据识别结果返回一个返回值,所述返回值包括 OK和NO; OK表示当前待识别连接的数据包与所述当前识别插件匹配, NO表示当前待识别连接的数据包与所述当前识别插件不匹配;当当前识别 插件的返回值为OK时,对当前待识别连接的识別结束;当当前识别插件 的返回值为NO时,回到步骤[32),依照优先级调用下一个识别插件。
8. 根据权利要求7所述的识别方法,其特征在于,所述步骤31)还包 括,根据实时统计的业务识别结果,对各类型的业务在数据流中的分布进 行更新,然后根据更新后的各类型的业务在数据流中的分布重置各识别插 件的优先级。
9. 根据权利要求8所述的识别方法,其特征在于,所述网络业务流识 别系统还包括插件关联关系库,用于记录混合业务中各识别插件所对应业 务的关联关系,所述业务包括底层业务和应用业务,所述关联关系是应用 业务对底层业务的依附关系;所述步骤31 )还包括,根据插件关联关系库将底层业务的识别插件的 优先级强制设定为高于该底层业务所对应的应用业务的识别插件的优先 级。
10. 根据权利要求9所述的识别方法,其特征在于,所述步骤33)中, 所述返回值还包括PENDING和PASS; PENDING表示当前待识别连接的 数据包的部分特征与所述当前识别插件匹配,需要所述当前带识别连接的 更多数据包进行进一步的确认;PASS是插件关联关系中底层业务的识别 插件所特有的返回值,该返回值表示当前待识别连接的数据包与该底层业 务的识别插件匹配;当当前识别插件的返回值为PENDING时,当前识别 插件将继续对所述当前待识别连接的下一个数据包进行识别,直至返回值 为OK或NO;当当前识别插件的返回值为PASS时,在关联关系库中查找 并调用该底层业务的识别插件所对应的应用业务的识别插件。
全文摘要
本发明提供了一种网络业务流识别系统,包括识别插件库,所述识别插件库包括多个识别插件;数据接收单元,用于接收待识别连接的数据包;注册管理单元,用于维护识别插件列表,增加或删除所述识别插件列表中的识别插件项目;以及插件调度及综合识别单元,用于调用各识别插件对所述数据接收单元所提供的数据包进行识别并根据各识别插件的识别结果综合得出当前待识别连接的业务类型。本发明能够识别多种业务类型且易于扩展。
文档编号H04L9/36GK101645778SQ20091009179
公开日2010年2月10日 申请日期2009年8月25日 优先权日2009年8月25日
发明者云晓春, 吴志刚, 张永铮, 曦 王, 王树鹏, 浩 罗, 袁春阳, 金书源 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1