协议识别方法、协议识别装置及设备的制作方法

文档序号:7896963阅读:228来源:国知局
专利名称:协议识别方法、协议识别装置及设备的制作方法
技术领域
本发明涉及网络技术,尤其涉及一种协议识别方法、协议识别装置及设备。
背景技术
随着网络应用范围的扩展,协议类型也越来越多,因此,各网络节点需要对数据包 进行协议识别,才能正确地处理数据包。例如,网络节点采用多包识别方法,将接收到的数 据包不断送入引擎,引擎遍历所有规则,对当前数据包进行分析如分析当前数据包的关键 字、单包包长、端口等,判断该当前数据包是否命中某条单包规则。如果所有的单包子规则 都被命中即命中多包所有规则,则认为匹配,从而识别出数据包所用的协议。但是,多包识别方法中数据包与数据包之间是独立的,各自都只做单包检测,再将 检测结果组合进行识别。而随着网络应用复杂性的提高,单个数据包的特征越来越弱,仅对 单个数据包进行分析匹配,无法识别出其所使用的协议。如何准确、迅速、高效的识别此类 数据包,成为深度包检测(De印Packet Inspection, DPI)领域新的挑战。因此,目前急需一种协议识别方法来对上述数据包进行识别,以保证准确、迅速、 高效的识别数据包。

发明内容
本发明实施例提出一种协议识别方法、协议识别装置及设备,以实现准确、迅速、 高效的对数据包进行协议识别。本发明实施例提供了一种协议识别方法,包括接收数据流;对所述数据流上的第一数据包进行特征分析,以获得所述第一数据包的特征;当查找到与所述第一数据包的特征相匹配的入口条件时,查找所述入口条件所属 的统计规则,记录所述统计规则和所述第一数据包的样本信息,其中,所述统计规则与协议 相对应,所述统计规则包括入口条件及识别模式;接收所述数据流上的后续数据包,并记录所述后续数据包的样本信息;当接收的所述数据流上的数据包的数量达到预设值时,对记录的数据包进行统计 分析,以获得所述数据流的统计特征;判断所述统计特征是否与所述入口条件所属的统计规则的所有识别模式相匹配, 当所述统计特征与所述所有识别模式相匹配时,判断出所述数据流所使用的协议为所述入 口条件所属的统计规则对应的协议。本发明实施例还提供了一种协议识别装置,包括接收模块,用于接收数据流;特征获取模块,用于对所述数据流上的第一数据包进行特征分析,获得所述第一 数据包的特征;查找模块,用于当查找到与所述第一数据包的特征相匹配的入口条件时,查找所述入口条件所属的统计规则,记录所述统计规则,其中,所述统计规则与协议相对应,所述 统计规则包括入口条件及识别模式;第一处理模块,用于记录所述第一数据包的样本信息;第二处理模块,用于接收所述数据流上的后续数据包,并记录所述后续数据包的 样本信息;统计特征获取模块,用于当接收的所述数据流上的数据包的数量达到预设值时, 对记录的数据包的样本信息进行统计分析,以获得所述数据流的统计特征;识别模块,用于判断所述统计特征是否与所述入口条件所属的统计规则的所有识 别模式相匹配,当所述统计特征与所述所有识别模式相匹配时,判断出所述数据流所使用 的协议为所述入口条件所属的统计规则对应的协议。本发明实施例还提供了一种网络节点设备,包括接收端口、数据流识别引擎及协 议识别引擎,其中,所述接收端口用于向所述数据流识别引擎和所述协议识别引擎转发数 据流,所述数据流识别弓I擎用于对数据流进行识别,协议识别弓I擎为上述所述的协议识别
直O本发明实施例提供的协议识别方法、协议识别装置及设备,通过对数据流上的一 系列数据包进行统计分析,获得统计特征,并通过统计特征与统计规则的识别模式进行匹 配识别出数据流所使用的协议,解决了现有技术无法识别特征较弱的数据包的问题,通过 对一系列数据包之间的统计特征进行分析识别,满足了现有识别方法无法识别的协议识别 需求比如数据流采用加密等协议。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的 附图。图1为本发明实施例提供的一种协议识别方法的流程图;图2为本发明实施例提供的另一种协议识别方法的流程图;图3为本发明实施例提供的协议识别装置的结构示意图;图4为本发明实施例提供的网络节点设备结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。图1为本发明实施例提供的一种协议识别方法的流程图。如图1所示,该方法包 括步骤101、接收数据流;步骤102、对数据流上的第一数据包进行特征分析,以获得所述第一数据包的特征;本步骤中,识别到一个新的数据流时,就对该数据流的第一数据包进行特征分析, 其中,这里的第一数据包是指匹配某一统计规则的入口条件的第一个数据包,不一定是该 数据流的第一个数据包,如果后续还有数据包满足其它统计规则的入口条件,也可以认为 该后续数据包是匹配该入口条件的第一数据包,其中,数据包的特征可以是其中某个或某 些字节的值。步骤103、当查找到与所述第一数据包的特征相匹配的入口条件时,查找所述入口 条件所属的统计规则,记录所述统计规则和所述第一数据包的样本信息;其中,所述统计规则与协议相对应,所述统计规则包括入口条件及识别模式,入口 条件为单包规则,如果某个数据包的某个特征匹配某一统计规则的入口条件,则可对从该 数据包开始的后续多个数据包进行统计,对该多个数据包进行统计。假设某一统计规则的 入口条件为数据包的前5个字节为“AB⑶E”,如果某个数据包的前五个字节为“AB⑶E”,则 认为该数据包匹配该统计规则的入口条件。由于匹配入口条件的数据包其特征不明显,需 要统计后续多个数据包以得到统计特征,因此,从该数据包开始进行统计。统计规则中的识别模式可为已接收的所述数据流上的所有数据包的包长度之和, 所有数据包的包长均值、包长序列、包长集合等,例如已接受到3个数据包,则所有数据包 的包长度之和为3个数据包的总长度;所有数据包的包长均值为3个数据包包长的平均值; 包长序列为第一数据包长度,第二个数据包的长度,第3个数据包的长度排成的序列值,例 如第一数据包长度为9,第二个数据包长度为4,第三个数据包长度为10,则包长序列为 9410 ;包长集合就是3个数据包长度组成的集合。数据包的样本信息可以包括数据包的长 度、传输方向等,该样本信息是后面步骤用于做统计分析的样本。步骤104、接收所述数据流上的后续数据包,并记录所述后续数据包的样本信息;步骤105、当接收的所述数据流上的数据包的数量达到预设值时,对所述第一数据 包和所述后续数据包的样本信息进行统计分析,以获得所述数据流的统计特征;统计特征例如可以为包长为IOK的数据包有几个,传输方向为接收的有几个等等。步骤106、判断所述统计特征是否与所述入口条件所属的统计规则的所有识别模 式相匹配,当所述统计特征与所述所有识别模式相匹配时,判断出所述数据流所使用的协 议为所述入口条件所属的统计规则对应的协议。上述步骤101-步骤106可由网络节点中的引擎执行。本实施例提供的技术方案通过对数据流上的一系列数据包进行统计分析,获得统 计特征,并通过统计特征与统计规则的识别模式进行匹配识别出数据流所使用的协议,能 够对多个数据包之间存在统计关系的场景进行协议识别,解决了现有技术无法识别特征较 弱的数据包的问题,通过对一系列数据包之间的统计特征进行分析识别,满足了现有识别 方法无法识别的协议,比如识别经过加密的数据流。以Bit torrent加密协议识别为例,该协议为了保证信息安全将数据包中的具体 特征值略去,使用现有技术无法识别,而采用上述实施例,对一系列的数据包进行统计分 析,得到数据流的统计特征第1个数据包的包长和传输方向是什么,第2到5个数据包的 包长之和以及第10到16个包的包长范围是什么。当第1个数据包的包长和传输方向、第2到5个数据包的包长之和以及第10到16个包的包长范围均满足BT协议对应的统计规则 中相应的识别模式时,认为该一系列数据包匹配BT加密协议。图2为本发明实施例提供的另一种协议识别方法的流程图。网络节点接收到某一 数据流之后,将该数据流的数据包发给引擎进行识别,数据包通过如图2所示的统计识别 流程进行处理,具体包括步骤201、接收数据包;步骤202、分析所述数据包的特征;本步骤中,对接收的数据包进行分析,得到数据包的特征,例如分析出该数据包中 某个或某些字节的值。步骤203、判断数据包的特征是否匹配某一统计规则的入口条件;本步骤中,入口条件可以为数据包中某个或某些字节的固定值;若匹配,则执行步 骤204 ;否则执行步骤206。本步骤中,对于匹配的情况,可能是第一数据包的后续数据包, 也有可能是匹配其它入口条件的第一数据包。一般来说匹配统计规则的入口条件的数据包是网络节点接收的数据流中进入统 计阶段的第一个数据包,而不一定是该数据流的第一个数据包。步骤204、是否已记录匹配的入口条件所属的统计规则;本步骤中查找的统计规则即记录步骤203中匹配成功的入口条件对应的统计规 则,如果已记录到匹配的入口条件所属的统计规则,为了避免重复记录,执行步骤206 ;否 则,执行步骤205,以记录匹配的入口条件所属的统计规则,说明该后续数据包为匹配其它 入口条件的第一数据包,需要记录对应的统计规则,进行单独的统计分析。本流程中,只考虑对一个协议的完整的识别流程,对于后续数据包中出现匹配其 它入口条件的第一数据包的情况,与此类似,在此不赘述。步骤205、查找所述入口条件所属的统计规则,记录所述统计规则;本步骤中,可能该数据流中,可能匹配不同的入口条件,因此,针对不同的入口条 件都需要记录所属的统计规则。步骤206、记录数据包的样本信息和数量;本步骤中,数据包的样本信息可以包括长度,数据包的传输传输方向等,可以根据 具体的情况自由设定。本实施例中,对于步骤201至步骤206,还有一种处理方式对于第一数据包已经 匹配了入口条件,并记录了匹配的入口条件所属的统计规则之后,进入了统计阶段,对于后 续的数据包,只需执行步骤201、步骤206,然后,跳转至步骤207继续执行即可。步骤207、判断记录的数据包的数量是否达到预设值;本步骤中,若未达到,则继续执行步骤201,直至数据包的数量达到预设值;若达 到预设值则执行步骤208。其中,预设值视实际情况而定,只要足以反映出数据流的统计特 征即可。如假设16个数据包可以统计出数据流的统计特征,则该预设值可以设为16或不 小于16的值。步骤208、对记录的数据包的样本信息进行统计分析,以得到所述数据流的统计特 征。例如对记录的16个数据包的样本信息进行统计分析,假设其中包长范围为9kbit 151cbit的数据包有10个,传输方向为应答的数据包有15个,经过统计分析得到这 16个数据包所属数据流具有的统计特征包长范围91cbit 151cbit的概率为62. 5%,传输 方向为应答的概率为93. 75%。步骤209、判断数据流的统计特征是否匹配记录的统计规则的所有识别模式;本步骤中,当匹配时,执行步骤210 ;当不匹配时,执行步骤211。仍然以步骤208所举例为例,本步骤判断包长范围91ibit 151ibit的概率为 62. 5%,以及传输方向为应答的概率为93. 75%,这两项统计信息是否与步骤M中记录的 统计规则的所有识别模式相匹配,若是,则识别成功,所述数据流所使用的协议即步骤205 中查找到的统计规则对应的协议,返回识别成功结果及所识别出的协议信息,流程结束;否 则,识别失败,返回识别失败结果,流程结束。图3为本发明实施例提供的协议识别装置的结构示意图,可以应用上述方法,由 于方法和装置实施例的相似性,对同样的技术特征,本发明实施例中不再重复。如图3所 示,协议识别装置包括接收模块310、特征获取模块320、查找模块330、第一处理模块340、 第二处理模块350、统计特征获取模块360及识别模块370。接收模块310,用于接收数据流。特征获取模块320,用于对所述数据流上的第一数据包进行特征分析,获得所述第 一数据包的特征。所述统计特征获取模块320可具体用于获得已接收的所述数据流上的所 有数据包的包长度之和,获取所有数据包的包长均值、包长序列、包长集合。查找模块330,用于当查找到与所述第一数据包的特征相匹配的入口条件时,查找 所述入口条件所属的统计规则,记录所述统计规则,其中,所述统计规则与协议相对应,所 述统计规则包括入口条件及识别模式。所述查找模块330记录所述第一个数据包的样本信 息可具体为记录所述第一数据包的长度及传输方向。所述查找模块330记录所述后续数据 包的样本信息可具体为记录所述后续数据包的长度及传输方向。第一处理模块340,用于记录所述第一数据包的样本信息;第二处理模块350,用于接收所述数据流上的后续数据包,并记录所述后续数据包 的样本信息;统计特征获取模块360,用于当接收的所述数据流上的数据包的数量达到预设值 时,对所述第一数据包和所述后续数据包的样本信息进行统计分析,以获得所述数据流的 统计特征;识别模块370,用于判断所述统计特征是否与所述入口条件所属的统计规则的所 有识别模式相匹配,当所述统计特征与所述所有识别模式相匹配时,判断出所述数据流所 使用的协议为所述入口条件所属的统计规则对应的协议议。本实施例提供的协议识别装置通过统计特征获取模块对数据流上的一系列数据 包进行统计分析,获得统计特征,并通过识别模块对统计特征与统计规则的识别模式进行 匹配识别出数据流所使用的协议,解决了现有技术无法识别特征较弱的数据包的问题,通 过对一系列数据包之间的统计特征进行分析识别,满足了现有识别方法无法识别的协议识 别需求比如数据流采用加密等协议。其中,第二处理模块;350,还可以包括特征获取单元351,对所述数据流上的后续数据包进行特征分析,以获得所述后续数据包的特征;样本记录单元352,当查找到与所述后续数据包的特征相匹配的入口条件时,查找 所述入口条件所属的统计规则,判断是否已记录匹配的入口条件所属的统计规则,若已记 录,则记录所述后续数据包的样本信息和已接收数据包的个数;当查未找到与所述后续数 据包的特征相匹配的入口条件时,判断是否已记录匹配的入口条件所属的统计规则,若已 记录,则记录所述后续数据包的样本信息和已接收数据包的个数图4为本发明实施例提供的网络节点设备结构示意图。如图4所示,网络节点设 备包括一种网络节点设备,其特征在于,包括接收端口 410,数据流识别引擎420,协议识 别引擎430,其中,接收端口 410用于向所述数据流识别引擎420和所述协议识别引擎430 转发数据流,所述数据流识别引擎420用于对数据流进行识别,协议识别引擎430,具有统 计识别功能,能够对数据包之间存在关系的数据流进行统计识别,识别出其所使用的协议。 协议识别引擎430可为上述装置实施例提供的任一协议识别装置。本实施例提供的网络节点设备通过协议识别装置对数据流上的一系列数据包进 行统计分析,获得统计特征,并通过统计特征与统计规则的识别模式进行匹配识别出数据 流所使用的协议,解决了现有技术无法识别特征较弱的数据包的问题,通过对一系列数据 包之间的统计特征进行分析识别,满足了现有识别方法无法识别的协议识别需求比如数据 流采用加密等协议。本发明上述实施例适用于常见的识别流程,支持多种形式的匹配条件,假设一条 统计规则包括三个识别模式a、b、c,则匹配条件可为a、b、c全与、a、b、c全或,也可以是复 杂关系,比如匹配条件为a&(b|c)即满足a的同时,b和c中至少满足一个,大大提高了协 议识别的成功率,尤其是对于现有技术无法识别的协议(比如加密等),扩大了协议识别范 围,能够满足更多业务需求。并且,当数据流中的数据包的特征较弱,而多个数据包存在较 明显的统计特征时,现有技术采用单独识别的方式准确性较差,而采用本发明上述实施例 提供的技术方案则具有较高的准确性。对于新的网络应用协议,可以通过更新规则进行扩 展,增强了现网产品的可扩展性、健壮性和可维护性,减少了出错几率和维护成本。上述实施例基于统计的协议识别不仅可用于DPI,在其他领域,比如垃圾邮件、 DDOS等现网应用,都可以基于统计进行处理比如先获取基线值,当统计特征与基线存在 极大差异的时候即认为异常发生的可能性极大,均可使用上述实施例提供的技术方案进行 协议识别,扩大了协议识别的使用范围。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
9
权利要求
1.一种协议识别方法,其特征在于,包括 接收数据流;对所述数据流上的第一数据包进行特征分析,以获得所述第一数据包的特征; 当查找到与所述第一数据包的特征相匹配的入口条件时,查找所述入口条件所属的统 计规则,记录所述统计规则和所述第一数据包的样本信息,其中,所述统计规则与协议相对 应,所述统计规则包括入口条件及识别模式;接收所述数据流上的后续数据包,并记录所述后续数据包的样本信息; 当接收的所述数据流上的数据包的数量达到预设值时,对记录的数据包进行统计分 析,以获得所述数据流的统计特征;判断所述统计特征是否与所述入口条件所属的统计规则的所有识别模式相匹配,当所 述统计特征与所述所有识别模式相匹配时,判断出所述数据流所使用的协议为所述入口条 件所属的统计规则对应的协议。
2.根据权利要求1所述的协议识别方法,其特征在于,所述接收所述数据流上的后续 数据包,并记录所述后续数据包的样本信息,包括对所述数据流上的后续数据包进行特征分析,以获得所述后续数据包的特征; 当查找到与所述后续数据包的特征相匹配的入口条件时,查找所述入口条件所属的统 计规则,判断是否已记录匹配的入口条件所属的统计规则,若已记录,则记录所述后续数据 包的样本信息和已接收数据包的个数;当未查找到与所述后续数据包的特征相匹配的入口条件时,则记录所述后续数据包的 样本信息和已接收数据包的个数。
3.根据权利要求1所述的协议识别方法,其特征在于,所述获得所述数据流的统计特 征包括对已接收的所述数据流上的所有数据包的包长求和、获取所有数据包的包长范围、获 取所有数据包的包长均值、包长序列、包长集合。
4.根据权利要求1或2所述的协议识别方法,其特征在于,记录所述第一个数据包的样 本信息具体为记录所述第一数据包的长度及传输方向。
5.根据权利要求1或2所述的协议识别方法,其特征在于,记录所述后续数据包的样本 信息具体为记录所述后续数据包的长度及传输方向。
6.一种协议识别装置,其特征在于,包括 接收模块,用于接收数据流;特征获取模块,用于对所述数据流上的第一数据包进行特征分析,获得所述第一数据 包的特征;查找模块,用于当查找到与所述第一数据包的特征相匹配的入口条件时,查找所述入 口条件所属的统计规则,记录所述统计规则,其中,所述统计规则与协议相对应,所述统计 规则包括入口条件及识别模式;第一处理模块,用于记录所述第一数据包的样本信息;第二处理模块,用于接收所述数据流上的后续数据包,并记录所述后续数据包的样本 fn息;统计特征获取模块,用于当接收的所述数据流上的数据包的数量达到预设值时,对记录的数据包的样本信息进行统计分析,以获得所述数据流的统计特征;识别模块,用于判断所述统计特征是否与所述入口条件所属的统计规则的所有识别模 式相匹配,当所述统计特征与所述所有识别模式相匹配时,判断出所述数据流所使用的协 议为所述入口条件所属的统计规则对应的协议。
7.根据权利要求6所述的协议识别装置,其特征在于,所述第二处理模块,包括特征获取单元,对所述数据流上的后续数据包进行特征分析,以获得所述后续数据包 的特征;样本记录单元,当查找到与所述后续数据包的特征相匹配的入口条件时,查找所述入 口条件所属的统计规则,判断是否已记录匹配的入口条件所属的统计规则,若已记录,则记 录所述后续数据包的样本信息和已接收数据包的个数;当未查找到与所述后续数据包的特 征相匹配的入口条件时,则记录所述后续数据包的样本信息和已接收数据包的个数。
8.根据权利要求7所述的协议识别装置,其特征在于,所述统计特征获取模块具体用 于获得已接收的所述数据流上的所有数据包的包长度之和,获取所有数据包的包长均值、 包长序列、包长集合。
9.根据权利要求7所述的协议识别装置,其特征在于,所述样本记录单元记录所述第 一个数据包的样本信息具体为记录所述第一数据包的长度及传输方向。
10.根据权利要求7所述的协议识别装置,其特征在于,所述样本记录单元记录所述后 续数据包的样本信息具体为记录所述后续数据包的长度及传输方向。
11.一种网络节点设备,其特征在于,包括接收端口、数据流识别引擎及协议识别引 擎,其中,所述接收端口用于向所述数据流识别引擎和所述协议识别引擎转发数据流,所述 数据流识别引擎用于对数据流进行识别,协议识别引擎为权利要求6-10任一项所述的协 议识别装置。
全文摘要
本发明涉及一种协议识别方法、协议识别装置及设备,方法包括接收数据流;对数据流上的第一数据包进行特征分析,以获得第一数据包的特征;在第一数据包的特征满足统计规则的入口条件的情况下,记录第一数据包所满足的入口条件所属的统计规则,及第一个数据包的样本信息,其中,统计规则与协议相对应,统计规则包括入口条件及识别模式;接收数据流上的后续数据包,并记录后续数据包的样本信息;通过对数据流上的一系列数据包进行统计分析,并与统计规则的所有识别模式进行匹配识别出数据流所使用的协议,解决了现有技术无法识别特征较弱的数据包的问题,满足了现有识别方法无法识别的协议识别需求比如数据流采用加密等协议。
文档编号H04L12/24GK102111401SQ20101060516
公开日2011年6月29日 申请日期2010年12月16日 优先权日2010年12月16日
发明者张元 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1