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

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

Info

Publication number
CN104052749B
CN104052749B CN201410286298.7A CN201410286298A CN104052749B CN 104052749 B CN104052749 B CN 104052749B CN 201410286298 A CN201410286298 A CN 201410286298A CN 104052749 B CN104052749 B CN 104052749B
Authority
CN
China
Prior art keywords
link layer
target
pattern string
layer protocol
matching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410286298.7A
Other languages
English (en)
Other versions
CN104052749A (zh
Inventor
薛开平
余林浩
王和洲
洪佩琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201410286298.7A priority Critical patent/CN104052749B/zh
Publication of CN104052749A publication Critical patent/CN104052749A/zh
Application granted granted Critical
Publication of CN104052749B publication Critical patent/CN104052749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)

Abstract

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

Description

一种链路层协议数据类型识别的方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种链路层协议数据类型识别的方法。
背景技术
目前,在链路层网络协议识别中通常采用单模式匹配技术,目标数据为物理层解码得到的比特流数据,其字符集为{0,1},根据已有的链路层协议类型确定相应的特征字段,构建协议特征集合,通过目标数据与特征集合逐一匹配确定链路层协议类型,并返回目标数据中所有的匹配位置。这里,所说的模式匹配就是在指定字符集Σ下,给定一组特定的模式文本集合P,对于任意一个目标文本T,查询出P中指定模式文本在T中所有的出现位置,通常来说目标文本T也称为目标数据、目标串;而模式文本P也称为模式串。
现有技术传统的模式匹配算法中,BF(Bruce Force)算法简单但效率低下,其他的各种算法则是利用已匹配信息扩大窗口移动距离,移动距离越大,匹配速度越快,效率越高,虽然在自然语言场景下具有很好的效率,但在链路层协议识别中的二元字符集{0,1}场景下,现有技术的匹配算法却受到一定影响。首先链路帧上层协议未知,可以将目标串中每个字符的可能取值视为等概率的独立事件,显然字符集越大,这个概率越小;在二元字符集{0,1}场景下进行字符比较匹配时,发生失配的概率比在自然语言场景下小,另外模式串和目标串的字符集相同,现有技术中即便是具有最大窗口移动距离的QS(Quick Search)算法,失配时目标串的下一位字符也必然包含在模式串字符集中,要达到最大窗口移动距离的目的也就无法实现。
发明内容
本发明的目的是提供一种链路层协议数据类型识别的方法,该方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。
一种链路层协议数据类型识别的方法,所述方法包括:
将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;
依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;
若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在所述比特流数据中的位置;
否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议类型匹配完毕。
由上述本发明提供的技术方案可以看出,该方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例所提供的链路层协议数据类型识别的方法流程示意图;
图2为本发明实施例所提供的字符串编码示意图;
图3为本发明实施例所提供的模式串与目标串的成功匹配示例图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例所提供的方法是在进行模式匹配之前通过编码的方式扩大字符集,提升比较匹配过程中发生失配的概率,并且尽量使目标子串的下一位字符不包含在模式串字符集中,这就可以使失配时的窗口移动距离加大,进而达到快速匹配的目的。下面将结合附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例所提供的链路层协议数据类型识别的方法流程示意图,所述方法包括:
步骤11:将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;
在该步骤中,编码方式的选择在于扩大目标串字符集和模式串字符集之间的差异性,使编码后的数据更接近于自然语言数据,也就更适用于经典模式匹配算法;特征字段由相应的链路层协议类型决定,可使用链路层协议帧首尾定界符作为特征字段。
在具体实现过程中,如图2所示为本发明实施例所提供的字符串编码示意图,上述预编码的规则方法具体包括:
比特流数据以及特征字段的首尾均补“1”;
按照从左至右的顺序,依次统计相邻的“1”之间的“0”个数,其中两个相邻的“1”之间的“0”个数记为0;
统计结果中每个数字代表一个字符,将各字符串联在一起,即为编码后的结果。
步骤12:依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;
在该步骤中,如图3所示为本发明实施例所提供的模式串与目标串的成功匹配示例图。在目标串和模式串进行匹配的过程中,若编码后的模式串长度为1,则目标串中字符数值不小于模式串字符数值时,则匹配成功,所有满足该条件的目标串字符位置即为匹配的位置;这里可以假定目标串T为t0t1...tn,长度为1编码模式串为p,成功匹配位置为tk,则原始比特串中的匹配位置起始为:
另外,若编码后的模式串长度大于1,若假定长为m,则设窗口大小为m,按照一定的方式实现窗口在目标串上的滑动,对窗口内的目标串子串与模式串进行匹配。这里匹配成功并不要求模式串与目标串的子串完全匹配,而是要求中间字段完全相同,同时首尾字符不大于目标子串中相应位置的字符数值即可。
步骤13:若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在比特流数据中的位置;
步骤14:否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议类型匹配完毕。
上述步骤12-14的匹配过程具体为:
首先将目标串中的滑动窗口获取的目标子串与该模式串进行匹配,若匹配成功,则记录此时编码前比特流数据中与链路层协议相对应的特征字段匹配的位置,并按一定的规则滑动窗口,对滑动窗口中新的目标子串继续进行匹配;
否则,按照一定的规则滑动窗口并执行匹配操作,直到窗口已滑动至所述目标串的末尾,此时该链路层协议类型的匹配识别过程完全结束。
这里,如果当前选定的编码模式串不匹配,则选取其他链路层协议及其相应模式串重新执行上述过程,直到存在匹配,或者所有可能的数据帧格式特征字段对应的模式串均已经进行尝试。
以具体实例来进行说明:假定目标串T为t0t1...tn,在当前窗口下目标子串Tk为tktk+1...tk+m-1,选定编码模式串P为p0p1...pm-1,其中去掉首尾两个字符p0和pm-1之后的模式串中间子串p1p2...pm-2记为P*,在匹配过程中:
1)如果目标子串Tk与模式串P匹配,即p0的数值不大于tk,pm-1的数值不大于tk+m-1,对于i=1,2,...,m-2,tk+i与pi的数值相等,则记录此时比特流数据中的匹配位置为若tk+m-1≥p0+pm-1,则窗口向右滑动m-1位,否则窗口移动m位;
2)如果目标子串Tk与模式串P不匹配,则若pm-1=0,定义参数x=m-1,执行步骤3。若pm-1>0,首先比较tk+m与模式串P最后一个字符pm-1:如果tk+m的数值不小于pm-1,则窗口向右滑动1位,即窗口的移动距离为1;否则,如果tk+m小于pm-1,定义参数x=m,执行步骤3;
3)判断tk+x是否出现在模式串中间子串P*中:当tk+x出现在P*中,则从右往左找到最近的与tk+x数值相等的字符pm-i,则窗口向右滑动x-m+i位,即窗口移动距离为x-m+i;当tk+x没有出现在P*中,进一步判断tk+x和p0的大小比较,如何tk+x数值不小于p0,则窗口向右滑动x位,直接推进至tk+x处,即窗口移动距离为x,如果tk+x的数值小于p0,则窗口向右滑动x+1位,直接推进至tk+x+1处,即窗口移动距离为x+1;
4)判断是否已经匹配完目标串中的所有字符,若k+m>n,则匹配完目标串所有字符,匹配结束,返回所有匹配位置结果;反之,则重复执行以上匹配过程。
综上所述,本发明实施例所提供的方法能够提高协议识别和匹配效率,在目标数据量很大、需多次调用算法以获取多个匹配位置时尤为显著。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (3)

1.一种链路层协议数据类型识别的方法,其特征在于,所述方法包括:
将从物理层解码获得的比特流数据和各个链路层协议相对应的特征字段分别进行预编码,编码为相应的目标串和多个对应不同链路层协议的模式串;其中,所述预编码的方法具体包括:比特流数据以及特征字段的首尾均补“1”;按照从左至右的顺序,依次统计相邻的“1”之间的“0”个数,其中两个相邻的“1”之间的“0”个数记为0;统计结果中每个数字代表一个字符,将各字符串联在一起,即为编码后的结果;
依次选取一种链路层协议类型和相应的模式串,对从目标串中滑动窗口获取的目标子串和该模式串进行匹配;
若匹配成功,则确定所述目标子串对应的比特流为匹配的模式串所对应的链路层协议类型,并对目标串剩余部分使用匹配成功的模式串继续进行匹配,返回所有成功匹配的目标子串相对应的在所述比特流数据中的位置;
否则,继续选取其他链路层协议类型及其相应模式串进行匹配,直到所有链路层协议类型匹配完毕。
2.根据权利要求1所述链路层协议数据类型识别的方法,其特征在于,所述对从目标串中滑动窗口获取的目标子串和该模式串进行匹配,具体包括:
将目标串中的滑动窗口获取的目标子串与该模式串进行匹配,若匹配成功,则记录此时编码前比特流数据中与链路层协议相对应的特征字段匹配的位置,并按一定的规则滑动窗口,对滑动窗口中新的目标子串继续进行匹配;
否则,按照一定的规则滑动窗口并执行匹配操作,直到窗口已滑动至所述目标串的末尾,此时该链路层协议类型的匹配识别过程完全结束。
3.根据权利要求1或2所述链路层协议数据类型识别的方法,其特征在于,在和所述模式串进行匹配的过程中,所述方法包括:
若编码后的模式串长度为1,则目标串中字符数值不小于模式串字符数值时,则匹配成功,所有满足该条件的目标串字符位置即为匹配的位置;
若编码后的模式串长度大于1,若假定长为m,则设窗口大小为m,按照一定的步长实现窗口在目标串上的滑动,对窗口内的目标子串与模式串进行匹配。
CN201410286298.7A 2014-06-23 2014-06-23 一种链路层协议数据类型识别的方法 Active CN104052749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410286298.7A CN104052749B (zh) 2014-06-23 2014-06-23 一种链路层协议数据类型识别的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410286298.7A CN104052749B (zh) 2014-06-23 2014-06-23 一种链路层协议数据类型识别的方法

Publications (2)

Publication Number Publication Date
CN104052749A CN104052749A (zh) 2014-09-17
CN104052749B true CN104052749B (zh) 2017-07-28

Family

ID=51505113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410286298.7A Active CN104052749B (zh) 2014-06-23 2014-06-23 一种链路层协议数据类型识别的方法

Country Status (1)

Country Link
CN (1) CN104052749B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649217A (zh) * 2016-10-28 2017-05-10 东软集团股份有限公司 数据的匹配方法及装置
CN109033636B (zh) * 2018-07-27 2022-04-22 电子科技大学 基于链路层比特流盲分析的链路层接入机制分析方法
CN109376281B (zh) * 2018-09-21 2021-10-22 长沙学院 比特位序列、数据搜索方法、搜索系统、社会网络分析系统、舆情监控系统
CN115883263B (zh) * 2023-03-02 2023-05-09 中国电子科技集团公司第三十研究所 基于多尺度载荷语义挖掘的加密应用协议类型识别方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976253A (zh) * 2010-10-27 2011-02-16 重庆邮电大学 一种中文变异文本匹配识别方法
CN103873317A (zh) * 2012-12-18 2014-06-18 中国科学院空间科学与应用研究中心 一种ccsds空间链路协议检测方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131758B2 (en) * 2007-12-26 2012-03-06 Novell, Inc. Techniques for recognizing multiple patterns within a string

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976253A (zh) * 2010-10-27 2011-02-16 重庆邮电大学 一种中文变异文本匹配识别方法
CN103873317A (zh) * 2012-12-18 2014-06-18 中国科学院空间科学与应用研究中心 一种ccsds空间链路协议检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"CCSDS空间链路层协议识别技术研究";姚秀娟,李雪;《航天电子对抗》;20120701;第26-29页 *

Also Published As

Publication number Publication date
CN104052749A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
CN109445834B (zh) 基于抽象语法树的程序代码相似性快速比较方法
CN104052749B (zh) 一种链路层协议数据类型识别的方法
CN101989443B (zh) 用于数据压缩的多模式编码
CN116775589B (zh) 一种网络信息的数据安全防护方法
CN106797446A (zh) 基于存储器的历史搜索
WO2012033498A1 (en) Systems and methods for data compression
CN116055008B (zh) 一种用于云端服务器连接的路由器数据处理方法
CN107947803A (zh) 一种极化码的快速译码方法
CN109495211A (zh) 一种信道编码和解码方法
CN106802927A (zh) 一种数据存储方法及查询方法
CN103701470B (zh) 一种流智能预测差异压缩算法及相应的控制装置
WO2017194401A3 (en) Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to video data
CN117097441B (zh) 基于数据分析的载波通信系统传输效率优化方法
CN105281777A (zh) 一种遥控器学习数据的压缩方法、系统及遥控器
CN107564075A (zh) 一种稠密图邻接表压缩方法
CN107911196A (zh) 一种雷达航迹报文传输方法
CN106708532B (zh) 基于tcam的多层次正则表达式匹配方法
US9294418B2 (en) 64B/66B codec for ethernet applications
CN112821895B (zh) 一种实现信号高误码率下的编码识别方法
CN105844214B (zh) 一种基于比特空间的多路径深度编码的信息指纹提取方法
CN1490977A (zh) 通用路由平台命令行的解析方法
CN112217521B (zh) 一种基于gzip的大文件分布式压缩方法
CN107896136B (zh) 一种雷达航迹报文编码方法
CN102801617B (zh) 一种基于硬件cam芯片的高效能网络数据包过滤方法
CN103078706B (zh) 一种利用冗余位的字典查询压缩方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant