一种协议自动识别方法及其所用分类器的构造方法
【专利摘要】本发明涉及一种协议自动识别中所用分类器的构造方法,包括:采集原始数据样本,从中提取出训练集;其中,训练集中的一个元素对应原始数据样本中的一个数据,每一元素表示为:(x(i),y(i)),其中的y(i)为赋予给第i个数据的类标,表明该数据属于哪一种协议;x(i)表示特征值,反映了数据的内在特性;利用得到的训练集构造分类器。本发明还提供一种基于所述方法所构造的分类器实现协议自动识别的方法,包括:接收到数据后,提取出该数据的特征值;将所得到的某一数据的特征值代入分类器中,得到该数据所属协议的类别。
【专利说明】一种协议自动识别方法及其所用分类器的构造方法
【技术领域】
[0001] 本发明涉及物联网领域,特别涉及一种协议自动识别方法及其所用分类器的构造 方法。
【背景技术】
[0002] 近年来随着物联网技术的不断进步,整个物联网产业进入了快速发展阶段,各种 新型的面向物联网的传感设备大量涌现,并出现了很多基于这些终端设备数据的创新应 用。所有物联网应用的基础都是在传感网络所收集的数据,因此数据获取是物联网的一个 核心内容。
[0003] 物联网发展十分迅速,相比之下其规范标准则落后很多。直至目前,仍没有一个组 织提出的标准能够被大多数的从业人员所认同,并且就现下情况来看,这也不是一个短时 间内能够解决的问题。由此产生的弊端就是数据协议的多样化和随意性。传感数据有着各 式各样的协议格式,并且很多的协议格式是私有协议,使用范围非常窄,这就给读取并理解 传感数据制造了很多的麻烦。
[0004] 现有技术中的解决方法可以概括为静态绑定模板方法。在该方法中,一个模板能 够解析一种特定协议的数据,将一模板绑定在一个端口上,则能够解析该端口接收到的这 种协议的数据。但是这样做的问题在于:一个端口可能会接收到不同协议的数据。以网络 端口为例,各种不同的传感节点都可以通过网络上传数据,这样在网络端口接收到的数据 往往包含了多种协议类型。在这种情况下,静态绑定的方法不可取。
【发明内容】
[0005] 本发明的目的在于克服现有技术中的静态绑定方法无法满足网络数据协议识别 的需要,从而提供一种更加智能、并能动态调整的协议自动识别方法。
[0006] 为了实现上述目的,本发明提供了一种协议自动识别中所用分类器的构造方法, 包括:
[0007] 步骤11)、采集原始数据样本,从中提取出训练集;其中,
[0008] 所述训练集中的一个元素对应原始数据样本中的一个数据,每一元素表示为: (x(i),y (i)),其中的y(i)为赋予给第i个数据的类标,表明该数据属于哪一种协议;χω表示 特征值,反映了数据的内在特性;
[0009] 步骤12)、利用步骤11)得到的训练集构造分类器。
[0010] 上述技术方案中,在所述的步骤11)中,通过Tf-Idf方法求取所述特征值;包括:
[0011] 步骤11-1)、根据原始数据样本中的数据构建词典;所述词典表示词汇的取值范 围,所述词汇表示组成原始数据的字符串中若干个字符的组合;
[0012] 步骤11-2)、将原始数据样本中的各个数据与步骤11-1)所得到的词典进行比较, 根据比较结果得到各个数据的特征值。
[0013] 上述技术方案中,在所述的步骤11-1)中还包括:计算所述词汇与词典的关联程 度,将关联程度低的词汇从所述词典中删除。
[0014] 上述技术方案中,在所述的步骤12)中,采用k类朴素贝叶斯方法构造分类器。
[0015] 本发明还提供了一种基于所述方法所构造的分类器实现协议自动识别的方法,包 括:
[0016] 步骤21)、接收到数据后,提取出该数据的特征值;
[0017] 步骤22)、将步骤21)所得到的某一数据的特征值代入所述分类器中,得到该数据 所属协议的类别。
[0018] 上述技术方案中,所述步骤22)包括:
[0019] 步骤22-1)、将步骤21)所得到的某一数据的特征值代入分类器中,得到该特征值 属于各个协议的概率值;
[0020] 步骤22-2)、将步骤22-1)所得到的各个概率值与一用于表示显著性的阈值进行 比较,若均小于该阈值,所述数据不属于任何已知协议,属于未分类,否则将概率最大值所 对应的协议作为所述数据所属的协议;
[0021] 步骤22-3)、对分类后的数据做进一步分析,将分析结果与实际情况较大的数据归 为误分类。
[0022] 上述技术方案中,在所述的步骤22)之后还包括:
[0023] 步骤23)、记录并保存属于误分类或未分类的数据,达到一定量后,将这些数据按 照权利要求1-4之一所述方法提取训练集,并与之前的训练集合并,形成新的训练集,进而 构造另一分类器。
[0024] 上述技术方案中,在所述的步骤22)之后还包括:
[0025] 步骤24)、当删除的协议达到一定数量后,修改之前保存的训练集,从中删除所有 属于删除协议的数据条目,得到新的训练集,然后按照权利要求1-4之一所述方法得到新 的分类器。
[0026] 与现有技术相比,本发明具有以下优点:
[0027] 1、不再需要绑定端口和协议,使得数据的处理更加地智能和自动化。
[0028] 2、能够动态地调整协议的数量,方便添加新增协议,删除过时协议,更适应真实的 物联网场景。
【专利附图】
【附图说明】
[0029] 图1是本发明方法中构造分类器过程的流程图;
[0030] 图2是本发明方法中利用分类器对数据做协议识别的流程图。
【具体实施方式】
[0031] 现结合附图对本发明作进一步的描述。
[0032] 本发明的方法总体上包括两个阶段,第一阶段是训练阶段,第二阶段是识别阶段, 所述训练阶段用于构造分类器,而所述的识别阶段则是利用所构造的分类器识别所接收数 据的协议格式。
[0033] 下面就本发明的方法分阶段分别予以说明。
[0034] 一、训练阶段
[0035] 如图1所示,训练阶段包括以下步骤:
[0036] 步骤11)、采集原始数据样本,从中提取出训练集。
[0037] 网络中所传输的数据包采集后可作为原始数据样本,根据这些原始数据样本可得 到训练集,所述训练集中与某一原始数据所对应的元素表示为:( x(i),y(i));其中,y(i)为赋 予给第i个数据的类标,即表明该数据属于哪一种协议 ;x(i)表示特征值,所述特征值反映 了数据的某一内在特性。
[0038] 由于原始数据样本中的数据属于何种协议格式是已知的,因此可以得到7(1)的值。 而特征值x (i)表的大小可通过如下方式构建:
[0039] 首先,根据原始数据样本构建词典。每一个原始数据都是一串十六进制的字符 串,将其视为一篇文档,其中每两个十六进制字符视为一个词汇,整个原始数据样本就能被 视为一个文档集合。一个十六进制字符值范围为〇到F,那么由两个十六进制组成的词汇 取值范围为[00, 01,···,FE,FF],这个取值范围也被称为词典V。词典中每个词汇出现频率 以及其在文档集合中的分布是不同,或者说,每个词汇的重要程度是有区别的。比如说〇〇 在绝大多数的文档中都有出现,但是显然〇〇只是作为一种占位符或者空数据出现,对于识 别类标没有任何帮助,也就是说,00的区分能力很低。在本实施例中,使用Tf-Idf (Term Frequency - Inverse Document Frequency)方法来找出区分能力高的词汇,将区分能力高 的词汇保留在词典中,将区分能力低的词汇从词典中删除。
[0040] ] Tf-Idf是一种在信息检索领域(Information Retrieval)广泛使用的度量,用于 衡量一篇文档与一个特定词汇之间的相关度,从而在一组文档集合中发现与该词汇相关的 文档,并可根据此度量对这些文档排序。
[0041] Tf-Idf有多种变种,一种常见的计算方法为:
[0042] tf (t, d) =f (t, d)
[0043]
【权利要求】
1. 一种协议自动识别中所用分类器的构造方法,包括: 步骤11)、采集原始数据样本,从中提取出训练集;其中, 所述训练集中的一个元素对应原始数据样本中的一个数据,每一元素表示为: (x(i),y(i)),其中的y(i)为赋予给第i个数据的类标,表明该数据属于哪一种协议;χ ω表示 特征值,反映了数据的内在特性; 步骤12)、利用步骤11)得到的训练集构造分类器。
2. 根据权利要求1所述的协议自动识别中所用分类器的构造方法,其特征在于,在所 述的步骤11)中,通过Tf-Idf方法求取所述特征值;包括: 步骤11-1)、根据原始数据样本中的数据构建词典;所述词典表示词汇的取值范围,所 述词汇表示组成原始数据的字符串中若干个字符的组合; 步骤11-2)、将原始数据样本中的各个数据与步骤11-1)所得到的词典进行比较,根据 比较结果得到各个数据的特征值。
3. 根据权利要求2所述的协议自动识别中所用分类器的构造方法,其特征在于,在所 述的步骤11-1)中还包括:计算所述词汇与词典的关联程度,将关联程度低的词汇从所述 词典中删除。
4. 根据权利要求1所述的协议自动识别中所用分类器的构造方法,其特征在于,在所 述的步骤12)中,采用k类朴素贝叶斯方法构造分类器。
5. -种基于权利要求1-4之一所述方法所构造的分类器实现协议自动识别的方法,包 括: 步骤21)、接收到数据后,提取出该数据的特征值; 步骤22)、将步骤21)所得到的某一数据的特征值代入所述分类器中,得到该数据所属 协议的类别。
6. 根据权利要求5所述的协议自动识别方法,其特征在于,所述步骤22)包括: 步骤22-1)、将步骤21)所得到的某一数据的特征值代入分类器中,得到该特征值属于 各个协议的概率值; 步骤22-2)、将步骤22-1)所得到的各个概率值与一用于表示显著性的阈值进行比较, 若均小于该阈值,所述数据不属于任何已知协议,属于未分类,否则将概率最大值所对应的 协议作为所述数据所属的协议; 步骤22-3)、对分类后的数据做进一步分析,将分析结果与实际情况较大的数据归为误 分类。
7. 根据权利要求6所述的协议自动识别方法,其特征在于,在所述的步骤22)之后还包 括: 步骤23)、记录并保存属于误分类或未分类的数据,达到一定量后,将这些数据按照权 利要求1-4之一所述方法提取训练集,并与之前的训练集合并,形成新的训练集,进而构造 另一分类器。
8. 根据权利要求6所述的协议自动识别方法,其特征在于,在所述的步骤22)之后还包 括: 步骤24)、当删除的协议达到一定数量后,修改之前保存的训练集,从中删除所有属于删 除协议的数据条目,得到新的训练集,然后按照权利要求1-4之一所述方法得到新的分类器。
【文档编号】G06F17/30GK104111931SQ201310134121
【公开日】2014年10月22日 申请日期:2013年4月17日 优先权日:2013年4月17日
【发明者】杨航, 张宇, 赵志军, 潘大庆, 杨子尧, 赵汗青 申请人:中国科学院声学研究所, 无锡中科智能信息处理研发中心有限公司