一种物联网中基于群体信任度的数据转发方法及装置与流程

文档序号:21846668发布日期:2020-08-14 17:07阅读:155来源:国知局
一种物联网中基于群体信任度的数据转发方法及装置与流程

本发明涉及物联网通信技术领域,特别是涉及一种物联网中基于群体信任度的数据转发方法及装置。



背景技术:

近年来,互联网连接设备数量的急剧增加和智能手机的迅速普及,使物联网服务更加灵活和快速。

然而,由于黑客攻击等因素,物联网中也存在一些恶意节点,若将数据转发至恶意节点,会导致数据传输中断,即数据无法到达目的节点。

因此,通过算法计算可信任节点,进而以可信任节点为中继节点来转发数据在物联网数据转发过程中是至关重要的。

现有的一些研究只是利用节点间的联系概率来确定下一跳节点。然而,采用这种方式仍有较大概率将数据转发到恶意节点。



技术实现要素:

本发明实施例的目的在于提供一种基于群体信任度的数据转发方法及装置,以降低将数据转发至恶意节点的概率。

具体技术方案如下:

本发明实施例提供了一种物联网中基于群体信任度的数据转发方法,所述方法包括:

确定携带待转发数据的起始节点,以及所述待转发数据的目标节点;

确定与所述起始节点处于通信范围内的相遇节点的集合;

当所述相遇节点的集合中不包含所述目标节点时,从所述相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;

基于社区划分算法,确定各个可选节点所属社区,以及所述目标节点所属社区;

当所述可选节点集合中不存在与所述目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与所述目标节点所属社区的群体可信度,并基于计算结果从所述可选节点所属社区中确定中继社区,所述中继社区是与所述目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;所述社区间的间接可信度是根据所述社区间的直接可信度计算得到的,所述社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,所述节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,所述节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;

从所述中继社区中确定第一中继节点,所述第一中继节点是所述中继社区中相对于所述目标节点的数据投递能力最大的可选节点,其中,所述数据投递能力根据节点之间在预设时间段内的通信频率确定;

将所述第一中继节点的标识发送至所述起始节点,以使所述起始节点向所述第一中继节点转发数据。

可选的,当所述相遇节点的集合中包含所述目标节点时,所述方法还包括:

指示所述初始节点向所述目标节点转发数据。

可选的,当所述可选节点集合中存在与所述目标节点属于同一社区的节点时,所述方法还包括:

确定与所述目标节点属于同一社区的节点,组成候选节点集合;

从所述候选节点集合中确定第二中继节点,所述第二中继节点是所述候选节点集合中相对于所述目标节点的数据投递能力最大的节点;

将所述第二中继节点的标识发送至所述起始节点,以使所述起始节点向所述第二中继节点转发数据。

可选的,基于如下公式计算所述节点之间的直接可信度:

其中,表示节点vi对节点vj的直接可信度,α,β和γ表示预设权重,表示节点vi和节点vj之间的联系率,δt表示预设时间间隔,表示节点vi和vj从t-δt到t期间的联系次数,u表示除节点vj之外的其他任意节点,表示节点vi与除节点vj之外的其他节点从t-δt到t期间联系的次数之和;表示节点vi和节点vj之间的服务率,表示在t-δt到t期间节点vi为节点vj转发数据包的数量;表示在t-δt到t期间节点vi接收到的数据包总数;表示节点vi的剩余能量比,表示t时刻节点vi的初始能量,δe表示vi在δt时间内转发数据包的能耗;

基于如下公式计算所述节点在各自社区的可信度:

其中,t(vi,scp)表示节点vi在自身社区内的可信度,n(scp)表示节点vi所属社区中包含的所有节点;

基于如下公式计算所述社区间的直接可信度:

λ=t(vi,scp)×t(vj,scq)

其中,dn(scp,scq)表示社区scp和社区scq中具备直接交互关系的节点对的集合,tf(scp,scq)表示社区scp和社区scq之间的可信因子;

基于如下公式计算所述社区间的间接可信度:

其中,cc(scp,scq)表示社区scp到scq的所有可信路径上中间社区icl的集合,l表示可信路径序号,m表示可信路径的总数;

基于如下公式计算所述社区间的群体可信度:

其中,表示社区scp和社区scq之间的群体可信度,表示社区scp中与社区scq具备合作关系的节点的数目占社区scp中总节点数目的比例,表示社区scq中与社区scp具备合作关系的节点的数目占社区scq中总节点数目的比例,χ表示预设的社区间直接可信度权重,η表示预设的社区间间接可信度权重;

按照如下步骤确定节点间数据投递能力:

当节点vi与节点vj在t时刻之前预设时间段内建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vj的数据投递能力,表示节点vi与节点vj更新前的数据投递能力,表示预设常量;

当节点vi与节点vj在t时刻之前预设时间段内没有建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,δ表示衰减常量,τ表示预设时间间隔;

当节点vj在与节点vi建立通信连接之前,与节点vj建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vk的数据投递能力,表示节点vk与节点vj的数据投递能力,ε表示预设乘积系数。

为实现上述目的,本发明实施例还提供了一种物联网中基于群体信任度的数据转发装置,所述装置包括:

第一确定模块,用于确定携带待转发数据的起始节点,以及所述待转发数据的目标节点;

第二确定模块,用于确定与所述起始节点处于通信范围内的相遇节点的集合;

筛选模块,用于当所述相遇节点的集合中不包含所述目标节点时,从所述相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;

第三确定模块,用于基于社区划分算法,确定各个可选节点所属社区,以及所述目标节点所属社区;

第四确定模块,用于当所述可选节点集合中不存在与所述目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与所述目标节点所属社区的群体可信度,并基于计算结果从所述可选节点所属社区中确定中继社区,所述中继社区是与所述目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;所述社区间的间接可信度是根据所述社区间的直接可信度计算得到的,所述社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,所述节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,所述节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;

第五确定模块,用于从所述中继社区中确定第一中继节点,所述第一中继节点是所述中继社区中相对于所述目标节点的数据投递能力最大的可选节点,其中,所述数据投递能力根据节点之间在预设时间段内的通信频率确定;

第一发送模块,用于将所述第一中继节点的标识发送至所述起始节点,以使所述起始节点向所述第一中继节点转发数据。

可选的,当所述相遇节点的集合中包含所述目标节点时,所述装置还包括指示模块,所述指示模块用于:

指示所述初始节点向所述目标节点转发数据。

可选的,当所述可选节点集合中存在与所述目标节点属于同一社区的节点时,所述装置还包括:

第六确定模块,用于确定与所述目标节点属于同一社区的节点,组成候选节点集合;

第七确定模块,用于从所述候选节点集合中确定第二中继节点,所述第二中继节点是所述候选节点集合中相对于所述目标节点的数据投递能力最大的节点;

第二发送模块,用于将所述第二中继节点的标识发送至所述起始节点,以使所述起始节点向所述第二中继节点转发数据。

可选的,基于如下公式计算所述节点之间的直接可信度:

其中,表示节点vi对节点vj的直接可信度,α,β和γ表示预设权重,表示节点vi和节点vj之间的联系率,δt表示预设时间间隔,表示节点vi和vj从t-δt到t期间的联系次数,u表示除节点vj之外的其他任意节点,表示节点vi与除节点vj之外的其他节点从t-δt到t期间联系的次数之和;表示节点vi和节点vj之间的服务率,表示在t-δt到t期间节点vi为节点vj转发数据包的数量;表示在t-δt到t期间节点vi接收到的数据包总数;表示节点vi的剩余能量比,表示t时刻节点vi的初始能量,δe表示vi在δt时间内转发数据包的能耗;

基于如下公式计算所述节点在各自社区的可信度:

其中,t(vi,scp)表示节点vi在自身社区内的可信度,n(scp)表示节点vi所属社区中包含的所有节点;

基于如下公式计算所述社区间的直接可信度:

λ=t(vi,scp)×t(vj,scq)

其中,dn(scp,scq)表示社区scp和社区scq中具备直接交互关系的节点对的集合,tf(scp,scq)表示社区scp和社区scq之间的可信因子;

基于如下公式计算所述社区间的间接可信度:

其中,cc(scp,scq)表示社区scp到scq的所有可信路径上中间社区icl的集合,l表示可信路径序号,m表示可信路径的总数;

基于如下公式计算所述社区间的群体可信度:

其中,表示社区scp和社区scq之间的群体可信度,表示社区scp中与社区scq具备合作关系的节点的数目占社区scp中总节点数目的比例,表示社区scq中与社区scp具备合作关系的节点的数目占社区scq中总节点数目的比例,χ表示预设的社区间直接可信度权重,η表示预设的社区间间接可信度权重;

当节点vi与节点vj在t时刻之前预设时间段内建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vj的数据投递能力,表示节点vi与节点vj更新前的数据投递能力,表示预设常量;

当节点vi与节点vj在t时刻之前预设时间段内没有建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,δ表示衰减常量,τ表示预设时间间隔;

当节点vj在与节点vi建立通信连接之前,与节点vj建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vk的数据投递能力,表示节点vk与节点vj的数据投递能力,ε表示预设乘积系数。

为实现上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一方法步骤。

为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。

本发明实施例有益效果:

应用本发明实施例提供的物联网中基于群体信任度的数据转发方法及装置,确定携带待转发数据的起始节点,以及待转发数据的目标节点;确定与起始节点处于通信范围内的相遇节点的集合;当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区;当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定;将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。可见,本发明实施例提供的数据转发方法综合考虑了节点之间的数据投递能力、节点所属社区之间的群体可信度、以及节点间通信次数、数据转发次数、转发数据的能耗等因素,相比于仅利用节点间联系概率来确定下一跳节点的算法,能够显著降低将数据转发到恶意节点的概率。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本发明实施例提供的物联网中基于群体信任度的数据转发方法的一种流程示意图;

图2为本发明实施例提供的物联网中基于群体信任度的数据转发方法的另一种流程示意图;

图3为本发明实施例提供的物联网中基于群体信任度的数据转发方法的又一种流程示意图;

图4为本发明实施例提供的物联网中基于群体信任度的数据转发装置的一种结构示意图;

图5为本发明实施例提供的电子设备的一种结构示意图。

具体实施方式

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

为了解决物联网领域中,有较大概率将数据转发至恶意节点的问题,本发明实施例提供了一种物联网中基于群体信任度的数据转发方法、装置、电子设备及计算机可读存储介质。

为了便于理解,下面先对物联网中数据转发过程进行简要介绍。物联网中包含数据转发控制中心以及许多设备节点,该数据转发控制中心可以实时获取物联网中设备节点的状态信息,可以包括设备节点所处位置、设备节点是否携带待转发数据、所携带的待转发数据的目标设备节点、设备节点的通信范围、设备节点的当前剩余能量等信息。本领域技术人员可以理解,设备节点可以以主动上报的方式将自身状态信息上传至数据转发控制中心,当然也可以是数据转发控制中心向设备节点索要状态信息,对此不做限定。

下文中均用节点来表示物联网中的设备节点。

本发明实施例提供的物联网中基于群体信任度的数据转发方法可以应用于物联网中的数据转发控制中心,数据转发控制中心可以为节点确定数据转发的路径,以尽可能的减少将数据转发至恶意节点的概率。具体的,参见图1,方法可以包括以下步骤:

s101:确定携带待转发数据的起始节点,以及待转发数据的目标节点。

本发明实施例中,数据转发控制中心可以根据节点的状态信息确定携带待转发数据的起始节点,以及待转发数据的目标节点。

s102:确定与起始节点处于通信范围内的相遇节点的集合。

本发明实施例中,数据转发控制中心可以根据节点所处位置,以及节点的通信范围确定与起始节点处于通信范围内的相遇节点,进而确定相遇节点的集合。

s103:当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合。

本发明实施例中,若相遇节点的集合中不包含目标节点,起始节点无法直接将数据转发至目标节点,因此需要从相遇节点之中选取一个节点作为中继节点。

本发明实施例中,可以从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合。其中,剩余能量的阈值可以根据实际情况进行设定,例如要转发的数据量较大时,可以适当选取较大的剩余能量的阈值,以尽可能的避免节点由于剩余能量不足而无法完成数据转发的情况。

此外,当所有相遇节点的剩余能量均不大于预设阈值时,表明相遇节点均无法完成数据转发,这种情况下,可以指示起始节点保持待转发的数据,直到遇到符合能量要求的其他节点。

s104:基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区。

本发明实施例中,社区划分算法可以是d2-toc算法,中文名称为重叠可信社区动态检测算法,该算法针对无法事先预知网络规模的复杂网络环境,采用种子扩展和随机游走算法对网络环境中的节点进行动态划分,得到不同的可信社区。本发明实施例对社区划分算法不再赘述。具体可以参见相关技术,例如公开号为cn108600013b的动态网络的重叠社区发现方法及装置。

本发明实施例中,数据转发控制中心可以根据社区划分算法对节点进行划分,进而得到各个可选节点所属社区,以及目标节点所属社区。

s105:当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的。

本发明实施例中,在确定各个可选节点所属社区,以及目标节点所属社区之后,可以判断可选节点集合中是否存在与目标节点属于同一社区的节点。

若判断结果为可选节点集合中不存在与目标节点属于同一社区的节点时,可以分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,其中,中继社区是与目标节点所属社区的群体可信度最大的社区。

为了便于理解,下面举例说明。

设可选节点包含节点a、节点b、节点c和节点d,节点a所属社区为社区1,节点b所属社区为社区2,节点c所属社区为社区3,节点d所属社区为社区4,目标节点所属社区为社区5,则可以分别计算社区1与社区5的群体可信度、社区2与社区5的群体可信度、社区3与社区5的群体可信度、社区4与社区5的群体可信度,根据计算结果从社区1到社区4之间确定一个中继社区,该中继社区与社区5的群体可信度最大。

本发明实施例中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的。

s106:从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的可选节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定。

本发明实施例中,如果中继社区中包含多个可选节点,则可以从中继社区中选取一个第一中继节点,该第一中继节点相对于目标节点具备最大的数据投递能力。其中,数据投递能力是动态变化的参数,可以根据节点之间在预设时间段内的通信频率确定。举例来讲,若一段时间内节点a与目标节点之间的通信频率较高,则该节点a与目标节点的数据投递能力也较大。

s107:将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。

本发明实施例中,所确定的第一中继节点可以作为起始节点的下一跳节点,数据转发控制中心可以将第一中继节点的标识发送至起始节点,起始节点接收到第一中继节点的标识后,向第一中继节点转发数据。

图1所示步骤s101-s106是数据转发控制中心为起始节点确定数据转发的下一跳节点的过程。本领域技术人员可以理解,起始节点将数据转发至下一跳节点后,下一跳节点成为新的起始节点,数据转发控制中心可以继续为新的起始节点确定下一跳节点,直到数据被转发至目标节点。

应用本发明实施例提供的物联网中基于群体信任度的数据转发方法,确定携带待转发数据的起始节点,以及待转发数据的目标节点;确定与起始节点处于通信范围内的相遇节点的集合;当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区;当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定;将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。可见,本发明实施例提供的数据转发方法综合考虑了节点之间的数据投递能力、节点所属社区之间的群体可信度、以及节点间通信次数、数据转发次数、转发数据的能耗等因素,相比于仅利用节点间联系概率来确定下一跳节点的算法,能够显著降低将数据转发到恶意节点的概率。

进一步的,由于显著降低了将数据转发到恶意节点的概率,能够提高数据转发的性能,具体表现为降低了网络整体的数据传输延迟、减少了转发次数、提高了数据投递的成功率。

在本发明的一种实施例中,当相遇节点的集合中包含目标节点时,说明初始节点可以直接将数据转发到目标节点。因此,数据转发控制中心可以向初始节点发送转发数据的指示,初始节点收到指示后,向目标节点转发数据。

在本发明的一种实施例中,参见图2,在步骤s104之后,判断可选节点集合中是否存在与目标节点属于同一社区的节点,若判断结果为可选节点集合中存在与目标节点属于同一社区的节点时,可以转而执行如下步骤s201-s203:

s201:确定与目标节点属于同一社区的节点,组成候选节点集合。

由于可选节点集合中存在与目标节点属于同一社区的节点,因此这种情况下无需确定中继社区,可以直接从可选节点集合中确定与目标节点属于同一社区的节点,这些节点组成候选节点集合。

s202:从候选节点集合中确定第二中继节点,第二中继节点是候选节点集合中相对于目标节点的数据投递能力最大的节点。

如果候选节点集合中包含多个候选节点,则可以从中选取一个第二中继节点,作为初始节点的下一跳节点,该第二中继节点相对于目标节点具备最大的数据投递能力,其中数据投递能力可以根据节点之间在预设时间段内的通信频率确定。

s203:将第二中继节点的标识发送至起始节点,以使起始节点向第二中继节点转发数据。

在图2所示实施例中,所确定的第二中继节点可以作为起始节点的下一跳节点,数据转发控制中心可以第二中继节点的标识发送至起始节点,起始节点向第二中继节点转发数据。

为了便于理解,下面对社区间群体可信度的计算过程进行介绍。

首先,可以用有向加权图来表示物联网中节点的拓扑结构。具体的,用gt=(vt,et,wt,ct)表示t时刻的网络状态,vt表示t时刻的节点集合,et表示t时刻节点间边的集合,wt表示t时刻有向边的权重集合,ct表示t时刻的社区集合,则vt、et、wt和ct可以分别用如下公式表示:

ct={c1,c2,…,cp}。

在本发明的一种实施例中,可以基于如下公式计算节点之间的直接可信度:

其中,表示节点vi对节点vj的直接可信度,α,β和γ表示预设权重,表示节点vi和节点vj之间的联系率,δt表示预设时间间隔,表示节点vi和vj从t-δt到t期间的联系次数,u表示除节点vj之外的其他任意节点,表示节点vi与除节点vj之外的其他节点从t-δt到t期间联系的次数之和;表示节点vi和节点vj之间的服务率,表示在t-δt到t期间节点vi为节点vj转发数据包的数量;表示在t-δt到t期间节点vi接收到的数据包总数;表示节点vi的剩余能量比,表示t时刻节点vi的初始能量,δe表示vi在δt时间内转发数据包的能耗。

可见,节点间的直接可信度是综合节点间的通信次数、转发数据次数以及转发数据的能耗计算得到的,能够更准确的衡量节点间的可信度。

在本发明的一种实施例中,可以基于如下公式计算节点在各自社区的可信度:

其中,t(vi,scp)表示节点vi在自身社区内的可信度,n(scp)表示节点vi所属社区中包含的所有节点,t(vj,scp)表示节点vj在自身社区内的可信度。

在本发明的一种实施例中,可以基于如下公式计算社区间的直接可信度:

λ=t(vi,scp)×t(vj,scq)

其中,dn(scp,scq)表示社区scp和社区scq中具备直接交互关系的节点对的集合,tf(scp,scq)表示社区scp和社区scq之间的可信因子。其中,具备直接交互关系可以理解为能够直接进行通信,举例来讲,若社区scp中的节点a和社区scq中的节点b之间可以直接进行通信,则节点a和节点b可以作为一个具备直接交互关系的节点对。

在本发明的一种实施例中,可以基于如下公式计算社区间的间接可信度:

其中,cc(scp,scq)表示社区scp到scq的所有可信路径上中间社区icl的集合,l表示可信路径序号,m表示可信路径的总数。

在本发明的一种实施例中,可以基于如下公式计算社区间的群体可信度:

其中,表示社区scp和社区scq之间的群体可信度,表示社区scp中与社区scq具备合作关系的节点的数目占社区scp中总节点数目的比例,表示社区scq中与社区scp具备合作关系的节点的数目占社区scq中总节点数目的比例,χ表示预设的社区间直接可信度权重,η表示预设的社区间间接可信度权重。

在本发明的一种实施例中,可以按照如下步骤确定节点间数据投递能力:

下面以节点vi与节点vj为例进行说明。

当节点vi与节点vj在t时刻之前预设时间段内建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vj的数据投递能力,表示节点vi与节点vj更新前的数据投递能力,表示预设常量。

可见,节点vi与节点vj在t时刻之前预设时间段内建立过通信连接时,数据投递能力可以相应提高。

当节点vi与节点vj在t时刻之前预设时间段内没有建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,δ表示衰减常量,τ表示预设时间间隔。

可见,节点vi与节点vj在t时刻之前预设时间段内没有建立过通信连接时,更新后的数据投递能力相比于更新前有所衰减。

当节点vj在与节点vi建立通信连接之前,与节点vj建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vk的数据投递能力,表示节点vk与节点vj的数据投递能力,ε表示预设乘积系数。

可见,当节点vj在与节点vi建立通信连接之前,与节点vj建立过通信连接时,可以结合节点vi与节点vk的数据投递能力,节点vk与节点vj的数据投递能力计算更新后的节点vi与节点vj的数据投递能力。

为了便于理解,下面结合图3对本发明实施例提供的物联网中基于群体信任度的数据转发方法进行进一步说明。

如图3所示,根据节点间通信次数、数据转发次数、转发数据的能耗确定节点间直接可信度,根据相关算法对节点进行划分,得到不同社区。计算单个节点在各自社区的可信度,进而计算社区间的直接可信度,再根据社区间的直接可信度计算社区间的间接可信度,根据社区间直接可信度和间接可信度计算社区间的群体可信度,社区间的群体可信度可以用于确定中继社区,进而从中继社区中确定中继节点作为初始节点的下一跳节点。

基于相同的发明构思,根据上述物联网中基于群体信任度的数据转发方法实施例,本发明实施例还提供了一种物联网中基于群体信任度的数据转发装置,参见图4,可以包括以下模块:

第一确定模块401,用于确定携带待转发数据的起始节点,以及待转发数据的目标节点;

第二确定模块402,用于确定与起始节点处于通信范围内的相遇节点的集合;

筛选模块403,用于当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;

第三确定模块404,用于基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区;

第四确定模块405,用于当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;

第五确定模块406,用于从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的可选节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定;

第一发送模块407,用于将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。

在本发明的一种实施例中,当相遇节点的集合中包含目标节点时,在图4所示装置基础上,还可以包括指示模块,指示模块用于:

指示初始节点向目标节点转发数据。

在本发明的一种实施例中,当可选节点集合中存在与目标节点属于同一社区的节点时,在图4所示装置基础上,还可以包括以下模块:

第六确定模块,用于确定与目标节点属于同一社区的节点,组成候选节点集合;

第七确定模块,用于从候选节点集合中确定第二中继节点,第二中继节点是候选节点集合中相对于目标节点的数据投递能力最大的节点;

第二发送模块,用于将第二中继节点的标识发送至起始节点,以使起始节点向第二中继节点转发数据。

在本发明的一种实施例中,可以基于如下公式计算节点之间的直接可信度:

其中,表示节点vi对节点vj的直接可信度,α,β和γ表示预设权重,表示节点vi和节点vj之间的联系率,δt表示预设时间间隔,表示节点vi和vj从t-δt到t期间的联系次数,u表示除节点vj之外的其他任意节点,表示节点vi与除节点vj之外的其他节点从t-δt到t期间联系的次数之和;表示节点vi和节点vj之间的服务率,表示在t-δt到t期间节点vi为节点vj转发数据包的数量;表示在t-δt到t期间节点vi接收到的数据包总数;表示节点vi的剩余能量比,表示t时刻节点vi的初始能量,δe表示vi在δt时间内转发数据包的能耗;

基于如下公式计算节点在各自社区的可信度:

其中,t(vi,scp)表示节点vi在自身社区内的可信度,n(scp)表示节点vi所属社区中包含的所有节点;

基于如下公式计算社区间的直接可信度:

λ=t(vi,scp)×t(vj,scq)

其中,dn(scp,scq)表示社区scp和社区scq中具备直接交互关系的节点对的集合,tf(scp,scq)表示社区scp和社区scq之间的可信因子;

基于如下公式计算社区间的间接可信度:

其中,cc(scp,scq)表示社区scp到scq的所有可信路径上中间社区icl的集合,l表示可信路径序号,m表示可信路径的总数;

基于如下公式计算社区间的群体可信度:

其中,表示社区scp和社区scq之间的群体可信度,表示社区scp中与社区scq具备合作关系的节点的数目占社区scp中总节点数目的比例,表示社区scq中与社区scp具备合作关系的节点的数目占社区scq中总节点数目的比例,χ表示预设的社区间直接可信度权重,η表示预设的社区间间接可信度权重;

当节点vi与节点vj在t时刻之前预设时间段内建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vj的数据投递能力,表示节点vi与节点vj更新前的数据投递能力,表示预设常量;

当节点vi与节点vj在t时刻之前预设时间段内没有建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,δ表示衰减常量,τ表示预设时间间隔;

当节点vj在与节点vi建立通信连接之前,与节点vj建立过通信连接,则按照如下公式计算节点vi与节点vj的数据投递能力:

其中,表示节点vi与节点vk的数据投递能力,表示节点vk与节点vj的数据投递能力,ε表示预设乘积系数。

应用本发明实施例提供的物联网中基于群体信任度的数据转发装置,确定携带待转发数据的起始节点,以及待转发数据的目标节点;确定与起始节点处于通信范围内的相遇节点的集合;当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区;当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定;将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。可见,本发明实施例提供的数据转发方法综合考虑了节点之间的数据投递能力、节点所属社区之间的群体可信度、以及节点间通信次数、数据转发次数、转发数据的能耗等因素,相比于仅利用节点间联系概率来确定下一跳节点的算法,能够显著降低将数据转发到恶意节点的概率。

进一步的,由于显著降低了将数据转发到恶意节点的概率,能够提高数据转发的性能,具体表现为降低了网络整体的数据传输延迟、减少了转发次数、提高了数据投递的成功率。

基于相同的发明构思,根据上述物联网中基于群体信任度的数据转发方法实施例,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:

确定携带待转发数据的起始节点,以及待转发数据的目标节点;

确定与起始节点处于通信范围内的相遇节点的集合;

当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;

基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区;

当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;

从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的可选节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定;

将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

应用本发明实施例提供的电子设备,确定携带待转发数据的起始节点,以及待转发数据的目标节点;确定与起始节点处于通信范围内的相遇节点的集合;当相遇节点的集合中不包含目标节点时,从相遇节点的集合中筛选出剩余能量大于预设阈值的节点,组成可选节点集合;基于社区划分算法,确定各个可选节点所属社区,以及目标节点所属社区;当可选节点集合中不存在与目标节点属于同一社区的节点时,分别计算各个可选节点所属社区与目标节点所属社区的群体可信度,并基于计算结果从可选节点所属社区中确定中继社区,中继社区是与目标节点所属社区的群体可信度最大的社区;其中,社区间的群体可信度包括社区间的直接可信度和社区间的间接可信度;社区间的间接可信度是根据社区间的直接可信度计算得到的,社区间的直接可信度是根据两个社区中具备直接交互关系的节点在各自社区中的可信度计算得到的,节点在各自社区的可信度是根据该节点与自身社区内的其他节点之间的直接可信度计算得到的,节点之间的直接可信度是根据该两个节点之间在预设时间段内的通信次数,转发数据次数以及转发数据的能耗计算得到的;从中继社区中确定第一中继节点,第一中继节点是中继社区中相对于目标节点的数据投递能力最大的节点,其中,数据投递能力根据节点之间在预设时间段内的通信频率确定;将第一中继节点的标识发送至起始节点,以使起始节点向第一中继节点转发数据。可见,本发明实施例提供的数据转发方法综合考虑了节点之间的数据投递能力、节点所属社区之间的群体可信度、以及节点间通信次数、数据转发次数、转发数据的能耗等因素,相比于仅利用节点间联系概率来确定下一跳节点的算法,能够显著降低将数据转发到恶意节点的概率。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一物联网中基于群体信任度的数据转发方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一物联网中基于群体信任度的数据转发方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于物联网中基于群体信任度的数据转发装置、电子设备及计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于物联网中基于群体信任度的数据转发方法实施例,所以描述的比较简单,相关之处参见物联网中基于群体信任度的数据转发方法实施例的部分说明即可。

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

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