一种协议解析方法及装置制造方法及图纸

技术编号:9697075 阅读:92 留言:0更新日期:2014-02-21 05:46
本发明专利技术公开了一种协议解析方法及装置。所述方法包括:接收数据包;对接收到的数据包进行协议解析,识别所述数据包的协议类型,根据所述数据包的协议类型分派所述数据包;通过使用匹配引擎对所述数据包进行特征匹配,识别所述数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法。本发明专利技术提高了字符串匹配效率及数据处理能力。

【技术实现步骤摘要】
一种协议解析方法及装置
本专利技术涉及网络安全技术,尤其涉及一种协议解析方法及装置。
技术介绍
随着互联网的日渐庞大,互联网的流量增长迅猛,深度包检测(De印PacketInspection, DPI)、入侵检测系统(Intrusion Detection System, IDS)等网络安全管理技术快速发展,出现了协议解析技术。协议解析是对网络数据包的内容进行详细分析的过程。协议解析从网络通信协议特有的规则性出发,对数据包的数据、结构进行解码分析,获得深层次的数据,识别数据包的功能,为分析数据包提供精确、详细的信息。现有技术中,协议解析技术首先对字符流中的字符串进行匹配,然后对匹配成功的字符串进行解析操作。而随着网络流量的迅猛增长,现有技术面临着数据处理能力不足的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种协议解析方法及装置,以解决现有的协议解析技术数据处理能力不足的问题。一方面,本专利技术实施例提供了一种协议解析方法,所述方法包括:接收数据包;对接收到的数据包进行协议解析,识别所述数据包的协议类型,并根据所述数据包的协议类型分派所述数据包;通过使用匹配引擎对分派的所述数据包进行特征匹配,识别所述数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法。进一步地,所述匹配引擎包括:特征结构和引擎结构;所述特征结构包括:特征、上下文指针、模式串跳转表指针、回调函数和失配偏移,其中,所述特征是指一个或者多个模式串的集合。进一步地,所述动态多模式匹配算法用于动态修改跳转表、模式串及文本串。进一步地,通过使用匹配引擎对所述数据包进行特征匹配,识别所述数据包的功能之后,还包括:根据所述数据包的功能,通过利用单模式字符串匹配算法或者多模式字符串匹配算法进行匹配,识别所述数据包的具体功能。另一方面,本专利技术实施例还提供了 一种协议解析装置,所述装置包括:接收模块,用于接收数据包;分派模块,用于对所述接收模块接收到的数据包进行协议解析,识别所述数据包的协议类型,根据所述数据包的协议类型分派所述数据包;第一识别模块,用于通过使用匹配引擎对所述分派模块分派的数据包进行特征匹配,识别所述数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法。进一步地,所述第一识别模块使用的匹配引擎包括:特征结构和引擎结构;所述特征结构包括:特征、上下文指针、模式串跳转表指针、回调函数和失配偏移,其中,所述特征是指一个或者多个模式串的集合。进一步地,所述第一识别模块使用的匹配引擎基于的所述动态多模式匹配算法,用于动态修改跳转表、模式串及文本串。进一步地,还包括:第二识别模块,用于在所述第一识别模块通过使用匹配引擎对所述数据包进行特征匹配,识别所述数据包的功能之后,根据所述数据包的功能,通过利用单模式字符串匹配算法或者多模式字符串匹配算法进行匹配,识别所述数据包的具体功能。本专利技术实施例提出的协议解析方法及装置,通过接收数据包,对接收到的数据包进行协议解析,以识别所述数据包的协议类型,根据所述数据包的协议类型分派所述数据包,使用匹配引擎对所述数据包进行特征匹配,以识别所述数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法;通过匹配引擎对多个模式串进行匹配,识别数据包的功能,提高了字符串匹配的效率及数据处理能力。【附图说明】图1是本专利技术第一实施例提供的协议解析方法的流程图;图2是本专利技术第二实施例提供的协议解析方法的流程图;图3是本专利技术第三实施例提供的协议解析装置的示意图。【具体实施方式】下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。在图1中示出了本专利技术的第一实施例。图1是本专利技术第一实施例提供的协议解析方法的实现流程图,该方法详述如下:步骤101,接收数据包。执行数据处理方法的设备接收需要处理的数据包。步骤102,对接收到的数据包进行协议解析,识别所述数据包的协议类型,根据所述数据包的协议类型分派所述数据包。执行数据处理方法的设备对接收到的数据包进行初步的协议解析,根据数据包的包头识别所述数据包的协议类型,本领域技术人员可以理解,也可以通过其他方法识别数据包的协议类型。然后根据所述数据包的协议类型对所述数据包进行分派,分派给相应的处理模块进行后续的处理。步骤103,通过使用匹配引擎对分派的数据包进行特征匹配,识别所述数据包的功倉泛。在一个网络数据包到达后,可能需要对其进行识别再进一步分派,这就需要在一次的文本串扫描中识别出多种模式串,这里使用匹配引擎对分派的网络数据包进行特征匹配,识别数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法。示例性的,所述匹配引擎包括:特征结构和引擎结构;所述特征结构包括:特征、上下文指针、模式串跳转表指针、回调函数和失配偏移,其中,所述特征是指一个或者多个模式串的集合。所述上下文指针用于处理专有逻辑,模式串跳转表指针用于指示模式串跳转表的起始位置,回调函数用于被引擎呼叫以及终止匹配引擎,失配偏移用于记录模式串失效的距离。字符串匹配算法根据模式串注册模式串的跳转表,在字符串匹配时利用该跳转表执行匹配算法,不再需要构造跳转表。跳转表被定义为一个数组,每一个索引代表模式串集合中的一个字符。匹配引擎使用位运算实现模式串进入或退出匹配时对跳转表的操作,例如:当有新的模式串进入匹配时,将新的模式串的跳转表追加到原跳转表的尾部,同时调整识别位;当模式串退出匹配时,将该模式串在跳转表中的位置标记为失效,当有新的模式串进入导致位数不够时,将跳转表中标记为失效的模式串整体去除。匹配引擎中,所述动态多模式匹配算法用于动态修改跳转表、模式串及文本串。动态多模式匹配算法可以基于MultiShiftAnd算法,在匹配引擎能容纳所有的模式串的情况下使用,如果模式串的总长度超出了所述匹配引擎所能容纳的范围,则超出范围的模式串,使用Wu-Manber算法。匹配引擎维护每个特征的引用,在匹配过程中不断的判断失配值,失配值以最小堆的形式存在,当失配值到达时,给该失配特征做标记,由于跳转表对MultiShiftAnd算法的影响非常小,进行一次失效的正确匹配的成本不高,所以可以在匹配命中时在失效特征中排除。MultiShiftAnd算法和Wu-Manber算法均为多字符串匹配算法。MultiShiftAnd算法是一种位并行算法,适用于模式串字符集的总长度不超过机器字长的情况下。在初始化时对每个模式串扫描构造跳转表,跳转表进行或操作,匹配进行中每次对读入的字符进行一位和与操作,结果中如果第一个字符为I则表示一次成功的匹配,否则将结果保存下来用于下次匹配。在多字符串匹配算法中,基于后缀的匹配算法由于模式串的增多,会导致跳转距离的低下,Wu-Manber算法解决了这一问题,Wu-Manber算法一次读入一个字符块,以降低字符块在模式串中的出现率。匹配引擎运行中,会有以下几种情况及相应的处理方式:没有有效特征时,结束;长度超过了失效堆的堆顶值时,使这个堆顶指向的特征失效,同时调整失效最小堆进行了一次成功匹配时,判断该特征的失效标记,如果判断为失效,则继续下个匹配;进行了一次成功匹配时,该本文档来自技高网...

【技术保护点】
一种协议解析方法,其特征在于,所述方法包括:接收数据包;对接收到的数据包进行协议解析,识别所述数据包的协议类型,并根据所述数据包的协议类型分派所述数据包;通过使用匹配引擎对分派的所述数据包进行特征匹配,识别所述数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法。

【技术特征摘要】
1.一种协议解析方法,其特征在于,所述方法包括: 接收数据包; 对接收到的数据包进行协议解析,识别所述数据包的协议类型,并根据所述数据包的协议类型分派所述数据包; 通过使用匹配引擎对分派的所述数据包进行特征匹配,识别所述数据包的功能,其中,所述匹配引擎基于动态多模式匹配算法。2.根据权利要求1所述的方法,其特征在于,所述匹配引擎包括:特征结构和引擎结构; 所述特征结构包括:特征、上下文指针、模式串跳转表指针、回调函数和失配偏移,其中,所述特征是指一个或者多个模式串的集合。3.根据权利要求1或2所述的方法,其特征在于,所述动态多模式匹配算法用于动态修改跳转表、模式串及文本串。4.根据权利要求1或2所述的方法,其特征在于,通过使用匹配引擎对所述数据包进行特征匹配,识别所述数据包的功能之后,还包括: 根据所述数据包的功能,通过利用单模式字符串匹配算法或者多模式字符串匹配算法进行匹配,识别所述数据包的具体功能。5.一种协议解析装置,其特征在于,所述装置包括: 接收模块,用于接收数据包;...

【专利技术属性】
技术研发人员:刘成伟
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1