CN103414722A - 一种空间链路协议盲识别方法与系统 - Google Patents
一种空间链路协议盲识别方法与系统 Download PDFInfo
- Publication number
- CN103414722A CN103414722A CN2013103620976A CN201310362097A CN103414722A CN 103414722 A CN103414722 A CN 103414722A CN 2013103620976 A CN2013103620976 A CN 2013103620976A CN 201310362097 A CN201310362097 A CN 201310362097A CN 103414722 A CN103414722 A CN 103414722A
- Authority
- CN
- China
- Prior art keywords
- frequent
- frequent sequence
- sub
- target
- sequence sets
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明提供了一种空间链路协议盲识别方法及系统,所述方法包含:将待盲识别文件中的目标数据转化为十六进制数据;基于十六进制数据找到指定长度范围内的所有的频繁序列,组成初始频繁序列集,并统计各指定长度的序列出现过的次数;将统计得到的频繁序列的计数值与若干设定的min_threshold值逐一进行比较,将计数值大于min_threshold的频繁序列存入中间频繁序列集中;采用模式匹配的方法,将中间频繁序列集中的所有序列逐一在目标数据中搜索定位,将所有等间隔的频繁序列从中间频繁序列集中提取出来,组成目标频繁序列集;将挖掘得到的目标频繁序列集与空间链路协议帧同步字敏感信息进行模式匹配,判断所应用的协议类型。
Description
技术领域
本发明涉及空间数据通信领域,特别是涉及空间链路协议数据格式识别和标准化检测领域,尤其是针对缺乏目标协议先验知识的情况下,本发明提供了一种从比特流数据中进行空间链路协议盲识别的方法。
背景技术
在目前的空间数据通信中,广泛采用空间链路协议来组织和管理各类型的空间数据信息。空间链路协议是空间链路信息系统的骨架和神经,是维系信息正常传递的纽带。协议识别是采用一定的算法和工具,通过特征分析,确定目标信息所采用的协议类型,明确目标信息的数据格式,为进一步的信息应用奠定基础。
目前,对空间链路协议的研究主要集中于已知协议的应用技术及标准化检测方面。在已知协议的应用和标准化检测领域,用户必须掌握一定的先验知识,预先已经知道所应用或检测的协议类型,预先掌握协议的格式定义,包括协议的帧头和帧尾信息、帧长度信息,才能够将获取到的目标信息与已知协议的帧格式按照固定的帧长度进行搜索匹配,达到协议应用和检测的目的。
在空间链路协议应用过程中,当用户并不能够掌握所获取的目标数据格式时,即用户缺乏目标数据的先验知识,不具备进一步分析和应用的条件时,迫切需要一种在不需要先验知识的情况下,能够从比特流数据中自动识别出空间链路协议帧格式的方法。
Apriori数据挖掘算法是空间链路协议帧格式检测中常用的算法,它对短模式文本数据具有很好的挖掘效果。但在空间链路协议盲识别中,识别对象是海量的比特流数据,并且缺乏先验知识,传统的Apriori数据挖掘算法不再适用。主要有以下2点缺陷:
1)Apriori算法需要对数据序列做多次扫描。每扩展一位长度的频繁模式就需要扫描一次数据序列,最终总的扫描次数相当于最长频繁模式的长度。因此,对于数据序列庞大,频繁模式较长的情况,挖掘效率相当低下。
2)扫描过程中可能产生大量的候选模式。如果短长度频繁模式过多,则通过连接运算扩展敏感信息长度时将会产生大量的候选模式,增加了空间和时间的开销,甚至会导致挖掘处理器溢出。
对于空间链路协议来说,我们所需要识别的对象是比特流数据,只有’0’、’1’两个字符,其字符集大小仅为2,并且模式串为一定长度的位流数据,长度也比较长。若采用普通数据挖掘算法,需要多次扫描数据库,并产生大量候选模式。
发明内容
本发明的目的在于,为实现在不具备先验知识的情况下,进行空间链路协议盲识别的目的,本发明提供了一种能够从比特流数据中自动识别出所用协议的数据格式的方法。
为实现上述目的,本发明提供一种空间链路协议盲识别方法,所述方法包含:
步骤101)对待盲识别文件中的目标数据转化为十六进制数据;
步骤102)基于得到的十六进制数据找到指定长度范围内的所有的频繁序列组成初始频繁序列集,并对初始频繁序列集中包含的各指定长度的序列出现过的次数进行计数;
步骤103)将统计得到的频繁序列的计数值与若干设定的min_threshold值逐一进行比较,将计数值大于min_threshold的频繁序列存入中间频繁序列集中,其中,依据每个不同的min_threshold值均可以筛选得到一个中间频繁序列集;
步骤104)采用模式匹配的方法,将中间频繁序列集中的所有序列逐一在目标数据中搜索定位,并计算两个相同的频繁序列出现的间隔,即位置差,将所有等间隔的频繁序列从中间频繁序列集中提取出来,组成目标频繁序列集;
步骤105)将挖掘得到的目标频繁序列集与空间链路协议帧同步字敏感信息进行模式匹配,判断所应用的协议类型,完成协议盲识别。
上述步骤102)进一步包含如下子步骤:步骤102-1)枚举目标数据中所有长度为1~k的模式序列,组成初始频繁序列集;
步骤102-2)建立k个缓存单元,其中任意一个缓存单元为Buff[i],且i的取值范围为:i=1......k;
步骤102-3)在Buff[1]中记录序列中第k位字符的计数情况m1;
在Buff[2]中记录序列中第k位字符和第“k-1”位字符的计数情况m2;
在Buff[3]中记录序列中第k位字符和第“k-1”位字符、第“k-2”位字符的计数情况m3;以此类推,在Buff[k]中记录序列中第k位字符、第“k-1”位字符、第“k-2”位字符、第“k-3”位字符......第1位字符的计数情况mk;
步骤102-4)建立统计数据集合{R},{R}中的元素依次为:m1,m2,m3,......mk。
上述步骤103)进一步包含如下子步骤:
步骤103-1)读取目标数据文件的数据量S,单位是byte,假设待确定的目标协议的最大帧长度为L,单位是byte,令I为对S/L进行取整计算的结果;
步骤103-2)设置最小支持阈值min_threshold的取值为I;
步骤103-3)将统计数据集合{R}中的各元素与赋值的min_threshold进行比较,
当前者大于或等于后者时将该元素对应的频繁序列作为选中的对象保留,否则从初始频繁序列集中删除该元素对应的频繁序列;
步骤103-4)依据步骤103-3)的原则保留的频繁序列组成中间频繁序列集{T},完成对初始频繁序列集的第一次筛选。
上述步骤104)进一步包含如下子步骤:
步骤104-1)提取中间频繁序列集{T}中的各序列serial1,serial2,serial3,...serialn;
步骤104-2)将提取出的各序列逐一与目标数据文件进行模式匹配,若匹配成功,则记录该序列在目标数据中的位置[j1,j2,j3,......,jn],若匹配失败,则从中间频繁序列集中删除该序列;
步骤104-3)依据序列在目标数据中的位置计算位置差数据,即计算相邻的两个相同序列在目标数据中的位置间隔,计算公式如下:Subn-1=jn-jn-1;Subn-2=jn-1-jn-2;Subn-3=jn-2-jn-3;以此类推,Sub1=j2-j1;
步骤104-4)判断位置差数据得到的“Subn-1、Subn-2......Sub1”是否相等,若Subn-1=Subn-2=Subn-3=...Sub1,且它们的值均大于等于“min_threshold-1”,则保留该位置差所对应的序列,否则,将其从中间频繁序列集{T}中删除;
步骤104-5)依据步骤104-4)保留下来的频繁序列作为目标频繁序列,组成新的集合,称为目标频繁序列集,目标频繁序列集中的各元素在目标数据中等间隔出现;
其中,目标频繁序列集中的元素即为协议的帧同步字敏感信息,同一元素在目标数据中的位置差即为帧长度信息。
上述步骤105)进一步包含如下子步骤:
步骤105-1)提取目标频繁序列集中的第一个元素;
步骤105-2)将提取的元素与已有空间链路协议帧同步字进行模式匹配,若匹配不成功,则提取下一个元素,重复该步骤;
若匹配成功,则提取该元素对应的位置差数据Sub,该处的Sub是指代Subn-1、Subn-2......Sub1;
步骤105-3)将提取的Sub与已有空间链路协议的帧长度信息进行匹配,若匹配不成功,则提取下一个元素,跳转到步骤105-2);若匹配成功,则可判定目标数据的格式符合该空间链路协议的数据格式。
为了实现上述方法,本发明还提供一种空间链路协议盲识别系统,所述系统包含:
预处理模块,用于对待识别的目标数据进行预处理,转化为十六进制数据;
初始频繁序列集获取模块,用于基于得到的十六进制数据找到所有指定长度范围内的所有的频繁序列组成初始频繁序列集,并对初始频繁序列集中包含的各指定长度的序列出现过的次数进行计数;
中间频繁序列集获取模块,用于将统计得到的频繁序列的计数值与若干设定的min_threshold值逐一进行比较,将计数值大于min_threshold的频繁序列存入中间频繁序列集中,其中每个min_threshold对应一个中间频繁序列集;
目标频繁序列集获取模块,用于采用模式匹配的方法,将中间频繁序列集中的所有序列逐一在目标数据中搜索定位,并计算两个相同的频繁序列出现的间隔,即位置差,将所有等间隔的频繁序列从中间频繁序列集中提取出来,组成目标频繁序列集;
匹配判决模块,用于将挖掘得到的目标频繁序列集与空间链路协议帧同步字敏感信息进行模式匹配,判断所应用的协议类型,完成协议盲识别。
上述初始频繁序列集获取模块进一步包含:模式搜索子模块和频繁次数统计子模块;
所述模式搜索子模块,用于按照完全十六叉树的方法对目标数据中的各种组合的模式进行搜索,并将搜索出的各模式序列存放在初始频繁序列集合中;
所述频繁次数统计子模块,用于对初始频繁序列集合中的各个元素在目标数据中出现的次数进行统计,并把统计次数记录在统计数据集合{R}中。
上述中间频繁序列集获取模块进一步包含:最小支持阈值min_threshold设置子模块和筛选子模块;
所述最小支持阈值min_threshold设置子模块,用于根据目标数据文件数据量大小除以目标协议最大帧长度,并取整作为设置的阈值min_threshold;
所述筛选子模块,用于将统计数据集合{R}中的值与设置的min_threshold的值进行比较,当前者大于或等于后者时,该统计值对应的初始频繁序列作为选中的对象保留,否则从初始频繁序列集中删除该频繁序列,保留下来的频繁序列组成中间频繁序列集。
上述目标频繁序列集获取模块进一步包含:定位子模块、位置差计算子模块、相等位置差判定子模块和目标频繁序列提取子模块;
所述定位子模块,用于从中间频繁序列集中提取各元素序列,并逐一与目标数据文件进行模式匹配,并记录匹配成功的位置信息;
所述位置差计算子模块,用于对定位子模块记录的位置信息进行相减计算,获取各元素出现位置之间的间隔,即位置差;
所述相等位置差判定子模块,用于对位置差计算子模块计算得到的位置差数据进行判断,如果位置差相等且满足大于等于“min_threshold-1”的条件,则保留该序列;如果不满足则从中间频繁序列集中删除该序列;
所述目标频繁序列提取子模块,用于相等位置差判定子模块所有保留下来的频繁序列,组成目标频繁序列集,并设定欧几里得判决门限。
上述匹配判决模块进一步包含:帧同步字信息匹配子模块、帧长度信息匹配子模块和协议判决子模块;
所述帧同步字匹配子模块,用于将目标序列集中的频繁序列与已有空间链路协议帧同步字进行模式匹配,并将匹配成功的频繁序列提取出来;记录匹配成功的个数Num。
所述帧长度信息匹配子模块,用于帧同步字匹配子模块匹配成功的频繁序列相对应的位置差数据与已有空间链路协议的帧长度信息进行匹配,将匹配成功的位置差信息提取出来;并将目标数据量除以该位置差的值取整后,与帧同步字匹配成功的个数Num相比较,若二者之差满足欧几里得判决门限,则进入协议判决子模块。
所述协议判决子模块,用于将帧同步字匹配子模块提取出的频繁序列和帧长度信息匹配子模块提取的位置差信息与已知的空间链路协议帧同步字敏感信息和帧长度信息同时进行比对,判断所应用的协议类型,完成协议盲识别。
综上所述,本发明提供一种空间链路协议盲识别的方法,所述方法为:针对未知协议中隐含的敏感信息,调用相等位置差的频繁序列挖掘算法,实现从比特流数据中自动识别出所用协议的数据格式的目的。
与现有技术相比,本发明的技术优势在于:
本发明的有益效果是:不仅可以解决协议识别中‘盲’的问题,而且仅需扫描一次目标数据即可统计出所有特定长度范围内的模式序列,极大的提高了协议盲识别的效率。本发明针对空间链路通信协议存在固定长度帧敏感信息的特点,利用有限状态机的思想,提出一种相等位置差的频繁序列挖掘算法。该算法在传统关联规则挖掘Apriori算法的基础上,增加一个预处理过程。即通过在预处理阶段设置最小支持阈值min_threshold,不仅可以解决协议识别中‘盲’的问题,而且仅需扫描一次目标数据序列即可统计出所有特定长度范围内的模式序列,极大的提高了协议盲识别的效率。
附图说明
图1-a是本发明提供的完全十六叉树状态图;
图1-b是本发明子序列Q和模式序列P的关系图;
图2是空间链路协议识别系统组成;
图3具有相等位置差频繁序列的挖掘流程;
图4是帧参数搜索流程图。
具体实施方式
下面结合附图和实施例对本发明所述方法进行详细说明。
本发明中空间链路协议盲识别方法包括四个部分:频繁序列统计、最小支持阈值设置、K紧邻分类帧长提取、敏感序列扩展。
协议盲识别过程中,按照上述四个部分依次进行。①待检测数据进入协议识别系统后,首先进行频繁序列统计;②设置最小支持阈值min_threshold,通过min_threshold的筛选,挖掘出具有相等位置差的频繁序列;③用K近邻分类法对挖掘后的不同位置差数据进行归类,找到帧数与统计值相一致的位置差,提取作为帧长;④提取与该帧长相对应的频繁序列,得到目标数据的帧敏感序列,通过前后扩展即可得到“帧同步码”。
以下是本发明的空间链路协议盲识别方法的详细实施方案:
本方法针对的识别对象中,二进制比特流数据(或其它可以转换成二进制的数据)转化为十六进制,称为目标数据。十六进制数据元素包含从0到F十六个数,因而长度为k的模式序列P分别与一位16进制数字组合进而形成十六种长度为“k+1”的子序列Q,它们分别是0P、1P、2P、3P、4P、5P、6P、7P、8P、9P、AP、BP、CP、DP、EP、FP,且子序列Q和长度为k的模式序列P的关系如图1-b所示,枚举目标数据中所有长度为1~k的序列,可以构成一棵由父子关系联系起来的完全十六叉树。图1-a为完全十六叉树状态图,图1-b则是其中的状态之一。
如果要在目标数据中挖掘k位长度内的频繁序列的计数情况,则需建立k个Buff,然后依次读入字符:
设此时从目标数据中读入第i(i≥k)位字符:
Buff1:记录当前最新1位的计数,即第i位字符的计数情况m1;该处m1表示的是第i位字符在目标数据中出现的次数,比如最新1位是1,那么m1=1次。
Buff2:记录当前最新2位的计数,即第i位字符和第“i-1”位字符组成的序列的计数情况m2;
Buff3:记录当前最新3位的计数,即第“i”位字符和第“i-1”位字符、第“i-2”位字符组成的序列的计数情况m3;
……
Buffk:记录当前最新k位的计数,即第i位字符和前“k-1”位字符组成的序列的计数情况mk;
由上述过程可知,如果寻找长度为k的频繁序列,则每从目标数据中读入一位新的字符,需对其做k次统计。完成整个目标数据搜索后,得到一个由mk组成的,分别对应于16k个序列的统计数据的集合{R}。实际上仅进行一次目标数据扫描,就统计出所有特定长度k范围内的频繁序列,采用上述统计方法找到所有指定长度范围内的所有的频繁序列组成初始频繁序列集。其中,所述频繁序列集中的各元素为十六进制频繁序列。
在频繁序列挖掘过程中起至关重要作用的是最小支持度阈值min_threshold的设定。如果min_threshold选定不当,数据挖掘效果会大打折扣:min_threshold选定过高,真正的频繁序列可能被过早淘汰,造成最后结果的遗漏;min_threshold选定过低,一些本不可能成为频繁序列的模式在统计过程中仍然占用了大量的时间和空间,降低挖掘效率甚至导致挖掘失败。
针对空间链路协议存在固定长度字段的特点,本发明提出一种最小支持度阈值min_threshold的设置方法,它表示了我们所要挖掘的目标数据中包含的最少帧数。假设十六进制比特流数据量为S,单位是byte,目标协议的最大帧长为L,单位是byte,将S/L取整数后的计算值作为min_threshold挖掘的最小取值,此处的目标协议泛指任意一种已知的空间链路协议,十六进制比特流数据为待盲识别的数据。依据min_threshold筛选初始频繁序列集包含的各序列,得到中间频繁序列集,相较于最初的初始频繁序列集16k个数据量,中间频繁序列集的数据量得到大幅度降低。
注:
1、S是本次盲识别的目标数据量,对于某次识别其值是已知和固定的,单位是byte;
2、L是某种已知的空间链路协议的帧的长度,对于每一种协议L的取值固定的,目前只有有限的几种。
假设现有4种空间链路协议且各协议的最大帧长分别为:L1byte、L2byte、L3byte、L4byte。采用上述公式可以计算得到“S/L1、S/L2、S/L3和S/L4”4个结果,这4个结果对应于4个min_threshold,即每种已知协议对应一个min_threshold。
3、相对于某一种协议来说,min_threshold是确定的,而统计得到的初始频繁序列集包含的频繁序列有很多种,这些频繁序列集包含的序列的统计次数有的大于min_threshold的值,有些小于_min_threshold的值。对于某个设定min_threshold,在识别过程中,计数值小于min_threshold的序列将被筛选掉,不再进行挖掘。
即,根据设定的min_threshold对初始频繁序列集进行第一次筛选,具体为将初始频繁序列集中的各频繁序列的统计数据集合{R}中的各元素与min_threshold的值进行比较,当前者大于或等于后者时作为选中的对象,否则删除频繁模式序列。将所有筛选后选中的频繁序列组成新的集合,该新的集合称为中间频繁序列集。
最后利用K近邻分类的方法,分别将这些经过min_threshold筛选得到的中间频繁序列集在目标数据中定位。方法如下:
假设经过min_threshold筛选得到的中间频繁序列集{T}中的各元素序列Serial在目标数据中的位置为[j1,j2,j3,......,jn],计算其位置差:
Subn-1=jn-jn-1;
Subn-2=jn-1-jn-2;
Subn-3=jn-2-jn-3;
……
Sub1=j2-j1。
如果具有相等Sub(该处的Sub是指代Subn-1、Subn-2......Sub1)值的频繁序列的个数大于等于“min_threshold-1”,则保留Serial,否则,将其从中间频繁序列集{T}中舍弃。经过第二次筛选,我们进一步挖掘得到一组具有相等位置差的频繁序列,称为目标频繁序列集,根据得到的目标频繁序列集提取出协议的帧长信息和帧敏感信息。
综上所述,上述第一次筛选为:将初始频繁序列集中的各频繁序列的计数值与min_threshold的值进行比较,当前者大于或等于后者时作为预选中的对象保留,否则从初始频繁序列集中删除该频繁序列,所有保留下来的频繁序列组成中间频繁序列集,完成第一次筛选。
上述第二次筛选为:采用模式匹配的方法,将中间频繁序列集中的所有序列逐一在目标数据中搜索定位,并计算两个相同的频繁序列出现的间隔,即位置差,将所有等间隔的频繁序列从中间频繁序列集中提取出来,组成目标频繁序列集。其它位置差不相等的频繁序列,不符合等间隔条件,将被筛选掉。
然后,再把挖掘得到的目标频繁序列集与空间链路协议帧同步字敏感信息进行模式匹配,判断所应用的协议类型,完成协议盲识别。
图2,空间链路协议盲识别系统包括目标数据、协议识别工具、识别结果输出三个部分。目标数据是十六进制(或其它可以转换成十六进制的)数据,事先存储于计算机硬盘、移动硬盘、光盘等存储介质上。协议识别工具包括数据预处理工具和具有相等位置差的频繁序列挖掘算法两个部分,其中具有相等位置差的频繁序列挖掘算法包括:频繁序列统计得到初始频繁序列集;设定最小支持阈值min_threshold,对初始频繁序列集进行第一次筛选得到中间频繁序列集,再对中间频繁序列集的元素进行第二次筛选得到目标频繁序列集;采用K紧邻分类法提取两个相同的目标频繁序列之间的位置差信息,与已有空间链路协议的帧长度相匹配,目标频繁序列与已有空间链路协议的帧同步字信息相匹配,确定协议类型。具体实施步骤如下:1)读取事先存储在计算机硬盘、移动硬盘、光盘等存储介质上的二进制比特流(或其它能转化成二进制的)数据文件。
2)进行数据预处理,把二进制数据转化为十六进制数据,生成目标数据。
3)调用有限状态机十六叉树的方法,对目标数据进行初始频繁序列统计,生成初始频繁序列,统计出所有长度的十六进制序列的计数情况,生成统计数据集合{R}。
4)根据读取的数据量大小与目标协议的帧长,计算并设置最小支持阈值min_threshold,根据设定的min_threshold对初始频繁序列集进行第一次筛选,具体为将统计数据集合{R}中的各元素与min_threshold的值进行比较,当前者大于或等于后者时作为选中的对象保留,否则删除频繁模式序列。
5)通过min_threshold的筛选,挖掘出少量的十六进制的频繁序列,组成中间频繁序列集,再采用模式匹配的方法,将这些序列在目标数据中定位,提取在目标数据中等间隔出现的频繁序列,生成目标频繁序列集。具体挖掘流程如图3。
6)对多个等间隔出现的频繁序列(即,目标频繁序列集),采用K紧邻分类法提取频繁序列间隔信息。首先提取它们的位置差数据集{Li},其中i=0,1,2,...n,为位置差数据的个数;同时,设定一个欧几里得距离判决门限○,表示位置差数据个数的理论值和统计结果偏差的最大波动范围。
7)获取目标数据文件大小M,在位置差数据集{Li}中选取出现频次最高的位置差Ln,此时i=n。
8)计算目标数据中应包含位置差为Li的序列的个数:Num=M/Li,此时,i的取值范围为(1,2……,n)。
9)遍历搜索目标频繁序列集,判断是否存在位置差为Li的序列,如果搜索失败,则跳转到步骤10);如果搜索成功,则统计其所对应的Li的个数Stat,并计算Stat与Num的欧几里得距离,看其是否满足欧几里得判决门限○,如果不满足,则跳转到步骤10);如果满足,则记录序列String,并置输出标志OutPut=1。
10)判断文件结束标志Flag,若Flag=0,则跳转到步骤9),否则判断输出标志OutPut,若OutPut=0,则i=i-1,跳转到步骤8),重复上述搜索过程;如果输出标志OutPut=1,则搜索结束。
11)最终的位置差Li就是目标协议的帧长度信息,对应的序列String即为目标协议的帧同步字敏感序列。具体的帧参数搜索流程如图4所示。
实施例
假设,目标数据为一组数据量为12Kbyte的二进制数据,帧同步码字:1ACFFCID(未知),帧长度:256 byte(未知)。
采用本发明的方案后的具体实施步骤为:
1)读取事先存储在计算机硬盘的二进制比特流数据文件ccsds_data.raw。
2)进行数据预处理,把二进制数据转化为十六进制数据,生成目标数据ccsds_data.hex。
3)设模式序列长度为4位(经验值),调用有限状态机完全十六叉树的方法,对目标数据ccsds_data.hex进行初始频繁序列统计,生成初始频繁序列集:
{1ACF,ACFF,C1D4,0066,C025,AB95,3FE2,72C3,6012,B01A,2228,2222,B952,10C8,01AA,AAAA,A10C,021C,FC1D,FFC1,03FE,1020,2030,3040,4050,5060,6070,7080,8090,90A0,A0B0,B0C0,C0D0,D0E0,E0F0 },
统计出4位长度的十六进制序列的计数情况,生成统计数据集合:
R={95,95,41,95,43,41,84,42,41,29,41,41,41,70,58,27,41,95,95,94,94,11,5,14,21,23,12,6,9,15,20,19,8,17,10,6}。
4)目标数据ccsds_data.hex的数据量为12kbyte,一般情况下,目标协议帧长度为128byte的I倍(I=1,2,4)。当I=4时,可以计算得出最小支持阈值
min_threshold=12*1024byte/128*4byte=24。对初始频繁序列集进行第一次筛选,具体为将统计数据集合R中的各元素与24进行比较,当前者大于或等于后者时作为选中的对象保留,否则删除频繁模式序列。
5)通过min_threshold的筛选,挖掘出21个十六进制的频繁序列,组成中间频繁序列集
{1ACF,ACFF,C1D4,0066,C025,AB95,3FE2,72C3,6012,B01A,2228,2222,B952,10C8,01AA,AAAA,A10C,021C,FC1D,FFC1,03FE},所对应的统计次数为{95,95,41,95,43,41,84,42,41,29,41,41,41,70,58,27,41,95,95,94,94}。将这些序列在目标数据中定位,提取在目标数据中等间隔出现的频繁序列,生成目标频繁序列集{1ACF,ACFF,C1D4,C025,3FE2,021C,FC1D,FFC1,03FE}。
6再采用K近邻分类的方法,提取目标频繁序列的位置差数据集L={256,256,512,512,512,512,256,256,512}。
7)获取目标数据文件大小M=12*1024=12288byte,在位置差数据集L中选取出现频次最高的位置差为256,计算目标数据中应包含位置差为256的序列的个数:Num=12288/128=96。
8)设定欧几里得距离判决门限○=3,表示允许目标频繁序列个数的理论值和统计结果偏差的最大波动范围,位置差256所对应的目标频繁序列为{1ACF,ACFF,FC1D,FFC1},它们的理论计算个数分别是{96,96,96,96},而它们在目标数据中的实际个数分别是{95,95,95,94}。
9)位置差数据实际值与理论值的偏差分别是{1,1,1,2},满足欧几里得距离判决门限○=3的条件。
10)对4个位置差为256的目标频繁序列{1ACF,ACFF,FC1D,FFC1}进行左右扩展,可以得到1个相同的扩展序列1ACFFC1D。
11)则可以判定目标协议的帧长度为256,1ACFFC1D为目标协议的帧同步字敏感序列,该空间通信协议的类型为CCSDS(consultative committee for space datasystem)。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种空间链路协议盲识别方法,所述方法包含:
步骤101)将待盲识别文件中的目标数据转化为十六进制数据;
步骤102)基于得到的十六进制数据找到指定长度范围内的所有的频繁序列组成初始频繁序列集,并对初始频繁序列集中包含的各指定长度的序列出现过的次数进行统计;
步骤103)将统计得到的频繁序列的计数值与若干设定的min_threshold值逐一进行比较,将计数值大于min_threshold的频繁序列存入中间频繁序列集中,其中,依据每个不同的min_threshold值均可以筛选得到一个中间频繁序列集;
步骤104)采用模式匹配的方法,将中间频繁序列集中的所有序列逐一在目标数据中搜索定位,并计算两个相同的频繁序列出现的间隔,即位置差,将所有等间隔的频繁序列从中间频繁序列集中提取出来,组成目标频繁序列集;
步骤105)将挖掘得到的目标频繁序列集与空间链路协议帧同步字敏感信息进行模式匹配,判断所应用的协议类型,完成协议盲识别。
2.根据权利要求1所述的空间链路协议盲识别方法,其特征在于,所述步骤102)进一步包含如下子步骤:步骤102-1)枚举目标数据中所有长度为1~k的模式序列,组成初始频繁序列集;
步骤102-2)建立k个缓存单元,其中任意一个缓存单元为Buff[i],且i的取值范围为:i=1......k;
步骤102-3)在Buff[1]中记录序列中第k位字符的计数情况m1;
在Buff[2]中记录序列中第k位字符和第“k-1”位字符的计数情况m2;
在Buff[3]中记录序列中第k位字符和第“k-1”位字符、第“k-2”位字符的计数情况m3;以此类推,在Buff[k]中记录序列中第k位字符、第“k-1”位字符、第“k-2”位字符、第“k-3”位字符......第1位字符的计数情况mk;
步骤102-4)建立统计数据集合{R},{R}中的元素依次为:m1,m2,m3,......mk。
3.根据权利要求2所述的空间链路协议盲识别方法,其特征在于,所述步骤103)进一步包含如下子步骤:
步骤103-1)读取目标数据文件的数据量S,单位是byte,假设待确定的目标协议的最大帧长度为L,单位是byte,令I为对S/L进行取整计算的结果;
步骤103-2)设置最小支持阈值min_threshold的取值为I;
步骤103-3)将统计数据集合{R}中的各元素与赋值的min_threshold进行比较,当前者大于或等于后者时将该元素对应的频繁序列作为选中的对象保留,否则从初始频繁序列集中删除该元素对应的频繁序列;
步骤103-4)依据步骤103-3)的原则保留的频繁序列组成中间频繁序列集{T},完成对初始频繁序列集的第一次筛选。
4.根据权利要求3所述的空间链路协议盲识别方法,其特征在于,所述步骤104)进一步包含如下子步骤:
步骤104-1)提取中间频繁序列集{T}中的各序列serial1,serial2,serial3,...serialn;
步骤104-2)将提取出的各序列逐一与目标数据文件进行模式匹配,若匹配成功,则记录该序列在目标数据中的位置[j1,j2,j3,......,jn],若匹配失败,则从中间频繁序列集中删除该序列;
步骤104-3)依据序列在目标数据中的位置计算位置差数据,即计算相邻的两个相同序列在目标数据中的位置间隔,计算公式如下:Subn-1=jn-jn-1;Subn-2=jn-1-jn-2;Subn-3=jn-2-jn-3;以此类推,Sub1=j2-j1;
步骤104-4)判断位置差数据得到的“Subn-1、Subn-2......Sub1”是否相等,若Subn-1=Subn-2=Subn-3=...Sub1,且它们的值均大于等于“min_threshold-1”,则保留该位置差所对应的序列,否则,将其从中间频繁序列集{T}中删除;
步骤104-5)依据步骤104-4)保留下来的频繁序列作为目标频繁序列,组成新的集合,称为目标频繁序列集,目标频繁序列集中的各元素在目标数据中等间隔出现;
其中,目标频繁序列集中的元素即为协议的帧同步字敏感信息,同一元素在目标数据中的位置差即为帧长度信息。
5.根据权利要求1所述的空间链路协议盲识别方法,其特征在于,所述步骤105)进一步包含如下子步骤:
步骤105-1)提取目标频繁序列集中的第一个元素;
步骤105-2)将提取的元素与已有空间链路协议帧同步字进行模式匹配,若匹配不成功,则提取下一个元素,重复该步骤;
若匹配成功,则提取该元素对应的位置差数据Sub,该处的Sub是指代Subn-1、Subn-2......Sub1;
步骤105-3)将提取的Sub与已有空间链路协议的帧长度信息进行匹配,若匹配不成功,则提取下一个元素,跳转到步骤105-2);若匹配成功,则可判定目标数据的格式符合该空间链路协议的数据格式。
6.一种空间链路协议盲识别系统,所述系统包含:
预处理模块,用于对待识别的目标数据进行预处理,转化为十六进制数据;
初始频繁序列集获取模块,用于基于得到的十六进制数据找到所有指定长度范围内的所有的频繁序列组成初始频繁序列集,并对初始频繁序列集中包含的各指定长度的序列出现过的次数进行计数;
中间频繁序列集获取模块,用于将统计得到的频繁序列的计数值与若干设定的min_threshold值逐一进行比较,将计数值大于min_threshold的频繁序列存入中间频繁序列集中,其中每个min_threshold对应一个中间频繁序列集;
目标频繁序列集获取模块,用于采用模式匹配的方法,将中间频繁序列集中的所有序列逐一在目标数据中搜索定位,并计算两个相同的频繁序列出现的间隔,即位置差,将所有等间隔的频繁序列从中间频繁序列集中提取出来,组成目标频繁序列集;
匹配判决模块,用于将挖掘得到的目标频繁序列集与空间链路协议帧同步字敏感信息进行模式匹配,判断所应用的协议类型,完成协议盲识别。
7.根据权利要求6所述的空间链路协议盲识别系统,其特征在于,所述初始频繁序列集获取模块进一步包含:模式搜索子模块和频繁次数统计子模块;
所述模式搜索子模块,用于按照完全十六叉树的方法对目标数据中的各种组合的模式进行搜索,并将搜索出的各模式序列存放在初始频繁序列集合中;
所述频繁次数统计子模块,用于对初始频繁序列集合中的各个元素在目标数据中出现的次数进行统计,并把统计次数记录在统计数据集合{R}中。
8.根据权利要求7所述的空间链路协议盲识别系统,其特征在于,所述中间频繁序列集获取模块进一步包含:最小支持阈值min_threshold设置子模块和筛选子模块;
所述最小支持阈值min_threshold设置子模块,用于根据目标数据文件数据量大小除以目标协议最大帧长度,并取整作为设置的阈值min_threshold;
所述筛选子模块,用于将统计数据集合{R}中的值与设置的min_threshold的值进行比较,当前者大于或等于后者时,该统计值对应的初始频繁序列作为选中的对象保留,否则从初始频繁序列集中删除该频繁序列,保留下来的频繁序列组成中间频繁序列集。
9.根据权利要求6所述的空间链路协议盲识别系统,其特征在于,所述目标频繁序列集获取模块进一步包含:定位子模块、位置差计算子模块、相等位置差判定子模块和目标频繁序列提取子模块;
所述定位子模块,用于从中间频繁序列集中提取各元素序列,并逐一与目标数据文件进行模式匹配,并记录匹配成功的位置信息;
所述位置差计算子模块,用于对定位子模块记录的位置信息进行相减计算,获取各元素出现位置之间的间隔,即位置差;
所述相等位置差判定子模块,用于对位置差计算子模块计算得到的位置差数据进行判断,如果位置差相等且满足大于等于“min_threshold-1”的条件,则保留该序列;如果不满足则从中间频繁序列集中删除该序列;
所述目标频繁序列提取子模块,用于相等位置差判定子模块所有保留下来的频繁序列,组成目标频繁序列集,并设定欧几里得判决门限。
10.根据权利要求6所述的空间链路协议盲识别系统,其特征在于,所述匹配判决模块进一步包含:帧同步字信息匹配子模块、帧长度信息匹配子模块和协议判决子模块;
所述帧同步字匹配子模块,用于将目标序列集中的频繁序列与已有空间链路协议帧同步字进行模式匹配,并将匹配成功的频繁序列提取出来;记录匹配成功的个数Num。
所述帧长度信息匹配子模块,用于帧同步字匹配子模块匹配成功的频繁序列相对应的位置差数据与已有空间链路协议的帧长度信息进行匹配,将匹配成功的位置差信息提取出来;并将目标数据量除以该位置差的值取整后,与帧同步字匹配成功的个数Num相比较,若二者之差满足欧几里得判决门限,则进入协议判决子模块。
所述协议判决子模块,用于将帧同步字匹配子模块提取出的频繁序列和帧长度信息匹配子模块提取的位置差信息与已知的空间链路协议帧同步字敏感信息和帧长度信息同时进行比对,判断所应用的协议类型,完成协议盲识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310362097.6A CN103414722B (zh) | 2013-08-19 | 2013-08-19 | 一种空间链路协议盲识别方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310362097.6A CN103414722B (zh) | 2013-08-19 | 2013-08-19 | 一种空间链路协议盲识别方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103414722A true CN103414722A (zh) | 2013-11-27 |
CN103414722B CN103414722B (zh) | 2016-03-30 |
Family
ID=49607708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310362097.6A Active CN103414722B (zh) | 2013-08-19 | 2013-08-19 | 一种空间链路协议盲识别方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103414722B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796407A (zh) * | 2015-03-23 | 2015-07-22 | 电子科技大学 | 一种未知协议特征的提取方法 |
CN106878307A (zh) * | 2017-02-21 | 2017-06-20 | 电子科技大学 | 一种基于误码率模型的未知通信协议识别方法 |
CN112104518A (zh) * | 2019-08-26 | 2020-12-18 | 中国科学院国家空间科学中心 | 一种比特数据特征挖掘方法、系统、设备及可读介质 |
CN114050925A (zh) * | 2021-11-09 | 2022-02-15 | 京东科技信息技术有限公司 | 访问控制列表匹配方法、装置、电子设备和存储介质 |
CN118018168A (zh) * | 2024-01-05 | 2024-05-10 | 中国科学院国家空间科学中心 | 一种针对可变长度帧的帧同步特征盲识别方法及系统 |
-
2013
- 2013-08-19 CN CN201310362097.6A patent/CN103414722B/zh active Active
Non-Patent Citations (4)
Title |
---|
AGRAWAL R,SRIKANT R: "Fast Algorithms for Mining Association", 《VLDB》 * |
JIAWEI HAN 等: "Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach", 《DATA MINING AND KNOWLEDGE DISCOVERY》 * |
胡枫: "频繁序列模式挖掘算法Apriori的分析及改进", 《青海师范大学学报(自然科学版)》 * |
金凌 等: "面向比特流的频繁模式序列挖掘算法", 《信息安全与通信保密》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796407A (zh) * | 2015-03-23 | 2015-07-22 | 电子科技大学 | 一种未知协议特征的提取方法 |
CN104796407B (zh) * | 2015-03-23 | 2018-03-30 | 电子科技大学 | 一种未知协议特征的提取方法 |
CN106878307A (zh) * | 2017-02-21 | 2017-06-20 | 电子科技大学 | 一种基于误码率模型的未知通信协议识别方法 |
CN106878307B (zh) * | 2017-02-21 | 2019-10-29 | 电子科技大学 | 一种基于误码率模型的未知通信协议识别方法 |
CN112104518A (zh) * | 2019-08-26 | 2020-12-18 | 中国科学院国家空间科学中心 | 一种比特数据特征挖掘方法、系统、设备及可读介质 |
CN114050925A (zh) * | 2021-11-09 | 2022-02-15 | 京东科技信息技术有限公司 | 访问控制列表匹配方法、装置、电子设备和存储介质 |
CN114050925B (zh) * | 2021-11-09 | 2024-03-01 | 京东科技信息技术有限公司 | 访问控制列表匹配方法、装置、电子设备和存储介质 |
CN118018168A (zh) * | 2024-01-05 | 2024-05-10 | 中国科学院国家空间科学中心 | 一种针对可变长度帧的帧同步特征盲识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103414722B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103414722B (zh) | 一种空间链路协议盲识别方法与系统 | |
Van Rysselberghe et al. | Reconstruction of successful software evolution using clone detection | |
CN111506599B (zh) | 基于规则匹配和深度学习的工控设备识别方法及系统 | |
CN110888849A (zh) | 一种在线日志解析方法、系统及其电子终端设备 | |
CN101442535B (zh) | 一种基于关键词序列的应用识别与跟踪方法 | |
CN107015952B (zh) | 一种后缀数组和最长公共前缀的正确性验证方法及系统 | |
CN106324429B (zh) | 一种基于rs-ia数据挖掘的配电网故障定位方法 | |
CN114841789B (zh) | 基于区块链的审计审价故障数据在线编辑方法及系统 | |
CN106021556A (zh) | 地址信息处理方法及装置 | |
SA522441235B1 (ar) | أنظمة وطرق تقدير معلمات الآبار وحفر الآبار | |
US8108387B2 (en) | Method of detecting character string pattern at high speed using layered shift tables | |
CN116467685A (zh) | 一种可逆数据库水印的嵌入和提取方法 | |
CN107689899A (zh) | 一种基于比特流的未知协议识别方法及系统 | |
CN112102883B (zh) | 一种fastq文件压缩中的碱基序列编码方法和系统 | |
CN110007955B (zh) | 一种指令集模拟器译码模块代码的压缩方法 | |
CN104052749A (zh) | 一种链路层协议数据类型识别的方法 | |
CN103220274B (zh) | 一种用于运营商网络出口的网络报文模式匹配方法及系统 | |
CN115994682A (zh) | 一种事件日志的批量迹与过程模型的多视角对齐方法 | |
CN109460495B (zh) | 一种基于改进bm算法与后缀数组的冗余字段过滤方法 | |
CN105357177A (zh) | 一种数据包过滤规则集处理方法及数据包匹配方法 | |
CN115879271A (zh) | 一种基于割集断面树的电网割集型关键输电断面搜索方法 | |
CN111556014B (zh) | 一种采用全文索引的网络攻击入侵检测方法 | |
CN108959207A (zh) | 基于相似度的数据信息储存方法及系统 | |
CN111814009B (zh) | 一种基于搜索引擎检索信息的模式匹配方法 | |
CN108460280B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100190 No. two south of Zhongguancun, Haidian District, Beijing 1 Patentee after: NATIONAL SPACE SCIENCE CENTER, CAS Address before: 100190 No. two south of Zhongguancun, Haidian District, Beijing 1 Patentee before: Space Science & Applied Research Centre, Chinese Academy of Sciences |
|
CP01 | Change in the name or title of a patent holder |