《一种链路层协议数据类型识别的方法.pdf》由会员分享,可在线阅读,更多相关《一种链路层协议数据类型识别的方法.pdf(7页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104052749A43申请公布日20140917CN104052749A21申请号201410286298722申请日20140623H04L29/0620060171申请人中国科学技术大学地址230026安徽省合肥市包河区金寨路96号72发明人薛开平余林浩王和洲洪佩琳74专利代理机构北京凯特来知识产权代理有限公司11260代理人郑立明陈亮54发明名称一种链路层协议数据类型识别的方法57摘要本发明公开了一种链路层协议数据类型识别的方法,首先将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;依次选。
2、取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在所述比特流数据中的位置。该方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配目标时尤为显著。51INTCL权利要求书1页说明书4页附图1页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图1页10申请公布号CN104052749ACN104052749A1/1页21一种链路层协议数据类型。
3、识别的方法,其特征在于,所述方法包括将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在所述比特流数据中的位置;否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议类型匹配完毕。2根据权利要求1所述链路层协议数据类型识别的方法,其特征在。
4、于,所述预编码的方法具体包括比特流数据以及特征字段的首尾均补“1”;按照从左至右的顺序,依次统计相邻的“1”之间的“0”个数,其中两个相邻的“1”之间的“0”个数记为0;统计结果中每个数字代表一个字符,将各字符串联在一起,即为编码后的结果。3根据权利要求1所述链路层协议数据类型识别的方法,其特征在于,所述对从目标串中滑动窗口获取的目标子串和该模式串进行匹配,具体包括将目标串中的滑动窗口获取的目标子串与该模式串进行匹配,若匹配成功,则记录此时编码前比特流数据中与链路层协议相对应的特征字段匹配的位置,并按一定的规则滑动窗口,对滑动窗口中新的目标子串继续进行匹配;否则,按照一定的规则滑动窗口并执行匹。
5、配操作,直到窗口已滑动至所述目标串的末尾,此时该链路层协议类型的匹配识别过程完全结束。4根据权利要求1或3所述链路层协议数据类型识别的方法,其特征在于,在和所述模式串进行匹配的过程中,所述方法包括若编码后的模式串长度为1,则目标串中字符数值不小于模式串字符数值时,则匹配成功,所有满足该条件的目标串字符位置即为匹配的位置;若编码后的模式串长度大于1,若假定长为M,则设窗口大小为M,按照一定的步长实现窗口在目标串上的滑动,对窗口内的目标子串与模式串进行匹配。权利要求书CN104052749A1/4页3一种链路层协议数据类型识别的方法技术领域0001本发明涉及网络通信技术领域,尤其涉及一种链路层协议。
6、数据类型识别的方法。背景技术0002目前,在链路层网络协议识别中通常采用单模式匹配技术,目标数据为物理层解码得到的比特流数据,其字符集为0,1,根据已有的链路层协议类型确定相应的特征字段,构建协议特征集合,通过目标数据与特征集合逐一匹配确定链路层协议类型,并返回目标数据中所有的匹配位置。这里,所说的模式匹配就是在指定字符集下,给定一组特定的模式文本集合P,对于任意一个目标文本T,查询出P中指定模式文本在T中所有的出现位置,通常来说目标文本T也称为目标数据、目标串;而模式文本P也称为模式串。0003现有技术传统的模式匹配算法中,BFBRUCEFORCE算法简单但效率低下,其他的各种算法则是利用已。
7、匹配信息扩大窗口移动距离,移动距离越大,匹配速度越快,效率越高,虽然在自然语言场景下具有很好的效率,但在链路层协议识别中的二元字符集0,1场景下,现有技术的匹配算法却受到一定影响。首先链路帧上层协议未知,可以将目标串中每个字符的可能取值视为等概率的独立事件,显然字符集越大,这个概率越小;在二元字符集0,1场景下进行字符比较匹配时,发生失配的概率比在自然语言场景下小,另外模式串和目标串的字符集相同,现有技术中即便是具有最大窗口移动距离的QSQUICKSEARCH算法,失配时目标串的下一位字符也必然包含在模式串字符集中,要达到最大窗口移动距离的目的也就无法实现。发明内容0004本发明的目的是提供一。
8、种链路层协议数据类型识别的方法,该方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。0005一种链路层协议数据类型识别的方法,所述方法包括0006将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;0007依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;0008若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在。
9、所述比特流数据中的位置;0009否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议类型匹配完毕。0010由上述本发明提供的技术方案可以看出,该方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。说明书CN104052749A2/4页4附图说明0011为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。0012图1为本发明实施例所提供的链路层协议数据类。
10、型识别的方法流程示意图;0013图2为本发明实施例所提供的字符串编码示意图;0014图3为本发明实施例所提供的模式串与目标串的成功匹配示例图。具体实施方式0015下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。0016本发明实施例所提供的方法是在进行模式匹配之前通过编码的方式扩大字符集,提升比较匹配过程中发生失配的概率,并且尽量使目标子串的下一位字符不包含在模式串字符集中,这就可以使失配时。
11、的窗口移动距离加大,进而达到快速匹配的目的。下面将结合附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例所提供的链路层协议数据类型识别的方法流程示意图,所述方法包括0017步骤11将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;0018在该步骤中,编码方式的选择在于扩大目标串字符集和模式串字符集之间的差异性,使编码后的数据更接近于自然语言数据,也就更适用于经典模式匹配算法;特征字段由相应的链路层协议类型决定,可使用链路层协议帧首尾定界符作为特征字段。0019在具体实现过程中,如图2所示为本发明实施例所。
12、提供的字符串编码示意图,上述预编码的规则方法具体包括0020比特流数据以及特征字段的首尾均补“1”;0021按照从左至右的顺序,依次统计相邻的“1”之间的“0”个数,其中两个相邻的“1”之间的“0”个数记为0;0022统计结果中每个数字代表一个字符,将各字符串联在一起,即为编码后的结果。0023步骤12依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;0024在该步骤中,如图3所示为本发明实施例所提供的模式串与目标串的成功匹配示例图。在目标串和模式串进行匹配的过程中,若编码后的模式串长度为1,则目标串中字符数值不小于模式串字符数值时,则匹配成功,所。
13、有满足该条件的目标串字符位置即为匹配的位置;这里可以假定目标串T为T0T1TN,长度为1编码模式串为P,成功匹配位置为TK,则原始比特串中的匹配位置起始为0025另外,若编码后的模式串长度大于1,若假定长为M,则设窗口大小为M,按照一定说明书CN104052749A3/4页5的方式实现窗口在目标串上的滑动,对窗口内的目标串子串与模式串进行匹配。这里匹配成功并不要求模式串与目标串的子串完全匹配,而是要求中间字段完全相同,同时首尾字符不大于目标子串中相应位置的字符数值即可。0026步骤13若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功。
14、的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在比特流数据中的位置;0027步骤14否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议类型匹配完毕。0028上述步骤1214的匹配过程具体为0029首先将目标串中的滑动窗口获取的目标子串与该模式串进行匹配,若匹配成功,则记录此时编码前比特流数据中与链路层协议相对应的特征字段匹配的位置,并按一定的规则滑动窗口,对滑动窗口中新的目标子串继续进行匹配;0030否则,按照一定的规则滑动窗口并执行匹配操作,直到窗口已滑动至所述目标串的末尾,此时该链路层协议类型的匹配识别过程完全结束。0031这里,如果当前选定的编码模式串不。
15、匹配,则选取其他链路层协议及其相应模式串重新执行上述过程,直到存在匹配,或者所有可能的数据帧格式特征字段对应的模式串均已经进行尝试。0032以具体实例来进行说明假定目标串T为T0T1TN,在当前窗口下目标子串TK为TKTK1TKM1,选定编码模式串P为P0P1PM1,其中去掉首尾两个字符P0和PM1之后的模式串中间子串P1P2PM2记为P,在匹配过程中00331如果目标子串TK与模式串P匹配,即P0的数值不大于TK,PM1的数值不大于TKM1,对于I1,2,M2,TKI与PI的数值相等,则记录此时比特流数据中的匹配位置为若TKM1P0PM1,则窗口向右滑动M1位,否则窗口移动M位;00342如。
16、果目标子串TK与模式串P不匹配,则若PM10,定义参数XM1,执行步骤3。若PM10,首先比较TKM与模式串P最后一个字符PM1如果TKM的数值不小于PM1,则窗口向右滑动1位,即窗口的移动距离为1;否则,如果TKM小于PM1,定义参数XM,执行步骤3;00353判断TKX是否出现在模式串中间子串P中当TKX出现在P中,则从右往左找到最近的与TKX数值相等的字符PMI,则窗口向右滑动XMI位,即窗口移动距离为XMI;当TKX没有出现在P中,进一步判断TKX和P0的大小比较,如何TKX数值不小于P0,则窗口向右滑动X位,直接推进至TKX处,即窗口移动距离为X,如果TKX的数值小于P0,则窗口向右。
17、滑动X1位,直接推进至TKX1处,即窗口移动距离为X1;00364判断是否已经匹配完目标串中的所有字符,若KMN,则匹配完目标串所有字符,匹配结束,返回所有匹配位置结果;反之,则重复执行以上匹配过程。0037综上所述,本发明实施例所提供的方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。0038以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,说明书CN104052749A4/4页6都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。说明书CN104052749A1/1页7图1图2图3说明书附图CN104052749A。