一种链路层协议数据类型识别的方法

文档序号:7807007阅读:572来源:国知局
一种链路层协议数据类型识别的方法
【专利摘要】本发明公开了一种链路层协议数据类型识别的方法,首先将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在所述比特流数据中的位置。该方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配目标时尤为显著。
【专利说明】一种链路层协议数据类型识别的方法

【技术领域】
[0001] 本发明涉及网络通信【技术领域】,尤其涉及一种链路层协议数据类型识别的方法。

【背景技术】
[0002] 目前,在链路层网络协议识别中通常采用单模式匹配技术,目标数据为物理层解 码得到的比特流数据,其字符集为{〇, 1},根据已有的链路层协议类型确定相应的特征字 段,构建协议特征集合,通过目标数据与特征集合逐一匹配确定链路层协议类型,并返回目 标数据中所有的匹配位置。这里,所说的模式匹配就是在指定字符集Σ下,给定一组特定 的模式文本集合P,对于任意一个目标文本T,查询出P中指定模式文本在T中所有的出现 位置,通常来说目标文本T也称为目标数据、目标串;而模式文本P也称为模式串。
[0003] 现有技术传统的模式匹配算法中,BF(Bruce Force)算法简单但效率低下,其他 的各种算法则是利用已匹配信息扩大窗口移动距离,移动距离越大,匹配速度越快,效率越 高,虽然在自然语言场景下具有很好的效率,但在链路层协议识别中的二元字符集{〇, 1} 场景下,现有技术的匹配算法却受到一定影响。首先链路帧上层协议未知,可以将目标串中 每个字符的可能取值视为等概率的独立事件,显然字符集越大,这个概率越小;在二元字符 集{〇, 1}场景下进行字符比较匹配时,发生失配的概率比在自然语言场景下小,另外模式 串和目标串的字符集相同,现有技术中即便是具有最大窗口移动距离的QS(Quick Search) 算法,失配时目标串的下一位字符也必然包含在模式串字符集中,要达到最大窗口移动距 离的目的也就无法实现。


【发明内容】

[0004] 本发明的目的是提供一种链路层协议数据类型识别的方法,该方法能够提高协议 识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。
[0005] -种链路层协议数据类型识别的方法,所述方法包括:
[0006] 将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进 行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;
[0007] 依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目 标子串和该模式串进行匹配;
[0008] 若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层 协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配 的目标子串相对应的在所述比特流数据中的位置;
[0009] 否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层 协议类型匹配完毕。
[0010] 由上述本发明提供的技术方案可以看出,该方法能够提高协议识别和匹配效率, 在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。

【专利附图】

【附图说明】 toon] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 附图。
[0012] 图1为本发明实施例所提供的链路层协议数据类型识别的方法流程示意图;
[0013] 图2为本发明实施例所提供的字符串编码不意图;
[0014] 图3为本发明实施例所提供的模式串与目标串的成功匹配示例图。

【具体实施方式】
[0015] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明的保护范围。
[0016] 本发明实施例所提供的方法是在进行模式匹配之前通过编码的方式扩大字符集, 提升比较匹配过程中发生失配的概率,并且尽量使目标子串的下一位字符不包含在模式串 字符集中,这就可以使失配时的窗口移动距离加大,进而达到快速匹配的目的。下面将结合 附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例所提供的链路层协 议数据类型识别的方法流程示意图,所述方法包括:
[0017] 步骤11 :将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字 段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;
[0018] 在该步骤中,编码方式的选择在于扩大目标串字符集和模式串字符集之间的差异 性,使编码后的数据更接近于自然语言数据,也就更适用于经典模式匹配算法;特征字段由 相应的链路层协议类型决定,可使用链路层协议帧首尾定界符作为特征字段。
[0019] 在具体实现过程中,如图2所示为本发明实施例所提供的字符串编码示意图,上 述预编码的规则方法具体包括:
[0020] 比特流数据以及特征字段的首尾均补"1" ;
[0021] 按照从左至右的顺序,依次统计相邻的" 1"之间的" 0 "个数,其中两个相邻的" 1" 之间的"〇"个数记为0 ;
[0022] 统计结果中每个数字代表一个字符,将各字符串联在一起,即为编码后的结果。
[0023] 步骤12 :依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口 获取的目标子串和该模式串进行匹配;
[0024] 在该步骤中,如图3所示为本发明实施例所提供的模式串与目标串的成功匹配示 例图。在目标串和模式串进行匹配的过程中,若编码后的模式串长度为1,则目标串中字符 数值不小于模式串字符数值时,则匹配成功,所有满足该条件的目标串字符位置即为匹配 的位置;这里可以假定目标串T为. . tn,长度为1编码模式串为p,成功匹配位置为tk, 则原始比特串中的匹配位置起始为:

【权利要求】
1. 一种链路层协议数据类型识别的方法,其特征在于,所述方法包括: 将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预 编码,编码为相应的目标串和多个对应不同链路层协议的模式串; 依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子 串和该模式串进行匹配; 若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议 类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目 标子串相对应的在所述比特流数据中的位置; 否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议 类型匹配完毕。
2. 根据权利要求1所述链路层协议数据类型识别的方法,其特征在于,所述预编码的 方法具体包括: 比特流数据以及特征字段的首尾均补" 1" ; 按照从左至右的顺序,依次统计相邻的" 1"之间的" 0 "个数,其中两个相邻的" 1"之间 的"0"个数记为0 ; 统计结果中每个数字代表一个字符,将各字符串联在一起,即为编码后的结果。
3. 根据权利要求1所述链路层协议数据类型识别的方法,其特征在于,所述对从目标 串中滑动窗口获取的目标子串和该模式串进行匹配,具体包括: 将目标串中的滑动窗口获取的目标子串与该模式串进行匹配,若匹配成功,则记录此 时编码前比特流数据中与链路层协议相对应的特征字段匹配的位置,并按一定的规则滑动 窗口,对滑动窗口中新的目标子串继续进行匹配; 否则,按照一定的规则滑动窗口并执行匹配操作,直到窗口已滑动至所述目标串的末 尾,此时该链路层协议类型的匹配识别过程完全结束。
4. 根据权利要求1或3所述链路层协议数据类型识别的方法,其特征在于,在和所述模 式串进行匹配的过程中,所述方法包括: 若编码后的模式串长度为1,则目标串中字符数值不小于模式串字符数值时,则匹配成 功,所有满足该条件的目标串字符位置即为匹配的位置; 若编码后的模式串长度大于1,若假定长为m,则设窗口大小为m,按照一定的步长实现 窗口在目标串上的滑动,对窗口内的目标子串与模式串进行匹配。
【文档编号】H04L29/06GK104052749SQ201410286298
【公开日】2014年9月17日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】薛开平, 余林浩, 王和洲, 洪佩琳 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1