一种基于数据挖掘的未知协议帧序列提取方法及系统与流程

文档序号:18267534发布日期:2019-07-27 09:18阅读:151来源:国知局
一种基于数据挖掘的未知协议帧序列提取方法及系统与流程

本发明涉及一种基于数据挖掘的未知协议帧序列提取方法及系统,属于未知协议帧序列提取技术领域。



背景技术:

随着网络技术的发展和应用,通信双方为保证通信内容的安全性,开始使用私有的未知协议进行传输,这给网络的安全运行以及监管带来挑战。在电子信息环境中,监听者通过截获目标通信的物理信号,再通过盲解调等手段得到协议未知的比特流数据。如何高效且准确地从比特流数据中提取出未知协议的帧序列,是现有研究的一个重要课题。

通常,在链路协议已知的情况下,通信双方可通过帧序列同步等功能从比特流中提取出帧序列。但是对于信息获取方而言,无法准确地得知所捕获私有链路协议数据的详细帧格式,仅可根据数据同步理论判断该未知协议比特流的构成如图1所示。因此,信息获取方需要通过数据挖掘等手段,从大量的比特流数据中找出标志帧序列起始和结束的引导序列比特流,然后基于此对帧序列进行切分。

引导序列由一系列频繁重复出现的引导码构成,其频繁重复出现的特点是引导序列区别于噪声数据的最显著特征。因此,大部分研究多采用基于ac(aho—corasick)算法的频繁序列挖掘方法。详细步骤如下:

首先,挖掘获得比特流数据中频繁出现的引导码;然后,根据分析出的引导码,采用kmp字符串快速匹配算法,切分出引导序列始末位置;最后,根据找出的引导序列始末位置切分出帧序列。

其中,所述kmp算法为一种高效的字符串匹配算法,由d.e.knuth,j.h.morris和v.r.pratt同时发现,因此人们称它为克努特—莫里斯—普拉特算法(简称kmp算法)。该算法对于朴素匹配算法的改进是引入了一个跳转表next[],利用这种跳转表结构,该算法对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。

但这类ac算法存在两大问题:

(1)计算开销与时间开销较大。在寻找引导码的过程中,由于该算法需要记录整个比特流中所有可能类型及所有可能长度的频繁项,因此,随着频繁序列长度和总比特流长度的增加,空间复杂度将呈指数增长,且挖掘效率较低,这大大增大了计算开销与时间开销。

(2)无法适应引导序列存在随机噪声的情况。在寻找引导码始末位置的过程中,该算法未考虑引导序列可能出现比特错误的情况,因此,对于存在随机噪声的实际通信信道,在引导序列发生比特错误时,该算法会误判引导序列始末位置,从而导致帧序列的错误切分,降低切分准确率。



技术实现要素:

本发明解决的技术问题:克服传统帧序列切分研究面临着两大问题:(1)在寻找引导码的过程中,记录了整个比特流中所有可能类型及所有可能长度的频繁项,导致系统计算开销和时间开销较大。(2)未考虑实际通信信道会给待分析比特流引入随机噪声的情况,当引导序列发生比特错误时,会误判引导序列始末位置,导致帧序列错误切分,降低帧序列切分准确率,本发明提出了一种基于数据挖掘的未知协议帧序列提取方法及系统,该方法在未知协议测控数据中随机插入探针,仅需读取整个数据流中的部分数据,在探针数量足够多的前提下(实验表明通常不多于20个),能够以近似为1的概率分析出正确的引导码,大大降低了系统空间开销和时间开销。该方案采用模糊匹配而非精确匹配方法以减少信道随机噪声对帧序列切分带来的影响,并采用kmp方法实现字符串的快速匹配,进一步减少帧序列切分的时间开销和空间开销。本发明还在该初步切分出帧序列的基础上,进一步分析帧序列同步头,通过反馈帧同步头位置信息再精确切分帧序列,从而提升帧序列切分准确度。

本发明的技术方案为:一种基于数据挖掘的未知协议帧序列提取方法,包括如下步骤:

步骤1、采用基于随机探针的频繁项识别方法,确定出未知协议测控数据中正确的引导码;

步骤2、采用基于模糊匹配的kmp算法,获取步骤1确定的引导码在未知协议测控数据中的所有位置;

步骤3、根据步骤2引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;

步骤4、从startlist中的每个开头位置出发,每个位置读取之后的nbit数据,统计出所有nbit数据及其出现的次数,存放在设定的哈希表中;找到哈希表中出现次数最多的nbit数据;

步骤5、获取帧序列头在未知协议测控数据(即源数据)中出现的位置,根据帧序列头在未知协议的测控数据中出现的位置,校准步骤3中的初步切分帧序列结果,当本步骤获取的帧序列头位置与步骤3列表startlist中位置一致时,则判定该位置为正确的帧序列头位置,实现了精确帧序列切分,得到精确的帧序列切分结果。

nbit数据为帧序列头。

步骤2、采用基于模糊匹配的kmp算法,获取步骤1确定的引导码在未知协议测控数据中的所有位置,具体方法为:

步骤21、设置模糊匹配编辑距离阈值,设置引导码探针位置为位置协议测控数据的开始位置,转入步骤22。

步骤22、利用kmp字符串快速匹配算法,计算引导码s1与未知协议测控数据s2的编辑距离。

步骤23、当两个字符串间的编辑距离小于所设置的编辑距离阈值时,判定引导码匹配成功,只是由于信道噪声造成了误码,记录该引导码出现在源数据中的位置;否则,判定引导码匹配失败。转入步骤24。

步骤24、将引导码匹配探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置,若是,则转入步骤3;否则,转入步骤22。

未知协议测控数据为比特流的形式。

未知协议的测控数据为在卫星信道噪声环境下获取到的由引导序列和帧序列组成的测控数据。

引导序列,由多干相同的引导码组成;帧序列由帧序列头和帧序列数据内容组成。

探针数量参数a决定了探针数量的上界,即探针数量最多为l乘a个,参数b的作用是当未知协议的测控数据长度过长时,以一定比率对探针数量起抑制作用

n为能够配置的参数,为4的整数倍。

一种基于数据挖掘的未知协议帧序列提取系统,包括:引导码信息获取模块、引导码位置获取模块、帧序列初步切分模块、帧序列头获取模块、帧序列精确切分模块;

引导码信息获取模块,采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码;

引导码位置获取模块,采用基于模糊匹配的kmp算法,获取确定的引导码在未知协议测控数据中的所有位置;

帧序列初步切分模块,根据引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;

帧序列头获取模块,从startlist中的每个开头位置出发,每个位置读取之后的nbit数据,统计出所有nbit数据及其出现的次数,存放在设定的哈希表中;找到哈希表中出现次数最多的nbit数据,该nbit数据即为帧序列头。

帧序列精确切分模块,采用基于模糊匹配的kmp算法,获取帧序列头在未知协议的测控数据中出现的位置,根据帧序列头在未知协议的测控数据中出现的位置,校准中的初步切分帧序列结果,当本步骤获取的帧序列头位置与列表startlist中位置一致时,则判定该位置为正确的帧序列头位置,实现了精确帧序列切分,得到精确的帧序列切分结果。

nbit数据为帧序列头。

本发明与现有技术相比的优点在于:

(1)本发明提出了一种基于模糊匹配的kmp算法,该方法采用模糊匹配而非精确匹配方法以减少信道随机噪声对帧序列切分带来的影响,并采用kmp方法实现字符串的快速匹配,进一步减少帧序列切分的时间开销和空间开销。

(2)本发明还在该初步切分出帧序列的基础上,进一步分析帧序列同步头,通过反馈帧同步头位置信息再精确切分帧序列,从而提升帧序列切分准确度。

(3)传统ac算法虽然简单但是计算开销与时间开销较大,且无法适应引导序列存在随机噪声的情况。本发明提出的基于随机探针的频繁项挖掘方法,通过在未知协议测控数据中随机插入探针,仅需读取整个数据流中的部分数据,在探针数量足够多的前提下(实验表明通常不多于20个),能够以近似为1的概率分析出正确的引导码,大大降低系统空间开销和时间开销。

(4)测试对比实验表明,本发明较传统ac算法时间开销和空间开销减少了2-8倍,且随着数据长度的增加,这种改善效果越明显。此外,当系统误码不高于5%时,本发明较传统ac算法帧序列切分准确率提高了约15.8%。

(5)本发明可以应用于存在无线信道误码的未知航天器测控协议的提取。

(6本发明通过构造随机探针和基于模糊匹配的kmp算法来降低未知协议帧序列提取过程中的时间开销和空间开销。

附图说明

图1为本发明未知协议测控数据结构示意图

图2为本发明技术方案流程图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明一种基于数据挖掘的未知协议帧序列提取方法及系统。包括:1、采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码;2、采用基于模糊匹配的kmp算法,获取步骤1确定的引导码在未知协议测控数据中的所有位置;3、根据步骤2引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;4、从startlist中的每个开头位置出发,每个位置读取之后的nbit数据(n为可配置的参数),统计出所有nbit数据及其出现的次数,存放在设定的哈希表中;找到哈希表中出现次数最多的nbit数据,该nbit数据即为帧序列头。5、采用基于模糊匹配的kmp算法,获取帧序列头在未知协议的测控数据(即源数据)中出现的位置,根据帧序列头在未知协议的测控数据(即源数据)中出现的位置,校准步骤3中的初步切分帧序列结果,当本步骤获取的帧序列头位置与步骤3列表startlist中位置一致时,则判定该位置为正确的帧序列头位置,实现了精确帧序列切分,得到精确的帧序列切分结果。

本发明一种基于数据挖掘的未知协议帧序列提取方法,包括如下步骤:

步骤1、采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码;

步骤2、采用基于模糊匹配的kmp算法,获取步骤1确定的引导码在未知协议测控数据中的所有位置;

步骤3、根据步骤2引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;

步骤4、从startlist中的每个开头位置出发,每个位置读取之后的nbit数据(n为可配置的参数),统计出所有nbit数据及其出现的次数,存放在设定的哈希表中;找到哈希表中出现次数最多的nbit数据,该nbit数据即为帧序列头;n为能够配置的参数,优选为4的整数倍.

步骤5、采用基于模糊匹配的kmp算法,获取帧序列头在未知协议测控数据(即源数据)中出现的位置,根据帧序列头在未知协议的测控数据(即源数据)中出现的位置,校准步骤3中的初步切分帧序列结果,当本步骤获取的帧序列头位置与步骤3列表startlist中位置一致时,则判定该位置为正确的帧序列头位置,实现了精确帧序列切分,得到精确的帧序列切分结果。

步骤1、采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(未知协议测控数据优选为比特流的形式)的引导序列中正确的引导码,优选方法为:

步骤11、根据未知协议的测控数据总长度,设置探针总数量其中l为未知协议的测控数据的总长度;a和b为探针数量参数,其中a为大于0小于1的实数,b为大于1且小于exp(10,1-a)的整数。转入步骤12。

步骤12、通过构造随机数生成n个不同探针位置;并初始化一个全局哈希表,用于记录备选的引导码以及其重复出现的次数,转入步骤13。

步骤13、从步骤12的每个探针位置出发挖掘固定长度的引导码,并将挖掘处的引导码作为备选引导码,将该备选引导码及其重复出现次数记录在步骤(12)初始化的哈希表中,转入步骤14。

步骤14、从记录在哈希表中的所有备选引导码中提取出重复出现最多的引导码,作为正确的引导码,转入步骤2。

步骤2、采用基于模糊匹配的kmp算法,获取步骤1确定的引导码在未知协议测控数据中的所有位置,优选方法为:

步骤21、设置模糊匹配编辑距离阈值,设置引导码探针位置为位置协议测控数据的开始位置,转入步骤22。

步骤22、利用kmp字符串快速匹配算法,计算引导码s1与未知协议测控数据s2的编辑距离。编辑距离的计算基于动态规划算法,即基于规划方程将大问题划分成几个小问题进行分别求解,最后将小问题的答案合并成大问题的答案。定义编辑距离函数edit(i,j),它表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离。根据如下动态规划公式:

对于两个字符串s1和s2,其长度分别为l1和l2,通过动态规划算法求解edit(l1,l2),即得两个字符串的编辑距离,转入步骤23。

步骤23、当两个字符串间的编辑距离小于所设置的编辑距离阈值时,认为引导码匹配成功,只是由于信道噪声造成了误码,记录该引导码出现在源数据中的位置;否则,认为引导码匹配失败。转入步骤24。

步骤24、将引导码匹配探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置。若是,则转入步骤3;否则,转入步骤22。

步骤5、采用基于模糊匹配的kmp算法,获取帧序列头在未知协议的测控数据(即源数据)中出现的位置,优选方法如下:

具体方法为:

步骤51、设置模糊匹配编辑距离阈值,设置帧序列头探针位置为位置协议测控数据的开始位置,转入步骤52。

步骤52、利用kmp字符串快速匹配算法,计算帧序列头s3与未知协议测控数据s2的编辑距离。编辑距离的计算方式与步骤2一致,对于两个字符串s3和s2,其长度分别为l3和l2,通过动态规划算法求解edit(l3,l2),即得两个字符串的编辑距离,转入步骤53。

步骤53、当两个字符串间的编辑距离小于所设置的编辑距离阈值时,认为帧序列头匹配成功,只是由于信道噪声造成了误码,记录该帧序列头出现在源数据中的位置;否则,认为帧序列头匹配失败。转入步骤54。

步骤54、将帧序列头探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置。若是,则结束;否则,转入步骤52。

未知协议的测控数据为,在卫星信道噪声环境下获取到的由引导序列和帧序列组成的测控数据。引导序列,由多干相同的引导码组成;帧序列由帧序列头和帧序列数据内容组成。

探针数量参数a决定了探针数量的上界,即探针数量最多为l乘a个,参数b的作用是当未知协议的测控数据长度过长时,以一定比率对探针数量起抑制作用

引导码信息获取模块,采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码,具体为:

先根据未知协议的测控数据总长度,设置探针总数量其中l为未知协议的测控数据的总长度;a和b为探针数量参数,其中a为大于0小于1的实数,b为大于1且小于exp(10,1-a)的整数。然后通过构造随机数生成n个不同探针位置;并初始化一个全局哈希表,用于记录备选的引导码以及其重复出现的次数,然后从步骤12的每个探针位置出发挖掘固定长度的引导码,并将挖掘处的引导码作为备选引导码,将该备选引导码及其重复出现次数记录在初始化的哈希表中,然后从记录在哈希表中的所有备选引导码中提取出重复出现最多的引导码,作为正确的引导码。

如何高效且准确地从比特流数据中提取出未知测控协议的帧序列,是航天器测控协议研究的一个重要课题。传统未知协议帧序列提取方法仅适用于无误码的数据,若直接应用于存在信道误码的航天器未知协议提取中,会带来严重降低切分准确率。因此,本发明涉及一种适用于航天器未知测控协议研究的帧序列提取方法及系统,该发明可以较好适应卫星信道误码的情形,提升帧序列切分准确率。

本发明一种基于数据挖掘的未知协议帧序列提取系统,包括:引导码信息获取模块、引导码位置获取模块、帧序列初步切分模块、帧序列头获取模块、帧序列精确切分模块;

引导码信息获取模块,采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码;

引导码位置获取模块,采用基于模糊匹配的kmp算法,获取确定的引导码在未知协议测控数据中的所有位置;

帧序列初步切分模块,根据引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;

帧序列头获取模块,从startlist中的每个开头位置出发,每个位置读取之后的nbit数据(n为可配置的参数),统计出所有nbit数据及其出现的次数,存放在设定的哈希表中;找到哈希表中出现次数最多的nbit数据,该nbit数据即为帧序列头。

帧序列精确切分模块,采用基于模糊匹配的kmp算法,获取帧序列头在未知协议的测控数据(即源数据)中出现的位置,根据帧序列头在未知协议的测控数据(即源数据)中出现的位置,校准中的初步切分帧序列结果,当本步骤获取的帧序列头位置与列表startlist中位置一致时,则判定该位置为正确的帧序列头位置,实现了精确帧序列切分,得到精确的帧序列切分结果。

引导码信息获取模块中采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(未知协议测控数据优选为比特流的形式)的引导序列中正确的引导码,优选方案为:

先根据未知协议的测控数据总长度,设置探针总数量其中l为未知协议的测控数据的总长度;a和b为探针数量参数,其中a为大于0小于1的实数,b为大于1且小于exp(10,1-a)的整数。然后通过构造随机数生成n个不同探针位置;并初始化一个全局哈希表,用于记录备选的引导码以及其重复出现的次数,然后从每个探针位置出发挖掘固定长度的引导码,并将挖掘处的引导码作为备选引导码,将该备选引导码及其重复出现次数记录在初始化的哈希表中,然后从记录在哈希表中的所有备选引导码中提取出重复出现最多的引导码,作为正确的引导码。

引导码位置获取模块,采用基于模糊匹配的kmp算法,获取引导码信息获取模块得到的引导码在未知协议测控数据中的所有位置,优选方案为:

设置模糊匹配编辑距离阈值,设置引导码探针位置为位置协议测控数据的开始位置,然后利用kmp字符串快速匹配算法,计算引导码s1与未知协议测控数据s2的编辑距离。编辑距离的计算基于动态规划算法,即基于规划方程将大问题划分成几个小问题进行分别求解,最后将小问题的答案合并成大问题的答案。定义编辑距离函数edit(i,j),它表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离。根据如下动态规划公式:

对于两个字符串s1和s2,其长度分别为l1和l2,通过动态规划算法求解edit(l1,l2),即得两个字符串的编辑距离,然后当两个字符串间的编辑距离小于所设置的编辑距离阈值时,认为引导码匹配成功,只是由于信道噪声造成了误码,记录该引导码出现在源数据中的位置;否则,认为引导码匹配失败。然后将引导码匹配探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置。若是,则由帧序列初步切分模块根据引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;否则,利用kmp字符串快速匹配算法,计算引导码s1与未知协议测控数据s2的编辑距离。

帧序列精确切分模块,采用基于模糊匹配的kmp算法,获取帧序列头在未知协议的测控数据(即源数据)中出现的位置,优选方案如下:

设置模糊匹配编辑距离阈值,设置帧序列头探针位置为位置协议测控数据的开始位置,然后利用kmp字符串快速匹配算法,计算帧序列头s3与未知协议测控数据s2的编辑距离。编辑距离的计算方式与步骤2一致,对于两个字符串s3和s2,其长度分别为l3和l2,通过动态规划算法求解edit(l3,l2),即得两个字符串的编辑距离,然后当两个字符串间的编辑距离小于所设置的编辑距离阈值时,认为帧序列头匹配成功,只是由于信道噪声造成了误码,记录该帧序列头出现在源数据中的位置;否则,认为帧序列头匹配失败。然后将帧序列头探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置。若是,则结束;否则,重新利用kmp字符串快速匹配算法,计算帧序列头s3与未知协议测控数据s2的编辑距离。

未知协议的测控数据为,在卫星信道噪声环境下获取到的由引导序列和帧序列组成的测控数据。引导序列,由多干相同的引导码组成;帧序列由帧序列头和帧序列数据内容组成。

探针数量参数a决定了探针数量的上界,即探针数量最多为l乘a个,参数b的作用是当未知协议的测控数据长度过长时,以一定比率对探针数量起抑制作用

引导码信息获取模块,采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码,具体为:

先根据未知协议的测控数据总长度,设置探针总数量其中l为未知协议的测控数据的总长度;a和b为探针数量参数,其中a为大于0小于1的实数,b为大于1且小于exp(10,1-a)的整数。然后通过构造随机数生成n个不同探针位置;并初始化一个全局哈希表,用于记录备选的引导码以及其重复出现的次数,然后从步骤12的每个探针位置出发挖掘固定长度的引导码,并将挖掘处的引导码作为备选引导码,将该备选引导码及其重复出现次数记录在初始化的哈希表中,然后从记录在哈希表中的所有备选引导码中提取出重复出现最多的引导码,作为正确的引导码。

如图2所示,本发明的优选的具体实施方式包括如下步骤:

步骤1、采用基于随机探针的频繁项识别方法,确定出未知协议测控数据(比特流的形式)中正确的引导码;

步骤2、采用基于模糊匹配的kmp算法,获取步骤1确定的引导码在未知协议测控数据中的所有位置;

步骤3、根据步骤2引导码的位置,对未知协议测控数据进行初步切分,获得初步切分帧序列结果,包括未知协议测控数据中所有帧序列的开头位置,并分别存放在设定的列表startlist中;

步骤4、从startlist中的每个开头位置出发,每个位置读取之后的nbit数据(n为可配置的参数),统计出所有nbit数据及其出现的次数,存放在设定的哈希表中;找到哈希表中出现次数最多的nbit数据,该nbit数据即为帧序列头。

步骤5、采用基于模糊匹配的kmp算法,获取帧序列头在未知协议测控数据(即源数据)中出现的位置,根据帧序列头在未知协议的测控数据(即源数据)中出现的位置,校准步骤3中的初步切分帧序列结果,当本步骤获取的帧序列头位置与步骤3列表startlist中位置一致时,则判定该位置为正确的帧序列头位置,实现了精确帧序列切分,得到精确的帧序列切分结果。

所述步骤1的具体方法为:

步骤11、根据未知协议的测控数据总长度,设置探针总数量其中l为未知协议的测控数据的总长度;a和b为探针数量参数,其中a为大于0小于1的实数,b为大于1且小于exp(10,1-a)的整数。转入步骤12。

步骤12、通过构造随机数生成n个不同探针位置;并初始化一个全局哈希表,用于记录备选的引导码以及其重复出现的次数,转入步骤13。

步骤13、从步骤12的每个探针位置出发挖掘固定长度的引导码,并将挖掘处的引导码作为备选引导码,将该备选引导码及其重复出现次数记录在步骤(12)初始化的哈希表中,转入步骤14。

步骤14、从记录在哈希表中的所有备选引导码中提取出重复出现最多的引导码,作为正确的引导码,转入步骤2。

所述步骤2的具体方法为:

步骤21、设置模糊匹配编辑距离阈值,设置引导码探针位置为位置协议测控数据的开始位置,转入步骤22。

步骤22、利用kmp字符串快速匹配算法,计算引导码s1与未知协议测控数据s2的编辑距离。编辑距离的计算基于动态规划算法,即基于规划方程将大问题划分成几个小问题进行分别求解,最后将小问题的答案合并成大问题的答案。定义编辑距离函数edit(i,j),它表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离。根据如下动态规划公式:

对于两个字符串s1和s2,其长度分别为l1和l2,通过动态规划算法求解edit(l1,l2),即得两个字符串的编辑距离,转入步骤23。

步骤23、当两个字符串间的编辑距离小于所设置的编辑距离阈值时,认为引导码匹配成功,只是由于信道噪声造成了误码,记录该引导码出现在源数据中的位置;否则,认为引导码匹配失败。转入步骤24。

步骤24、将引导码匹配探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置。若是,则转入步骤3;否则,转入步骤22。

所述步骤5的具体方法为:

步骤51、设置模糊匹配编辑距离阈值,设置帧序列头探针位置为位置协议测控数据的开始位置,转入步骤52。

步骤52、利用kmp字符串快速匹配算法,计算帧序列头s3与未知协议测控数据s2的编辑距离。编辑距离的计算方式与步骤2一致,对于两个字符串s3和s2,其长度分别为l3和l2,通过动态规划算法求解edit(l3,l2),即得两个字符串的编辑距离,转入步骤53。

步骤53、当两个字符串间的编辑距离小于所设置的编辑距离阈值时,认为帧序列头匹配成功,只是由于信道噪声造成了误码,记录该帧序列头出现在源数据中的位置;否则,认为帧序列头匹配失败。转入步骤54。

步骤54、将帧序列头探针位置后移,判断该探针位置是否移动到未知协议比特流字符串的结束位置。若是,则结束;否则,转入步骤52。

本发明中的一种基于模糊匹配的kmp算法,采用模糊匹配而非精确匹配方法以减少信道随机噪声对帧序列切分带来的影响,并采用kmp方法实现字符串的快速匹配,进一步减少帧序列切分的时间开销和空间开销。本发明还在该初步切分出帧序列的基础上,进一步分析帧序列同步头,通过反馈帧同步头位置信息再精确切分帧序列,从而提升帧序列切分准确度。本发明提出的基于随机探针的频繁项挖掘方法,通过在未知协议测控数据中随机插入探针,仅需读取整个数据流中的部分数据,相比于传统ac算法,可以大大降低系统空间开销和时间开销。

测试对比实验表明,在探针数量足够多的前提下(实验表明通常不多于20个),能够以近似为1的概率分析出正确的引导码,本发明较传统ac算法时间开销和空间开销减少了2-8倍,且随着数据长度的增加,这种改善效果越明显。此外,当系统误码不高于5%时,本发明较传统ac算法帧序列切分准确率提高了约15.8%。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1