一种识别物联网终端设备的方法和装置与流程

文档序号:20272314发布日期:2020-04-03 19:11阅读:400来源:国知局
一种识别物联网终端设备的方法和装置与流程

本发明涉及数据通信领域,尤其是一种识别物联网终端设备的方法和装置。



背景技术:

随着互联网的普及,万物相连的物联网(iot,internetofthings)时代接踵而至,物联网技术的发展与应用对于未来的社会发展和经济都具有重要意义。根据gartner公司的报告,预计到2020年iot设备的数量将达到200亿台,这些设备可能涉及到个人隐私与公共安全,而设备类型的识别为个人隐私与公共安全提供了基础,因此终端设备识别技术在物联网应用中显的特别重要。传统的指纹识别方法需要人工提取每个iot设备的报文字段,根据某些字段来确认终端设备类型,对于200亿的数量级进行运算耗时极大,而自动的iot识别方法基于网络行为流的差异性,利用机器学习算法能够主动识别设备类型,大大节省了人力物力财力。

针对于终端识别技术,部分工作是基于指纹库进行设计的,根据终端向服务器发送dhcp(dynamichostconfigurationprotocol)动态主机配置协议请求报文后,通过dhcp的option选项字段获取第一终端信息,在dhcp特征库中查找与第一终端信息相匹配的终端类型;部分工作又添加了第二终端信息,等待网络连接建立后,终端向服务器发送http(hypertexttransferprotocol)超文本传输协议报文,服务器通过http报文头部携带的ua(useragent)用户代理信息字段分析出所述终端的第二终端信息,在ua特征库中查找与所述第二终端信息相匹配的终端类型,结合第一终端类型和第二终端类型最终确定终端类型。

基于机器学习的网络设备分类方法,部分工作是针对于手持终端特定领域的,部分工作需要建立很大的特征库,只能针对于特征库中类型才能分类,不属于该特征库不能分类,除非搜集该类型的特征加入特征库中。



技术实现要素:

为了解决上述技术问题,本发明的实施例采用如下技术方案:

一种识别物联网终端设备的方法,包括:

获取第一物联网终端设备发送的携带预知四元组的多个数据报文;

获取所述多个数据报文的字段特征,

根据所述预知四元组将所述多个数据报文分组并将每个分组中的数据报文按预设的顺序组织成第一数据流;

根据每个第一数据流中每个报文的字段特征计算每个第一数据流的流量特征;

根据所述每个第一数据流对应的流量特征将所述每个第一数据流分别组成训练集,对所述训练集统一进行模型训练后,生成能根据测试集获得所述测试集对应的未知类别终端设备归属于与所述预知四元组对应的终端类别的概率的分类器模型;

获取第二物联网终端设备发送的携带未知四元组的多个数据报文,所述第二物联网终端设备为未知类别终端设备;

根据所述未知四元组将所述多个数据报文分组并将每个分组中的数据报文组织成第二数据流;

将所述每个第二数据流分别组成测试集,将所述每个测试集输入所述分类器模型对所述每个测试集对应的第二数据流进行预测,获得所述每个测试集中的第二数据流分别属于n个终端类别的n个概率,其中,n为大于等于1的自然数;

将所述n个概率进行比较,根据比较结果确定所述每个测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述将所述n个概率进行比较,根据比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别的步骤具体包括:

将所述n个概率分别与预先设置的阈值进行比较,当其中一个概率大于阈值时,将该概率对应的测试集对应的终端类别的命中次数加1,比较每个终端类别对应的命中次数,根据所述命中次数的比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述根据所述命中次数的比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别的步骤具体包括:

当第一终端类别的命中次数大于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第一终端类别;

当第一终端类别的命中次数小于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第二终端类别。

可选的,所述方法还包括:

将所述n个概率分别与预先设置的阈值进行比较,当其中第一概率小于阈值时,确定所述第一概率对应的测试集对应的未知四元组对应的第二物联网终端设备不属于所述预知四元组分别对应的终端类别,使用聚类算法对所有不属于所述预知四元组分别对应的终端类别的测试集进行聚类,将所有不属于所述预知四元组分别对应的终端类别的测试集分别对应m类终端类别中的一类,则所有不属于所述预知四元组分别对应的终端类别的测试集对应的第二物联网终端设备归属于m类终端类别中的与所述测试集对应的终端类别。

可选的,所述方法还包括:

当m类终端类别中每类终端类别内的多个测试集之间的相似性大于第二阈值时,根据所述相似性进行m类终端类别的划分。

本发明实施例的另一方面在于,提供一种识别物联网终端设备的装置,包括:

第一获取模块,用于获取第一物联网终端设备发送的携带预知四元组的多个数据报文;

第二获取模块,用于获取所述多个数据报文的字段特征,

数据流生成模块,用于根据所述预知四元组将所述多个数据报文分组并将每个分组中的数据报文按预设的顺序组织成第一数据流;

计算模块,用于根据每个第一数据流中每个报文的字段特征计算每个第一数据流的流量特征;

分类器训练模块,用于根据所述每个第一数据流对应的流量特征将所述每个第一数据流分别组成训练集,对所述训练集统一进行模型训练后,生成能根据测试集获得所述测试集对应的未知类别终端设备归属于与所述预知四元组对应的终端类别的概率的分类器模型;

第三获取模块,用于获取第二物联网终端设备发送的携带未知四元组的多个数据报文,所述第二物联网终端设备为未知类别终端设备;

所述数据流生成模块,还用于根据所述未知四元组将所述多个数据报文分组并将每个分组中的数据报文组织成第二数据流;

预测模块,用于将所述每个第二数据流分别组成测试集,将所述每个测试集输入所述分类器模型对所述每个测试集对应的第二数据流进行预测,获得所述每个测试集中的第二数据流分别属于n个终端类别的n个概率,其中,n为大于等于1的自然数;

终端类别确定模块,用于将所述n个概率进行比较,根据比较结果确定所述每个测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述终端类别确定模块具体用于:

将所述n个概率分别与预先设置的阈值进行比较,当其中一个概率大于阈值时,将该概率对应的测试集对应的终端类别的命中次数加1,比较每个终端类别对应的命中次数,根据所述命中次数的比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述终端类别确定模块具体用于:

将所述n个概率分别与预先设置的阈值进行比较,当其中一个概率大于阈值时,将该概率对应的测试集对应的终端类别的命中次数加1,比较每个终端类别对应的命中次数,

当第一终端类别的命中次数大于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第一终端类别;

当第一终端类别的命中次数小于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第二终端类别。

可选的,所述终端类别确定模块还用于:

将所述n个概率分别与预先设置的阈值进行比较,当其中第一概率小于阈值时,确定所述第一概率对应的测试集对应的未知四元组对应的第二物联网终端设备不属于所述预知四元组分别对应的终端类别,使用聚类算法对所有不属于所述预知四元组分别对应的终端类别的测试集进行聚类,将所有不属于所述预知四元组分别对应的终端类别的测试集分别对应m类终端类别中的一类,则所有不属于所述预知四元组分别对应的终端类别的测试集对应的第二物联网终端设备归属于m类终端类别中的与所述测试集对应的终端类别。

可选的,所述终端类别确定模块还用于:

当m类终端类别中每类终端类别内的多个测试集之间的相似性大于第二阈值时,根据所述相似性进行m类终端类别的划分。

本发明实施例的有益效果在于:解决了物联终端设备自动分类的问题,不仅能够对已知类别的物联终端设备进行分类,还能对未知类别的终端设备进行聚类,增强了物联终端分类的范围。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的方法流程图;

图2为本发明一实施例提供的方法流程图;

图3为本发明一实施例提供的装置结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的实施例采用如下技术方案:

一种识别物联网终端设备的方法,如图1所示,包括:

s101,获取第一物联网终端设备发送的携带预知四元组的多个数据报文;

其中,可以通过端口镜像获取物联网终端设备的数据报文,四元组可以为报文中的发送方和接收方的ip地址和端口号,端口镜像是通过在交换机或路由器上将一个或多个端口的流量转发到某一个指定端口上来实现对网络的监听,在不严重影响端口正常流量吞吐的情况下,可以通过镜像端口对网络的流量进行监控分析;该过程利用端口镜像技术,在汇聚或核心交换机上进行配置,获取物联网终端设备的网络流量包。

s103,获取所述多个数据报文的字段特征,

其中,可以对多个数据报文的传输层解析获取相关的报文字段特征,比如报文长度、报文数量和时间属性;

s105,根据所述预知四元组将所述多个数据报文分组并将每个分组中的数据报文按预设的顺序组织成第一数据流;

其中,可以将报文序列按照时间顺序排列成一个队列,具体为:若报文中有“开始”字段则视为一条流的开始,若报文中有“结束”字段则视为该条流结束。

在本发明的一个实施例中,由于物联网终端设备的流行为的差异性,比如ip(internetprotocol)功放和网络摄像头的流的持续时间比较长、报文数量多,因此进行了子流处理,仅取一条流的前若干个报文或固定时间长度内的报文,无须等到一条流的结束,只选取该条流中的子流。

s107,根据每个第一数据流中每个报文的字段特征计算每个第一数据流的流量特征;

在本发明的一个实施例中,报文组织成数据流后存储的仍旧是原始的某些报文字段,为了便于机器学习分类,可以基于数据流的这些原始报文字段进行二次加工,包括计算数据流的某些统计特征作为流量特征,比如,针对于一数据流,求该数据流的最大值,最小值、中位数、信息熵、上四分位值、下四分位值、平均值、方差、标准差与求和等,共计65维的流量特征。

s109,根据所述每个第一数据流对应的流量特征将所述每个第一数据流分别组成训练集,对所述训练集统一进行模型训练后,生成能根据测试集获得所述测试集对应的未知类别终端设备归属于与所述预知四元组对应的终端类别的概率的分类器模型;

在本发明的一个实施例中,模型训练后,针对于一个样本,调用该模型的predict()方法,即可输出该样本属于某一类的概率,predict()方法的内部代码涉及算法原理,使用的话只需调用该方法即可。

s111,获取第二物联网终端设备发送的携带未知四元组的多个数据报文,所述第二物联网终端设备为未知类别终端设备;

s113,根据所述未知四元组将所述多个数据报文分组并将每个分组中的数据报文组织成第二数据流;

s115,将所述每个第二数据流分别组成测试集,将所述每个测试集输入所述分类器模型对所述每个测试集对应的第二数据流进行预测,获得所述每个测试集中的第二数据流分别属于n个终端类别的n个概率,其中,n为大于等于1的自然数;

s117,将所述n个概率进行比较,根据比较结果确定所述每个测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述步骤s117,具体包括:

将所述n个概率分别与预先设置的阈值进行比较,当其中一个概率大于阈值时,将该概率对应的测试集对应的终端类别的命中次数加1,比较每个终端类别对应的命中次数,根据所述命中次数的比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述根据所述命中次数的比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别的步骤具体包括:

当第一终端类别的命中次数大于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第一终端类别;

当第一终端类别的命中次数小于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第二终端类别。

具体的,计数过程其实就是根据分类器预测的概率与前面的阈值进行比较,若分类器预测样本a属于终端类别1的概率大于阈值,则样本a属于终端类别1的命中次数加1,同样地,若分类器预测样本a属于终端类别2,则属于终端类别2的命中次数加1,最后统计样本a属于终端类别1和属于终端类别2的命中次数,进行比较,若终端类别1的命中次数大于终端类别2,则最终判断样本a属于终端类别1,反之同理。

在具体的应用场景中,比如要预测某一条流是来自打印机还是摄像头(物联网终端设备中的一种),

一开始要采集数据,找一些打印机和摄像头设备,采集来自打印机和摄像头的数据组成训练集,打印机和摄像头属于不同的类别,作为类标签,根据训练集和类标签训练一个分类器a;

测试集:采集一些新的数据,并不知道这些数据来自打印机还是摄像头,使用分类器a让它预测某一条新数据流是来自打印机还是摄像头。

可选的,如图2所示,所述方法还包括:

s201,将所述n个概率分别与预先设置的阈值进行比较,

s203,当其中第一概率小于阈值时,确定所述第一概率对应的测试集对应的未知四元组对应的第二物联网终端设备不属于所述预知四元组分别对应的终端类别,

s205,使用聚类算法对所有不属于所述预知四元组分别对应的终端类别的测试集进行聚类,

s207,将所有不属于所述预知四元组分别对应的终端类别的测试集分别对应m类终端类别中的一类,则所有不属于所述预知四元组分别对应的终端类别的测试集对应的第二物联网终端设备归属于m类终端类别中的与所述测试集对应的终端类别。

可选的,所述方法还包括:

当m类终端类别中每类终端类别内的多个测试集之间的相似性大于第二阈值时,根据所述相似性进行m类终端类别的划分。

具体的,首先使用聚类算法对所有的样本进行聚类,比如测试样本(测试集中的样本)一共有50个,设置聚类的个数为5,则聚类算法就将这50个样本分成5部分,每一部分内的样本相似性比较大,不是同一部分的样本的相似性比较小(相似性可根据与第二阈值的比较进行判断),假如分为a,b,c,d,e这五部分,这五部分的每一部分的个数不一定相等,但是总和等于50,人工地查看每一部分的1~2个样本的类别,然后就认定该部分其他的样本也属于该类别。

本发明实施例的有益效果在于:解决了物联终端设备自动分类的问题不仅能够对已知类别的物联终端设备进行分类,还能对未知类别的终端设备进行聚类,增强了物联终端分类的范围。

本发明实施例的另一方面在于,提供一种识别物联网终端设备的装置,如图3所示,包括:

第一获取模块301,用于获取第一物联网终端设备发送的携带预知四元组的多个数据报文;

第二获取模块303,用于获取所述多个数据报文的字段特征,

数据流生成模块305,用于根据所述预知四元组将所述多个数据报文分组并将每个分组中的数据报文按预设的顺序组织成第一数据流;

计算模块307,用于根据每个第一数据流中每个报文的字段特征计算每个第一数据流的流量特征;

分类器训练模块309,用于根据所述每个第一数据流对应的流量特征将所述每个第一数据流分别组成训练集,对所述训练集统一进行模型训练后,生成能根据测试集获得所述测试集对应的未知类别终端设备归属于与所述预知四元组对应的终端类别的概率的分类器模型;

第三获取模块311,用于获取第二物联网终端设备发送的携带未知四元组的多个数据报文,所述第二物联网终端设备为未知类别终端设备;

所述数据流生成模块305,还用于根据所述未知四元组将所述多个数据报文分组并将每个分组中的数据报文组织成第二数据流;

预测模块313,用于将所述每个第二数据流分别组成测试集,将所述每个测试集输入所述分类器模型对所述每个测试集对应的第二数据流进行预测,获得所述每个测试集中的第二数据流分别属于n个终端类别的n个概率,其中,n为大于等于1的自然数;

终端类别确定模块315,用于将所述n个概率进行比较,根据比较结果确定所述每个测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述终端类别确定模块315具体用于:

将所述n个概率分别与预先设置的阈值进行比较,当其中一个概率大于阈值时,将该概率对应的测试集对应的终端类别的命中次数加1,比较每个终端类别对应的命中次数,根据所述命中次数的比较结果确定所述测试集对应的未知四元组对应的第二物联网终端设备所属的终端类别。

可选的,所述终端类别确定模块315具体用于:

将所述n个概率分别与预先设置的阈值进行比较,当其中一个概率大于阈值时,将该概率对应的测试集对应的终端类别的命中次数加1,比较每个终端类别对应的命中次数,

当第一终端类别的命中次数大于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第一终端类别;

当第一终端类别的命中次数小于第二终端类别的命中次数时,则确定所述测试集对应的未知四元组对应的第二物联网终端设备属于第二终端类别。

可选的,所述终端类别确定模块315还用于:

将所述n个概率分别与预先设置的阈值进行比较,当其中第一概率小于阈值时,确定所述第一概率对应的测试集对应的未知四元组对应的第二物联网终端设备不属于所述预知四元组分别对应的终端类别,使用聚类算法对所有不属于所述预知四元组分别对应的终端类别的测试集进行聚类,将所有不属于所述预知四元组分别对应的终端类别的测试集分别对应m类终端类别中的一类,则所有不属于所述预知四元组分别对应的终端类别的测试集对应的第二物联网终端设备归属于m类终端类别中的与所述测试集对应的终端类别。

可选的,所述终端类别确定模块315还用于:

当m类终端类别中每类终端类别内的多个测试集之间的相似性大于第二阈值时,根据所述相似性进行m类终端类别的划分。

本发明实施例的有益效果在于:解决了物联终端设备自动分类的问题,不仅能够对已知类别的物联终端设备进行分类,还能对未知类别的终端设备进行聚类,增强了物联终端分类的范围。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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