一种网络寻址方法、设备和装置与流程

文档序号:14253224阅读:231来源:国知局
一种网络寻址方法、设备和装置与流程

【技术领域】

本发明涉及计算机应用技术领域,特别涉及一种网络寻址方法、设备和装置。



背景技术:

随着物联网的不断发展,数以亿计的设备需要接入网络。如果采用传统的互联网协议(ip)进行寻址,一方面面临ip地址枯竭的问题,另一方面ip路由的计算能力面临巨大压力。因此,亟需一种新型的、适合于互联网的寻址方式,从而应对数以亿计的物联网设备接入网络。



技术实现要素:

有鉴于此,本发明提供了一种网络寻址方法、设备和装置,用以应对数以亿计的物联网设备接入网络。

具体技术方案如下:

本发明提供了一种网络寻址方法,该方法包括:

第一网络中作为父节点的各节点分别记录有下级节点树结构以及节点树中各节点的唯一标识信息,作为子节点的各节点分别记录有父节点的唯一标识信息;

消息的源节点或接收到消息的节点依据该消息的目的节点标识信息,判断自身是否为该消息的目的节点,如果是,则结束本次寻址流程;

否则,判断该消息的目的节点是否属于该节点的下级节点树,如果是,将该消息转发给能够到达所述目的节点的子节点;否则将该消息转发给父节点或与其连接的第二网络。

根据本发明一优选实施方式,该方法还包括:

请求加入第一网络的节点从所述第一网络中确定一个节点作为父节点。

根据本发明一优选实施方式,所述请求加入第一网络的节点从所述第一网络中确定一个节点作为父节点包括:

所述请求加入第一网络的节点对所述第一网络中的各节点进行扫描;

向其中一个扫描到的节点发送加入请求;

若接收到确认加入的响应报文,则将发送该响应报文的节点作为父节点;否则选其他一个扫描到的节点继续发送加入请求,直至接收到确认加入的响应报文。

根据本发明一优选实施方式,所述向其中一个扫描到的节点发送加入请求包括:

优先能力最强的节点发送加入请求;或者,

任意选择一个扫描到的节点发送加入请求;或者,

按照距离,优选选择距离近的节点发送加入请求;或者,

向用户从扫描到的节点中选择的节点发送加入请求。

根据本发明一优选实施方式,所述请求加入第一网络的节点对所述第一网络中的各节点进行扫描包括:

所述请求加入第一网络的节点侦听所述第一网络中的各节点发送的广播消息;

依据侦听到的广播消息所包含的节点的唯一标识信息,得到扫描得到的各节点。

根据本发明一优选实施方式,该方法还包括:

接收到所述加入请求的节点依据自身状态确定是否能够接受新的子节点,如果是,则返回确认加入的响应报文;否则,不做响应或者返回拒绝加入的响应报文。

根据本发明一优选实施方式,该方法还包括:

接收到所述加入请求的节点从所述加入请求中获取请求加入第一网络的节点的唯一标识信息;

利用所述请求加入第一网络的节点的唯一标识信息,对所述请求加入第一网络的节点进行身份认证,如果认证通过,则返回确认加入的响应报文;否则,不做响应或者返回拒绝加入的响应报文。

根据本发明一优选实施方式,利用所述请求加入第一网络的节点的唯一标识信息,对所述请求加入第一网络的节点进行身份认证包括:

将所述请求加入第一网络的节点的唯一标识信息上报给认证设备;

获取所述认证设备返回的认证结果。

根据本发明一优选实施方式,获取所述认证设备返回的认证结果包括:

接收所述认证设备返回的第一校验信息,并将所述第一校验信息发送给所述请求加入第一网络的节点;

接收所述请求加入第一网络的节点利用私钥解密后得到的第二校验信息,将所述第二校验信息发送给所述认证设备;

接收所述认证设备针对所述第二校验信息返回的认证结果。

根据本发明一优选实施方式,获取所述认证设备返回的认证结果包括:

获取所述认证设备认证所述请求加入第一网络的节点的唯一标识信息是否属于合法的唯一标识信息后返回的认证结果。

根据本发明一优选实施方式,所述请求加入第一网络的节点从所述第一网络中确定一个节点作为父节点包括:

依据人工配置的父节点信息,确定所述请求加入第一网络的节点的父节点;或者,

依据网络连接拓扑,确定与所述请求加入第一网络的节点存在有线连接的节点作为父节点;或者,

提供包含所述请求加入第一网络的节点的唯一标识信息的信息码,扫描所述信息码的节点作为父节点。

根据本发明一优选实施方式,该方法还包括:

添加了新的子节点的节点更新记录的下级节点树,并将更新后的下级节点树信息上报给父节点。

根据本发明一优选实施方式,该方法还包括:

所述第一网络中的各节点周期性地向父节点上报记录的下级节点树结构以及节点树中各节点的唯一标识自信息。

根据本发明一优选实施方式,该方法还包括:

父节点对新加入的子节点发送第一网络的网络密钥和/或时间校准信息。

根据本发明一优选实施方式,所述消息的源节点发送的消息为利用所述第一网络的网络密钥加密后的消息;

接收到消息的节点若将该消息转发给与其连接的第二网络,则利用所述第一网络的网络密钥对该消息进行解密后,利用所述第二网络的网络密钥进行加密后发送给与其连接的第二网络。

根据本发明一优选实施方式,接收到消息的节点若将该消息转发给与其连接的第二网络,则利用所述第二网络采用的协议对该消息进行封装,将封装后的消息发送给与其连接的第二网络;

连接第二网络的节点若接收到来自第二网络的消息,则利用所述第二网络采用的协议对该消息进行解封装。

根据本发明一优选实施方式,若所述第二网络为ip网络,则利用所述第二网络采用的协议对该消息进行封装包括:

将所述消息进行ip封装,其中源ip地址为所述接收到消息的节点的ip地址,目的ip地址为所述第一网络的服务器端ip地址。

根据本发明一优选实施方式,该方法还包括:

所述第一网络中的节点若从与其连接的第二网络接收到消息,则对接收到的消息进行解封装后,转至执行所述依据该消息的目的节点标识信息,判断自身是否为该消息的目的节点的步骤。

根据本发明一优选实施方式,该方法还包括:

若第一网络中的节点检测到父节点出现故障,则重新从所述第一网络中确定一个节点作为父节点。

根据本发明一优选实施方式,该方法还包括:

若第一网络中的节点检测到子节点出现故障,则更新记录的下级节点树结构,并将出现故障的子节点的唯一标识信息从节点树中删除。

根据本发明一优选实施方式,该方法还包括:

若检测到第一网络中与第二网络连接的节点出现故障,则由管理员重新指定与所述第二网络连接的节点,或者由第一网络中的各节点重新协商出与所述第二网络连接的节点。

根据本发明一优选实施方式,由第一网络中的各节点重新协商出与所述第二网络连接的节点包括:

第一网络中的各节点在第一网络中广播包含自身能力信息的协商报文;

依据协商报文中携带的能力信息,能力最强的节点作为与所述第二网络连接的节点。

根据本发明一优选实施方式,所述能力最强包括:

硬件配置最高、信号强度最强或者资源占用率最低。

根据本发明一优选实施方式,该方法还包括:

在所述第一网络中,父节点和子节点之间周期性发送心跳报文以检测对方是否发生故障。

根据本发明一优选实施方式,所述节点的唯一标识信息由标识服务器统一分配并在所述节点的出厂阶段被写入所述节点中的安全存储区域。

本发明还提供了一种设备,包括

存储器,包括一个或者多个程序;

一个或者多个处理器,耦合到所述存储器,执行所述一个或者多个程序,以实现以下操作:

该设备作为父节点时,记录有下级节点树结构以及节点树中各节点的唯一标识信息,作为子节点时记录有父节点的唯一标识信息;

该设备作为消息的源节点或接收到消息的节点时,依据该消息的目的节点标识信息,判断自身是否为该消息的目的节点,如果是,则结束本次寻址流程;

否则,判断该消息的目的节点是否属于该节点的下级节点树,如果是,将该消息转发给能够到达所述目的节点的子节点;否则将该消息转发给父节点或与其连接的第二网络。

本发明还提供了一种网络寻址装置,该装置包括:

记录单元,用于在该装置所在设备作为第一网络中的父节点时,记录下级节点树结构以及节点数中各节点的唯一标识信息;该装置所在设备作为子节点时,记录父节点的唯一标识信息;

第一判断单元,用于在该装置所在设备作为消息的源节点或接收到消息的节点时,依据该消息的目的节点标识信息,判断该装置所在设备是否为该消息的目的节点,如果是,则结束本次寻址流程;

第二判断单元,用于在所述第一判断单元的判断结果为否时,判断该消息的目的节点是否属于所述记录单元记录的下级节点树;

发送单元,用于在所述第二判断单元的判断结果为是时,将该消息转发给能够到达所述目的节点的子节点;否则将该消息转发给父节点或与该装置所在设备连接的第二网络。

由以上技术方案可以看出,本发明提供了一种新型的网络寻址方式,该网络寻址方式基于节点的唯一标识信息,且各节点仅需要维护父节点以及下级节点树的信息就可以实现整个网络以及跨网络的寻址。一方面不会出现地址枯竭的问题,另一方面寻址方式简单,计算压力大大降低,能够很好地应对数以亿计的物联网设备接入网络。

【附图说明】

图1为本发明实施例提供的寻址方法的主要流程图;

图2为本发明实施例提供的设备加入网络的方法流程图;

图3a为本发明实施例提供的设备加入网络的实例图;

图3b为本发明实施例提供的跨网络消息转发的实例图;

图3c为本发明实施例提供的另一种跨网络消息转发的实例图;

图4为本发明实施例提供的装置结构图;

图5为本发明实施例提供的设备结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

在本发明实施例中,采用设备的唯一标识信息作为设备的网络地址,网络中的各设备之间采用父子关系构成的节点树的结构。其中,对于父节点而言,记录有其下级节点数结构以及节点数中各节点的唯一标识信息。对于子节点而言,分别记录有其父节点的唯一标识信息。也就是说,节点需要“知晓”自己的父节点是谁,如果存在子节点,则也需要“知晓”隶属于自己的所有节点都是谁。在这样一种结构的基础上,通过设备的唯一标识信息实现寻址。

设备的唯一标识信息可以采用但不限于:imei、uuid等等。作为一种优选的实施方式,设备的唯一标识信息可以由标识服务器分配,并提供给设备,例如在设备的出厂阶段写入设备。出于对设备唯一标识信息安全性的考虑,设备的唯一标识信息可以存储于安全环境,例如安全存储区域,从而保证id信息不被篡改,例如烧录在安全芯片中。在本发明的后续实施例中均以该种设备的唯一标识信息(表示为id2)进行描述。

图1为本发明实施例提供的寻址方法的主要流程图,寻址实际上就是实现消息从源节点开始在网络中的转发,直至目的节点。如图1所示,第一网络中消息的源节点和接收到消息的节点均执行以下流程:

在101中,依据该消息的目的节点标识信息,判断自身是否为该消息的目的节点,如果是,在102中,结束本次寻址流程;否则,执行103。

在本发明实施例中,在第一网络中发送的消息也包含源地址和目的地址,但与现有技术中ip地址不同的是,本发明实施例中消息的源地址为消息源节点的id2,目的地址为消息的目的节点的id2

对于消息源节点而言,因为不排除消息发送给自己的情况,因此也会执行自身是否为该消息的目的节点的判断。如果第一网络中的节点接收到消息后,确定自己就是该消息的目的节点,即目的节点的唯一标识信息就是自己的id2,则本次寻址结束;否则需要继续进行消息的转发,即继续寻址。

在103中,判断该消息的目的节点是否属于该节点的下级节点树,如果是,则执行104;否则,执行105。

无论是消息的源节点还是接收到消息的节点而言,通过查询记录的下级节点树,可以判断消息的目的节点是否属于下级节点树以及目的节点在节点树中的路径。

在104中,将该消息转发给能够到达目的节点的子节点,然后由接收到消息的节点再执行102。

如果消息的目的节点属于下级节点树,说明需要向下级转发,可以依据目的节点在节点树中的路径将消息转发至对应的子节点,该子节点在该路径中。接收到消息的节点再执行102,直至转发至目的节点。

在105中,将该消息转发给父节点或与其连接的第二网络,接收到消息的父节点再执行102。

如果消息的目的节点不属于下级节点树,则说明该消息并不应该向下级转发,在本发明实施例中,消息仅需要转发至其父节点即可。如果该节点在第一网络中已经不存在父节点,而是该节点与第二网络相连,那么这种情况,我们将该节点称为第一网络的“根节点”。那么对于这种情况,节点就需要将消息转发至第二网络。

上述第二网络与第一网络可以是同一种类型的两个子网络,也可以是不同类型的网络,后续会分别举例说明。

上述寻址过程是以构建第一网络为基础的,即会存在有新的设备加入第一网络,或者有设备离开第一网络,甚至有设备故障等等情况。下面对这些过程进行详述。

图2为本发明实施例提供的设备加入网络的方法流程图,设备加入第一网络实际上就是从第一网络中的节点中选择一个作为父节点。如果第一网络是有线网络,则可能网络拓扑结构就决定了与其连接的节点就是父节点。但如果第一网络是无线网络,那么该“选择”实际上是一个双向的过程,图2就是针对第一网络是无线网络,或者第一网络是有线的环形网络的情况。如图2所示,该方法可以包括以下流程:

在201中,请求加入第一网络的节点对第一网络中的各节点进行扫描。

本步骤中进行扫描实际上就是对第一网络中各节点发送的广播消息进行侦听,在第一网络中各节点可以定时发送广播消息,该广播消息中可以携带本节点的id2,还可以进一步包含本节点的能力信息、位置信息等等。对于侦听到发送广播消息的节点就是扫描到的节点。

在202中,向其中一个扫描到的节点发送加入请求。

本步骤中,可以采用但不限于以下几种方式:

第一种方式:优先选择能力最强的节点发送加入请求,其中能力最强可以是硬件配置最高、信号强度最好、资源利用率最低等等。

第二种方式:选择距离最近的节点发送加入请求。上面已经提到广播消息中还可以包括节点的位置信息,那么请求加入第一网络的节点可以依据位置信息确定各节点与本节点的距离,然后优先选择距离最近的节点发送加入请求。

第三种方式:任意选择一个扫描到的节点发送加入请求。

第四种方式:可以向用户展现扫描到的设备列表,然后由用户从中选择一个设备,向用户选择的设备发送加入请求。

在203中,接收到加入请求的节点依据加入请求携带的节点的id2,对请求加入第一网络的节点进行认证;如果认证通过,则执行204;否则,在205中,返回拒绝加入的响应报文或者不发送响应报文。

在本步骤中,接收到加入请求的节点可以将加入请求携带的id2上报给认证设备,从认证设备获取认证结果。

具体地,依据id2进行认证的过程可以采用但不限于以下两种:

第一种方式,认证设备接收到id2后,判断该id2是否为合法的id2,如果是,则认为认证通过;否则认证失败。其中认证设备可以预先从标识服务器获取合法id2列表,通过该id2列表来判断接收到的id2是否属于合法的id2

第二种方式,认证设备接收到id2后,确定id2对应的设备公钥,利用该设备公钥对校验信息进行加密后,形成第一校验信息返回给接收到加入请求的节点。接收到加入请求的节点将该第一校验信息返回给请求加入第一网络的节点。第一网络的节点利用本节点的设备私钥对第一校验信息进行解密后,得到第二校验信息并返回给接收到加入请求的节点。接收到加入请求的节点将该第二校验信息发送给认证设备。认证设备对该第二校验信息进行验证,如果正确,则认证通过;否则认证失败。

其中,设备在出厂时除了在安全存储区域写入id2之外,还写入了设备私钥,该设备私钥与在认证设备端存储的id2对应的设备私钥互为一对密钥。认证设备可以利用设备公钥加密校验信息后,由请求加入第一网络的设备进行解密,认证设备对解密后的校验信息进行验证,从而确定请求加入第一网路的设备是否合法。这一认证方式相比较第一种认证方式更加可靠,能够有效防止id2被盗用的风险。

另外,上述两种认证方式也可以结合起来使用,同时进行两种认证,只有两种认证方式都通过,才算认证通过。

在204中,接收到加入请求的节点依据自身状况,确定是否能够接受新的子节点,如果是,执行206;否则,执行205。

本步骤中,接收到加入请求的节点可以根据自身的资源使用情况,来确定是否接受新的子节点。或者也可以由用户介入,由用户选择是否接受新的子节点。

需要说明的是,上述203的认证处理和204的执行顺序是本发明实施例提供的一种执行顺序,也可以先执行204,在确定能够接受新的子节点时,再执行203。或者,也可以同时执行,只有认证通过并且自身状况能够接受新的子节点,才会执行206;否则,均执行205。

在206中,添加了新的子节点的节点将该请求加入第一网络的节点添加至记录的下级节点树中,并将更新后的下级节点树信息上报给父节点。

对于第一网络中的节点而言,每次更新记录的下级节点树都会向父节点进行上报,父节点接收到上报的下级节点树信息后,也会对自己记录的下级节点树进行更新,更新后再上报父节点,直至第一网络的根节点。

另外,第一网络中的节点也可以周期性的对本节点记录的下级节点树信息进行上报,接收到子节点发送的下级节点树信息后,会和自己记录的下级节点树信息进行比较,如果需要更新,就利用接收到的下级节点树信息更新本节点记录的下级节点树信息。

在207中,请求加入第一网络的节点接收到确认加入的响应报文后,将发送该响应报文的节点作为父节点,在本节点记录父节点信息。

上述步骤206和步骤207的执行顺序是本发明实施例提供的一种执行顺序,但并不限于此,也可以先执行207再执行206,或者207和206同时执行。

在上述205之后,请求加入第一网络的节点接收到拒绝加入的响应报文,或者未接收到响应报文,则选其他一个扫描到的节点继续发送加入请求。

在上述流程中,父节点还可以进一步对新加入的子节点发送第一网络的网络密钥和/或时间校准信息。其中时间校准信息用于统一第一网络中各节点的时钟。网络密钥可以用于消息源节点对要发送的消息进行加密,从而保证其在第一网络中的传输安全性。

除了图2中所示的方式来确定父节点之外,还可以采用其他方式,例如人工配置父节点信息,请求加入第一网络的节点依据该人工配置的信息向父节点发送加入请求。再例如,每个设备上可以提供一个包含该设备id2的信息码,例如二维码、条形码等,该信息码可供其他设备进行扫描。若手机等具有信息码扫描功能的设备是已经加入第一网络的节点,用户可以通过手机扫描请求加入第一网络的节点上的信息码,获取其中的id2,并向请求加入第一网络的节点回复确认加入第一网络的响应报文,该响应报文中携带手机的id2。这样,手机就是请求加入第一网络的节点的父节点。

下面针对图2所示流程举一个例子,假设第一网络如图3a中所示节点构成,其中云端服务器为该第一网络的根节点。若有一个新的节点a1上电后需要加入第一网络,则该节点a1对第一网络中的各节点进行扫描,即监听各节点发送的广播消息,假设该广播消息中包含各节点的id2以及能力信息。扫描得到一个列表,包含第一网络中的各节点。节点a1依据能力高低,假设选择节点c1发送加入请求。节点c1接收到该加入请求后,利用加入请求中携带的节点a1的id2进行认证,若认证通过且自身的能力状况可以接受新的子节点,则向节点a1返回确认加入的响应报文,将该节点a1的id2加入下级节点树中。节点a1就确认节点c1为父节点,记录该父节点的id2。另外,由于节点c1更新了下级节点树,因此节点c1会将更新后的下级节点树信息上报给节点f1,节点f1利用接收到的下级节点树信息更新本地记录的下级节点树信息,然后再将更新后的下级节点树信息上报根节点,即云端服务器,以供云端服务器更新记录的下级节点树信息。至此,节点a1完成了第一网络的加入。

对于与第二网络连接的节点而言,实际上就是第一网络的根节点。本发明实施例涉及的根节点主要包括两种:

第一种根节点可以是在云端部署的服务器(一个服务器或者由多个服务器构成的服务器集群),由于服务器通常在网络创建时第一个被部署,因此将其作为根节点。这种情形下的根节点可能会存在这样的情况,云端的服务器连接多个相同类型的子网络,这些子网络所谓相同类型指的是都采用本发明实施例所提供的方式进行组网和寻址。如图3b中所示,云端服务器连接第一网络和第二网络,第一网络和第二网络都采用本发明实施例所提供的方式进行组网和寻址,但两者是不同的子网络,采用不同的网络密钥。那么云端服务器实际上即是第一网络的根节点,也是第二网络的根节点。

那么在云端服务器上既记录有第一网络的节点树信息,也记录有第二网络的节点信息。对于跨网络的消息通过云端服务器就可以实现转发。例如图3b中所示,第一网络的节点a1要发送消息至第二网络的节点b2,则节点a1将消息利用第一网络的网络密钥进行加密后发送给节点c1。节点c1判断目的节点的标识不在记录的节点树中,将该消息转发给节点f1。节点f1继续转发至云端服务器。云端服务器根据本地记录的节点树,判断目的节点在第二网络中,因此需要将消息转发给节点d2。但作为第一网络的根节点,由于它会将消息转发给第二网络,因此云端服务器会利用第一网络的网络密钥对消息进行解密,然后再利用第二网络的密钥对消息进行加密后转发给节点d2。节点d2依据本地记录的节点树,将消息转发给节点b2。至此寻址结束。

第二种根节点可以是与其他网络类型的第二网络连接的节点。例如采用本发明实施例提供的组网和寻址方式的第一网络与采用ip组网和寻址方式的第二网络对接,那么第一网络中与第二网络连接的节点就是根节点。这种情况下,如果实现跨网络的消息转发,根节点需要对转发给第二网络的消息进行封装,即利用第二网络采用的协议对该消息进行封装。对于从第二网络转发来的消息,则需要进行解封装。

下面举一个例子,如图3c中所示,假设第一网络和第三网络为采用本发明实施例所提供的组网和寻址方式的网络,第二网络是采用ip组网和寻址方式的网络。若第一网络中的节点f1接入第二网络。若节点a1要发送消息至节点a3,那么该消息途径节点c1至节点f1。节点f1将该消息进行ip封装,封装的源ip地址为节点f1的ip地址,目的地址为云端服务器的ip地址。封装后转发给节点b2。由于第二网络是采用ip寻址方式,因此会依据目的ip地址将该报文转发至云端服务器。云端服务器接收到该消息后,对该消息进行解封装,得到消息的目的节点为节点a3,则将该消息转发至第三网络中的节点b3,由节点b3发送给节点a3。

可见上述过程中,对于第一网络而言,仅需要接入ip网络的节点具有ip地址即可,并且对于ip网络并不会造成任何影响,能够很好的兼容和对接。

另外,通过本发明实施例提供的组网和寻址方式的第一网络中,父节点和子节点之间可以周期性地发送心跳报文以检测对方是否发生故障。如果父节点检测到子节点出现故障,则更新记录的下级节点树结构,并将出现故障的子节点的id2从节点树中删除。更新后逐级上报,使得各上级节点均能够将故障节点从记录的节点树中删除。

若子节点检测到父节点出现故障,则重新从第一网络中确定一个节点作为其父节点,即重新执行一遍加入网络的过程。

还有一种情况,即检测到第一网络中与第二网络连接的节点出现故障,即根节点故障,这种情况下可以由管理员重新指定根节点,或者由第一网络中的各节点重新协商出一个根节点。

在协商根节点时,第一网络中的各节点可以广播包含自身能力信息的协商报文。然后各节点可以依据协商报文中携带的能力信息,将能力最强的节点连接第二网络。例如,各节点均将自身能力与协商报文中携带的能力进行比较,如果自身能力大于所有协商报文所携带的能力信息,则作为连接第二网络的节点。其中,能力最强可以是硬件配置最高、信号强度最强或者资源占用率最低,等等。

以上是对本发明提供的方法进行的描述,下面对本发明提供的寻址装置进行描述。图4为本发明实施例提供的装置结构图,该装置设置于设备中,在加入第一网络后作为第一网络中的节点实现上述实施例中的寻址。如图4所示,该装置可以包括:记录单元01、第一判断单元02、第二判断单元03和发送单元04,还可以包括:网络加入单元05、加入控制单元06、接收单元07、故障检测单元08和协商单元09。其中各组成单元的主要功能如下:

记录单元01负责在该装置所在设备作为第一网络中的父节点时,记录下级节点树结构以及节点数中各节点的唯一标识信息;该装置所在设备作为子节点时,记录父节点的唯一标识信息。

第一判断单元02负责在该装置所在设备作为消息的源节点或接收到消息的节点时,依据该消息的目的节点标识信息,判断该装置所在设备是否为该消息的目的节点,如果是,则结束本次寻址流程。

第二判断单元03负责在第一判断单元02的判断结果为否时,判断该消息的目的节点是否属于记录单元01记录的下级节点树。

发送单元04负责在第二判断单元03的判断结果为是时,将该消息转发给能够到达目的节点的子节点;否则将该消息转发给父节点或与该装置所在设备连接的第二网络。

当该装置所在设备作为一个新的节点请求加入第一网络时,该节点加入第一网络的过程实际上就是从第一网络中确定一个节点作为其父节点的过程。对于有线网络而言,受网络连接拓扑的限制,父节点往往就是与其连接的节点。但对于环形网络,或者是无线网络而言,网络中的各级节点理论上是同等的,该父节点选择的过程是一个双向选择的过程。

网络加入单元05负责在该装置所在节点请求加入第一网络时,从所述第一网络中确定一个节点作为父节点。具体地,网络加入单元05可以对第一网络中的各节点进行扫描;向其中一个扫描到的节点发送加入请求;若接收到确认加入的响应报文,则将发送该响应报文的节点作为父节点;否则选其他一个扫描到的节点继续发送加入请求,直至接收到确认加入的响应报文。

其中,进行扫描实际上就是对第一网络中各节点发送的广播消息进行侦听,在第一网络中各节点可以定时发送广播消息,该广播消息中可以携带本节点的id2,还可以进一步包含本节点的能力信息、位置信息等等。对于侦听到发送广播消息的节点就是扫描到的节点。

具体地,向其中一个扫描到的节点发送加入请求可以采用但不限于以下几种方式:

第一种方式:优先选择能力最强的节点发送加入请求,其中能力最强可以是硬件配置最高、信号强度最好、资源利用率最低等等。

第二种方式:选择距离最近的节点发送加入请求。上面已经提到广播消息中还可以包括节点的位置信息,那么请求加入第一网络的节点可以依据位置信息确定各节点与本节点的距离,然后优先选择距离最近的节点发送加入请求。

第三种方式:任意选择一个扫描到的节点发送加入请求。

第四种方式:可以向用户展现扫描到的设备列表,然后由用户从中选择一个设备,向用户选择的设备发送加入请求。

加入控制单元06负责对请求加入的节点是否加入第一网络进行控制,也就是对是否将请求加入的节点作为自己的子节点进行控制。该控制主要包括两个方面:

第一个方面:加入控制单元06在接收单元07接收到加入请求后,依据自身状态确定是否能够接受新的子节点,如果是,则触发发送单元04返回确认加入的响应报文;否则,不做响应或者返回拒绝加入的响应报文。

第二个方面,加入控制单元06在接收单元07接收到加入请求后,从加入请求中获取请求加入第一网络的节点的id2,然后利用请求加入第一网络的节点的id2,对请求加入第一网络的节点进行身份认证,如果认证通过,则触发发送单元返回确认加入的响应报文;否则,不做响应或者返回拒绝加入的响应报文。

其中在对请求加入第一网络的节点进行身份认证时,可以将请求加入第一网络的节点的id2上报给认证设备;获取认证设备返回的认证结果。主要包括但不限于以下两种认证方式:

第一种方式:获取认证设备认证请求加入第一网络的节点的id2是否属于合法的唯一标识信息后返回的认证结果。其中,认证设备接收到id2后,判断该id2是否为合法的id2,如果是,则认为认证通过;否则认证失败。其中认证设备可以预先从标识服务器获取合法id2列表,通过该id2列表来判断接收到的id2是否属于合法的id2

第二种方式:接收认证设备返回的第一校验信息,并将第一校验信息发送给请求加入第一网络的节点;接收请求加入第一网络的节点利用设备私钥解密后得到的第二校验信息,将第二校验信息发送给认证设备;接收认证设备针对第二校验信息返回的认证结果。

即认证设备接收到id2后,确定id2对应的设备公钥,利用该设备公钥对校验信息进行加密后,形成第一校验信息返回给接收到加入请求的节点。接收到加入请求的节点将该第一校验信息返回给请求加入第一网络的节点。第一网络的节点利用本节点的设备私钥对第一校验信息进行解密后,得到第二校验信息并返回给接收到加入请求的节点。接收到加入请求的节点将该第二校验信息发送给认证设备。认证设备对该第二校验信息进行验证,如果正确,则认证通过;否则认证失败。

其中,设备在出厂时除了在安全存储区域写入id2之外,还写入了设备私钥,该设备私钥与在认证设备端存储的id2对应的设备私钥互为一对密钥。认证设备可以利用设备公钥加密校验信息后,由请求加入第一网络的设备进行解密,认证设备对解密后的校验信息进行验证,从而确定请求加入第一网路的设备是否合法。这一认证方式相比较第一种认证方式更加可靠,能够有效防止id2被盗用的风险。

另外,上述两种认证方式也可以结合起来使用,同时进行两种认证,只有两种认证方式都通过,才算认证通过。

当然除了上述确定父节点的方式之外,也可以由用户在扫描得到的第一网络的各节点中指定一个节点作为父节点。父节点是否接受新的子节点也可以由用户选择。

若加入控制单元06添加了新的子节点,则触发记录单元01更新记录的下级节点树,并将更新后的下级节点树信息上报给父节点。

另外,记录单元01也可以周期性地向父节点上报记录的下级节点树结构以及节点树中各节点的唯一标识自信息。

记录单元01如果接收到子节点上报来的下级节点树信息,则利用接收到的下级节点树信息更新记录的下级节点树信息。

加入控制单元06还可以用于触发发送单元04对新加入的子节点发送第一网络的网络密钥和/或时间校准信息。其中时间校准信息用于统一第一网络中各节点的时钟。网络密钥可以用于消息源节点对要发送的消息进行加密,从而保证其在第一网络中的传输安全性。

即发送单元04在该装置所在设备作为消息的源节点发送消息时,该消息是利用第一网络的网络密钥加密后的消息。发送单元04若将该消息转发给与该装置所在设备连接的第二网络,则利用第一网络的网络密钥对该消息进行解密后,利用第二网络的网络密钥进行加密后发送给第二网络。

对于第一网络和第二网络采用不同组网和寻址方式的情况,发送单元04将该消息转发给第二网络时,可以利用第二网络采用的协议对该消息进行封装,将封装后的消息发送给与其连接的第二网络。接收单元07若接收到来自第二网络的消息,则利用第二网络采用的协议对该消息进行解封装。

其中,若第二网络为ip网络,则将消息进行ip封装,其中源ip地址为接收到消息的节点的ip地址,目的ip地址为第一网络的服务器端ip地址。

另外,接收单元07若从与该装置所在设备连接的第二网络接收到消息,则对接收到的消息进行解封装后,触发第一判断单元02执行依据该消息的目的节点标识信息,判断自身是否为该消息的目的节点的步骤。

故障检测单元08负责检测父节点和/或子节点是否出现故障。可以采用诸如父节点和子节点之间互相发送心跳报文的方式,来检测对方是否出现故障。

若故障检测单元08检测到其父节点出现故障,则触发网络加入单元05重新从第一网络中确定一个节点作为其父节点。

若故障检测单元08检测到其子节点出现故障,则触发记录单元01更新记录的下级节点树结构,并将出现故障的子节点的唯一标识信息从节点树中删除。

若故障检测单元08检测到第一网络中与第二网络连接的节点出现故障,则由管理员重新指定与第二网络连接的节点,或者触发协商单元09在第一网络中重新协商出与第二网络连接的节点。

具体地,协商单元09可以在第一网络中广播包含自身能力信息的协商报文;依据接收到的协商报文中携带的能力信息,能力最强的节点作为与第二网络连接的节点。其中能力最强可以是硬件配置最高、信号强度最强或者资源占用率最低,等等。

本发明实施例提供的上述方法和装置可以以设置并运行于设备中的计算机程序体现。该设备可以包括一个或多个处理器,还包括存储器和一个或多个程序,如图5中所示。其中该一个或多个程序存储于存储器中,被上述一个或多个处理器执行以实现本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行的方法流程,可以包括:

该设备作为父节点时,记录有其下级节点树结构以及节点树中各节点的唯一标识信息,作为子节点时记录有其父节点的唯一标识信息;

该设备作为消息的源节点或接收到消息的节点时,依据该消息的目的节点标识信息,判断自身是否为该消息的目的节点,如果是,则结束本次寻址流程;

否则,判断该消息的目的节点是否属于该节点的下级节点树,如果是,将该消息转发给能够到达所述目的节点的子节点;否则将该消息转发给父节点或与其连接的第二网络。

本发明实施例涉及的第一网络中的节点可以是任意的物联网设备,包括但不限于诸如:物联网终端、物联网服务器、物联网的各种中间设备等等。其中物联网终端可以包括但不限于:智能移动终端、智能家居设备、可穿戴式设备、智能医疗设备、pc(个人计算机)等。其中智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、pda(个人数字助理)、互联网汽车等。智能家居设备可以包括智能家电设备,诸如智能电视、智能空调、智能热水器、智能冰箱、智能空气净化器等等,智能家居设备还可以包括智能门锁、智能插座、智能电灯、智能摄像头等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环、虚拟现实设备、增强现实设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。智能医疗设备可以包括诸如智能体温计、智能血压仪、智能血糖仪等等。物联网的各种中间设备可以包括但不限于交换机、无线ap等等。

下面列举一个具体的应用场景:

用户的各种智能家电设备可以进行组网,并接入物联网;另外,用户的智能汽车、手机等也可以接入物联网。智能家电设备中与ap连接的智能家电设备可以作为家庭局域网中的根节点,各智能家电设备采用图2中所示方式加入家庭局域网。若用户在上班时希望控制家中的某个智能家电设备,例如希望打开智能空调并设置好温度。就可以发送一条控制消息,该消息的目的节点标识就是智能空调的id2。这条消息通过图1中所示寻址方式,被转发至智能空调,从而实现对智能空调的远程控制。智能空调也可以将包含反馈信息的消息经过图1所示寻址方式发送给用户手机,该消息的目的节点标识就是手机的id2

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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