网络设备信息的智能标记方法与流程

文档序号:16928789发布日期:2019-02-22 20:05阅读:236来源:国知局
网络设备信息的智能标记方法与流程

本发明属于智能家居设备领域。



背景技术:

随着智能手机、台式机和笔记本电脑、wifi路由器以及各类支持wifi协议的新型物联网设备和智能家居设备(如智能冰箱、智能洗衣机、服务机器人、机顶盒、智能插座等)的日益普及,人们越来越多的使用各种网络设备进行联网和使用各种移动互联网业务。wifi协议是一个包含了多种具体协议的协议簇,支持在无线局域网下的各种设备之间实现互联互通。

为满足产业研究、行业监测等的相关需求,需要通过台式机及笔记本电脑中的客户端采集软件或智能手机中的app采集软件,实现对新型物联网设备的设备类型、设备厂商和品牌、以及设备型号等信息进行采集。

传统的方法是利用wifi协议直接进行设备信息的发现。wifi协议簇主要包括upnp协议、arp/rarp协议、netbios协议、mdns协议/bonjour协议、snmp协议等。通过这些协议可以实现联网设备间的相互发现、信息交互等功能。

现有的方法存在的局限性在于,很多设备厂商在设备研制过程中并没有严格按照标准的wifi协议簇实现,而是做了很多的改造或简化,大量的字段缺失或字段内容含义发生了变化,很多情况下仅能获取到设备网卡的mac地址信息,因此无法直接利用协议返回信息的相应字段直接获取设备类型、设备厂商名称和型号等信息。

很多联网设备的wifi模块没有严格按照标准的wifi协议簇实现,做了很多的改造或简化,大量的字段缺失或字段内容含义发生了变化,无法直接利用协议返回信息的相应字段直接获取设备相关信息;根据我们对实际采集数据的统计,大约有90~95%的设备的wifi协议字段(包括upnp、snmp、netbios等)是完全空白、无法获取的,因此也就不能利用wifi协议字段信息进行设备信息的提取。



技术实现要素:

本发明要解决的问题是当所能采集到的联网网络设备信息中只包含设备mac地址的情况下,如何利用已有标记信息的训练样本集,准确提取联网设备的设备类型、设备厂商和设备型号等信息。

本发明可准确地获取到连接到当前wifi路由器下的智能联网网络设备和智能家居设备的设备类型、设备厂商和/或设备型号信息。从而解决在大多数情况下wifi协议簇协议字段信息缺失所带来的无法判断设备关键信息的问题。

本发明所述的网络设备信息的智能标记方法,其具体步骤如下:

输入:标记样本集,未知样本集。

将包括6个字段共48bit的设备mac地址表示为m={m.a,m.b,m.c,m.d,m.e,m.f},通常用16进制表示。其中前3个字段{m.a,m.b,m.c}由国际组织ieee的注册管理机构给不同厂家分配,也可表示为m.abc(比如:0x60:21:01),称为“组织唯一标志符(oui)”,后3个字段由厂家自己分配,称为“扩展标识符(ei)”。则:

(1)标记样本集(每个样本对应某台具体的支持wlan协议的网络设备,如路由器)包括如下8个字段:m.abc(设备wlan网卡mac地址的前3个字段),m.d,m.e,m.f,网卡厂商,设备类型(tod,标记项,必选),设备厂商(vod,标记项,必选),设备型号(mod,标记项,可选)。

一般可通过人工标记或自动标记等方式得到上述样本。这里的网络设备是指具有wlan联网功能的设备,如路由器、智能手机、网络机顶盒、智能冰箱、智能窗帘等。网卡厂商字段通常可以根据m.abc查表得到。

(2)未知样本集包括所有未知样本。未知样本是指包括如下字段、但其中的标记字段为空的样本,即:m.abc,m.d,m.e,m.f,网卡厂商,设备类型(空),设备厂商(空),设备型号(空),标记置信度(空)。

注1:样本集中的样本按照mac地址的各字段升序排列。mac地址值最小的排在最前面。

注2:mac地址值的大小是指将两个mac地址s1={m1.a,m1.b,m1.c,m1.d,m1.e,m1.f}和s2={m2.a,m2.b,m2.c,m2.d,m2.e,m2.f}的各字段(m.a~m.f)从最高位字段(即m.a字段)到最低位字段(即m.f字段)进行逐个比较的时候,如果该字段上s1的值小于或大于s2的值,则称s1的mac地址值为小或大,否则继续进行下一个字段的比较,直到最低位字段。

步骤1:构建“macoui字典”

根据标记样本集的字段【m.abc,网卡厂商,设备厂商】,统计汇总得到“macoui字典”。该字典包括如下字段:【m.abc,网卡厂商,网卡类型,{设备厂商}】。对同一个m.abc字段的所有标记样本,根据如下3个条件进行判断处理:

(1)条件1:如果网卡厂商=设备厂商,则网卡类型=“自有型”;

(2)条件2:如果网卡厂商≠设备厂商,且该网卡厂商下不同的设备厂商数量不超过1个,则网卡类型=“第三方独用型网卡”;

(3)条件3:如果网卡厂商≠设备厂商,且该网卡厂商下不同的设备厂商数量超过1个,则网卡类型=“第三方共用型网卡”,“设备厂商”={同一m.abc字段下的所有设备厂商}。

步骤2:构建“mac区间字典”

根据标记样本集可以统计汇总得到“mac区间字典”。该字典的字段包括:【m.abc,bm.d,bm.e,bm.f,em.d,em.e,em.f,设备类型,设备厂商,设备型号(可选),区间置信度】。

其中,{bm.d,bm.e,bm.f}为该记录对应设备厂商或设备型号的起始macei字段,{em.d,em.e,em.f}为对应设备厂商或设备型号的结束macei字段。区间置信度是该区间记录对应的mac区间内的标记样本数。

对m.abc相同的样本,对设备类型/设备厂商/设备型号字段完全相同的连续样本集合,取该连续样本集合的mac地址最小值(即集合的第一个样本)的{m.d,m.e,m.f}字段,记为{bm.d,bm.e,bm.f},取该连续样本集合的mac地址最大值(即集合的最后一个样本)的{m.d,m.e,m.f}字段,记为{em.d,em.e,em.f}。如果连续样本集合的样本数量为1,则{bm.d,bm.e,bm.f}=={em.d,em.e,em.f}。

步骤3:mac字段匹配

对未知样本集中的每个样本,进行mac字段匹配。具体步骤包括:

步骤3.1:在mac区间字典中寻找与未知样本mac地址m.abc字段相同的记录,如果有,则对具有相同m.abc字段的记录,逐个记录对比未知样本的ei字段(即m.d~m.f字段)和mac区间记录中的起始macei字段、结束macei字段,看是否该未知样本的mac值落在该记录的mac地址区间内。如果是,则将该区间记录的相应的非空的设备信息(设备类型/设备厂商/设备型号)填充到未知样本的对应标记字段,“标记置信度”=“区间置信度”,返回。

步骤3.2:否则,计算未知样本与各mac区间字段距离:仅在m.abc相同的情况下计算距离。计算未知样本与各mac区间记录的mac距离(根据下面的公式1),取距离值最小且不超过最大mac距离(可设为5个m.d字段容量,即5*256*256=327680)的mac区间记录为匹配项,将该记录相应的非空的设备信息字段值(设备类型/设备厂商/设备型号)填充到未知样本的对应标记字段,“标记置信度”=“区间置信度”,结束。

注1:如果未知样本mac地址ei字段小于mac区间记录中的起始macei字段,则计算未知样本与mac区间记录的起始macei字段的mac距离;如果未知样本mac地址ei字段大于mac区间记录中的结束macei字段,则计算计算未知样本与mac区间记录的结束macei字段的mac距离。

注2:mac距离的定义。对两个mac地址x={xm.abc,xm.d,xm.e,xm.f}和y={ym.abc,ym.d,ym.e,ym.f},其中xm.abc=ym.abc,则x和y的mac距离定义为:

d_mac(x,y)=abs[(ym.d-xm.d)*256*256+(ym.e-xm.e)*256+(ym.f-xm.f)]

(公式1)

步骤3.3:最大mac距离保护。

如果距离最近的mac字段超过设定的最大mac距离门限值,则根据该未知样本的m.abc字段对应查找macoui字典中的网卡类型,并根据网卡类型相应做如下处理:

(1)自有型:则填充macoui字典中的设备厂商==该样本的设备厂商,返回。

(2)第三方独用型网卡:则填充macoui字典中的设备厂商==该样本的设备厂商,返回。

(3)第三方共用型网卡:返回。

步骤3.4:没有m.abc相同的字段,说明为新发现的mac字段样本,根据步骤1和2更新“macoui字典”和“mac区间字典”,并返回。

步骤4:后处理

步骤4.1:标记样本集和mac区间字典的更新。

当有新的标记样本加入标记样本集,则根据情况做如下相应处理。

(1)如果该新加入样本的mac地址落在mac区间字典的某个区间样本的起始和结束mac地址范围内,则置信度字段值加1,返回。

(2)如果该新加入样本的mac地址没有落在mac区间字典的任何区间样本的mac地址范围内,且mac区间字典中有与该样本mac地址具有相同m.abc字段的区间记录,则根据步骤3.2计算该样本与该区间记录的mac距离。如果该距离小于最大mac距离门限、且该样本的标记字段值与该区间记录的标记字段值相同,则将该标记字段的起始macei字段(当样本的macei字段值小于起始macei字段)或结束macei字段(当样本的macei字段值大于结束macei字段)更新为该样本的macei字段,并将置信度字段值加1(如果该样本mac地址小于该区间记录的结束macei字段),返回。

(3)否则,在mac区间字典中增加一条新的mac区间记录,{m.abc,bm.d,bm.e,bm.f}置为该新样本的mac地址,{em.d,em.e,em.f}={bm.d,bm.e,bm.f},{设备类型,设备厂商,设备型号}置为该新样本的相应字段,置信度置为1。

步骤4.2:macoui字典的更新。

对新加入的标记样本,根据其m.abc字段按如下条件进行判断处理:

(1)条件1:如果新样本的m.abc字段=macoui字典中某oui记录的m.abc字段,且新样本的“设备厂商”=该oui记录的“设备厂商”,则返回;

(2)条件2:如果新样本的m.abc字段=macoui字典中某oui记录的m.abc字段,且新样本的“设备厂商”≠该oui记录的“设备厂商”,则该oui记录的“网卡类型”=“第三方共用型网卡”,返回。

(3)条件3:如果新样本的m.abc字段在macoui字典没有匹配到相同的m.abc字段记录,且新样本的“网卡厂商”=“设备厂商”,则在macoui字典中增加该样本为新的oui记录,且网卡类型=“自有型”;否则,网卡类型=“第三方独有型网卡”,返回。

输出:

(1)处理后的未知样本集;

(2)更新后的mac区间字典;

(3)更新后的macoui字典。

附图说明

图1为本发明的完整的算法流程图。

具体实施方式

本发明所述的网络设备信息的智能标记方法,其具体步骤如下:

输入:标记样本集,未知样本集。

将包括6个字段共48bit的设备mac地址表示为m={m.a,m.b,m.c,m.d,m.e,m.f},通常用16进制表示。其中前3个字段{m.a,m.b,m.c}由国际组织ieee的注册管理机构给不同厂家分配,也可表示为m.abc(比如:0x60:21:01),称为“组织唯一标志符(oui)”,后3个字段由厂家自己分配,称为“扩展标识符(ei)”。则:

(1)标记样本集(每个样本对应某台具体的支持wlan协议的网络设备,如路由器)包括如下8个字段:m.abc(设备wlan网卡mac地址的前3个字段),m.d,m.e,m.f,网卡厂商,设备类型(tod,标记项,必选),设备厂商(vod,标记项,必选),设备型号(mod,标记项,可选)。

一般可通过人工标记或自动标记等方式得到上述样本。这里的网络设备是指具有wlan联网功能的设备,如路由器、智能手机、网络机顶盒、智能冰箱、智能窗帘等。网卡厂商字段通常可以根据m.abc查表得到。

(2)未知样本集包括所有未知样本。未知样本是指包括如下字段、但其中的标记字段为空的样本,即:m.abc,m.d,m.e,m.f,网卡厂商,设备类型(空),设备厂商(空),设备型号(空),标记置信度(空)。

注1:样本集中的样本按照mac地址的各字段升序排列。mac地址值最小的排在最前面。

注2:mac地址值的大小是指将两个mac地址s1={m1.a,m1.b,m1.c,m1.d,m1.e,m1.f}和s2={m2.a,m2.b,m2.c,m2.d,m2.e,m2.f}的各字段(m.a~m.f)从最高位字段(即m.a字段)到最低位字段(即m.f字段)进行逐个比较的时候,如果该字段上s1的值小于或大于s2的值,则称s1的mac地址值为小或大,否则继续进行下一个字段的比较,直到最低位字段。

步骤1:构建“macoui字典”

根据标记样本集的字段【m.abc,网卡厂商,设备厂商】,统计汇总得到“macoui字典”。该字典包括如下字段:【m.abc,网卡厂商,网卡类型,{设备厂商}】。对同一个m.abc字段的所有标记样本,根据如下3个条件进行判断处理:

(1)条件1:如果网卡厂商=设备厂商,则网卡类型=“自有型”;

(2)条件2:如果网卡厂商≠设备厂商,且该网卡厂商下不同的设备厂商数量不超过1个,则网卡类型=“第三方独用型网卡”;

(3)条件3:如果网卡厂商≠设备厂商,且该网卡厂商下不同的设备厂商数量超过1个,则网卡类型=“第三方共用型网卡”,“设备厂商”={同一m.abc字段下的所有设备厂商}。

步骤2:构建“mac区间字典”

根据标记样本集可以统计汇总得到“mac区间字典”。该字典的字段包括:【m.abc,bm.d,bm.e,bm.f,em.d,em.e,em.f,设备类型,设备厂商,设备型号(可选),区间置信度】。

其中,{bm.d,bm.e,bm.f}为该记录对应设备厂商或设备型号的起始macei字段,{em.d,em.e,em.f}为对应设备厂商或设备型号的结束macei字段。区间置信度是该区间记录对应的mac区间内的标记样本数。

对m.abc相同的样本,对设备类型/设备厂商/设备型号字段完全相同的连续样本集合,取该连续样本集合的mac地址最小值(即集合的第一个样本)的{m.d,m.e,m.f}字段,记为{bm.d,bm.e,bm.f},取该连续样本集合的mac地址最大值(即集合的最后一个样本)的{m.d,m.e,m.f}字段,记为{em.d,em.e,em.f}。如果连续样本集合的样本数量为1,则{bm.d,bm.e,bm.f}=={em.d,em.e,em.f}。

步骤3:mac字段匹配

对未知样本集中的每个样本,进行mac字段匹配。具体步骤包括:

步骤3.1:在mac区间字典中寻找与未知样本mac地址m.abc字段相同的记录,如果有,则对具有相同m.abc字段的记录,逐个记录对比未知样本的ei字段(即m.d~m.f字段)和mac区间记录中的起始macei字段、结束macei字段,看是否该未知样本的mac值落在该记录的mac地址区间内。如果是,则将该区间记录的相应的非空的设备信息(设备类型/设备厂商/设备型号)填充到未知样本的对应标记字段,“标记置信度”=“区间置信度”,返回。

步骤3.2:否则,计算未知样本与各mac区间字段距离:仅在m.abc相同的情况下计算距离。计算未知样本与各mac区间记录的mac距离(根据下面的公式1),取距离值最小且不超过最大mac距离(可设为5个m.d字段容量,即5*256*256=327680)的mac区间记录为匹配项,将该记录相应的非空的设备信息字段值(设备类型/设备厂商/设备型号)填充到未知样本的对应标记字段,“标记置信度”=“区间置信度”,结束。

注1:如果未知样本mac地址ei字段小于mac区间记录中的起始macei字段,则计算未知样本与mac区间记录的起始macei字段的mac距离;如果未知样本mac地址ei字段大于mac区间记录中的结束macei字段,则计算计算未知样本与mac区间记录的结束macei字段的mac距离。

注2:mac距离的定义。对两个mac地址x={xm.abc,xm.d,xm.e,xm.f}和y={ym.abc,ym.d,ym.e,ym.f},其中xm.abc=ym.abc,则x和y的mac距离定义为:

d_mac(x,y)=abs[(ym.d-xm.d)*256*256+(ym.e-xm.e)*256+(ym.f-xm.f)]

(公式1)

步骤3.3:最大mac距离保护。

如果距离最近的mac字段超过设定的最大mac距离门限值,则根据该未知样本的m.abc字段对应查找macoui字典中的网卡类型,并根据网卡类型相应做如下处理:

(1)自有型:则填充macoui字典中的设备厂商==该样本的设备厂商,返回。

(2)第三方独用型网卡:则填充macoui字典中的设备厂商==该样本的设备厂商,返回。

(3)第三方共用型网卡:返回。

示例:

mac区间字典中包含如下两个记录:

(1)记录1:{60:21:01,1c,57,75,1e,1a,e1,1(智能手机),oppo,r11t,538};

(2)记录2:{60:21:01,1e,9a,63,20,2f,53,1(智能手机),oppo,a57,126};

未知样本集中的如下3条记录:

(a)样本a={60:21:01,1c,fb,51,null,null,null,null};

(b)样本b={60:21:01,1f,ee,41,null,null,null,null};

(c)样本c={60:21:01,1e,29,23,null,null,null,null};

根据上述原则,可以分别得到:

(1)样本a匹配到的mac区间记录为记录1,则其对应的设备类型/设备厂商/设备型号/置信度字段分别为:{1,oppo,r11t,538};

(2)样本b匹配到的mac区间记录为记录2,则其对应的设备类型/设备厂商/设备型号/置信度字段分别为:{1,oppo,a57,126};

(3)样本c没有匹配的mac区间,但与记录1和2的m.abc字段相同,计算该未知样本mac地址与记录1的结束macei字段和记录2的起始macei字段的mac距离分别为3714、28992,即匹配为记录1,则其对应的设备类型/设备厂商/设备型号/置信度字段分别为:{1,oppo,r11t,538}。

步骤3.4:没有m.abc相同的字段,说明为新发现的mac字段样本,根据步骤1和2更新“macoui字典”和“mac区间字典”,并返回。

步骤4:后处理

步骤4.1:标记样本集和mac区间字典的更新。

当有新的标记样本加入标记样本集,则根据情况做如下相应处理。

(1)如果该新加入样本的mac地址落在mac区间字典的某个区间样本的起始和结束mac地址范围内,则置信度字段值加1,返回。

(2)如果该新加入样本的mac地址没有落在mac区间字典的任何区间样本的mac地址范围内,且mac区间字典中有与该样本mac地址具有相同m.abc字段的区间记录,则根据步骤3.2计算该样本与该区间记录的mac距离。如果该距离小于最大mac距离门限、且该样本的标记字段值与该区间记录的标记字段值相同,则将该标记字段的起始macei字段(当样本的macei字段值小于起始macei字段)或结束macei字段(当样本的macei字段值大于结束macei字段)更新为该样本的macei字段,并将置信度字段值加1(如果该样本mac地址小于该区间记录的结束macei字段),返回。

(3)否则,在mac区间字典中增加一条新的mac区间记录,{m.abc,bm.d,bm.e,bm.f}置为该新样本的mac地址,{em.d,em.e,em.f}={bm.d,bm.e,bm.f},{设备类型,设备厂商,设备型号}置为该新样本的相应字段,置信度置为1。

步骤4.2:macoui字典的更新。

对新加入的标记样本,根据其m.abc字段按如下条件进行判断处理:

(1)条件1:如果新样本的m.abc字段=macoui字典中某oui记录的m.abc字段,且新样本的“设备厂商”=该oui记录的“设备厂商”,则返回;

(2)条件2:如果新样本的m.abc字段=macoui字典中某oui记录的m.abc字段,且新样本的“设备厂商”≠该oui记录的“设备厂商”,则该oui记录的“网卡类型”=“第三方共用型网卡”,返回。

(3)条件3:如果新样本的m.abc字段在macoui字典没有匹配到相同的m.abc字段记录,且新样本的“网卡厂商”=“设备厂商”,则在macoui字典中增加该样本为新的oui记录,且网卡类型=“自有型”;否则,网卡类型=“第三方独有型网卡”,返回。

输出:

(1)处理后的未知样本集;

(2)更新后的mac区间字典;

(3)更新后的macoui字典。

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