基于社交圈的自适应多次喷射等待路由方法与流程

文档序号:19951712发布日期:2020-02-18 10:40阅读:162来源:国知局
基于社交圈的自适应多次喷射等待路由方法与流程

本发明属于容迟网络技术领域,尤其涉及一种基于社交圈的自适应多次喷射等待路由方法。



背景技术:

容迟网络不要求源节点和目的节点之间一直存在完整链路,更符合实际的自组网需求。其在地震灾难应急、缺乏基础设施的偏远地区网络通信,传感器网络等领域具有广泛的应用前景和使用价值,具有十分重要的研究意义。由于节点间缺乏稳定的连通路径,设计高效的路由算法是容迟网络研究领域需要解决的首要问题。

在大多数的容迟网络应用场景中,具有通信功能的移动设备大多是由人类随身携带的,而人类的移动模式并不是完全随机的,他们会表现出一定的社会特征,且节点之间的社会关系是比较稳定的,若合理利用节点间的社会关系,可以取得较好的路由性能。因此,如何合理地利用节点间的社会关系以辅助路由算法做出更明智的决策是容迟网络路由设计的一个热门研究方向。在现实的网络环境中,节点将消息传输到目的节点的能力是不同的,因此在路由过程中需要对下一跳中继节点进行筛选。在大多数改进的sprayandwait算法中,消息的初始副本数量都是固定的,这将使得算法不能根据网络的实际情况而自适应地调整消息副本的数量,具有一定的盲目性。当网络中的某个消息被成功投递到目的节点后,网络中的一些中继节点仍然存在大量该消息的副本,这些冗余的消息副本被存储在节点有限的缓存空间中,若这些中继节点继续对这些无用的冗余副本执行转发操作将极大地浪费有限的网络资源,导致路由算法的网络开销增大,极易造成网络拥塞。



技术实现要素:

本发明所要解决的技术问题是,提供一种基于社交圈的自适应多次喷射等待路由方法,是容迟网络的一种高效的路由算法。

本发明解决其技术问题所采用的技术方案是:提供一种基于社交圈的自适应多次喷射等待路由方法,在容迟网络中,通过基于社交圈的自适应多次喷射等待路由算法进行节点间的消息传递,基于社交圈的自适应多次喷射等待路由算法包括喷射阶段和等待阶段,通过该方法将节点vi携带的消息转发给目的节点vd,该方法包括以下步骤:

s1、在喷射阶段,基于相似度构建节点的社交圈,根据携带消息的节点是否在目的节点的社交圈内而采用不同的中继节点选择策略;如果携带消息的节点在目的节点的社交圈内,则将消息在目的节点的社交圈内进行转发,并采用基于投递预测值的路由转发策略;如果携带消息的节点不在目的节点的社交圈内,则将消息转发给目的节点的社交圈中的节点,或者采用基于地理信息的路由转发策略;

s2、在等待阶段,进行基于投递预测值的自适应多次喷射策略,该策略选择性地对某些副本数为1的消息进行多次喷射;

s3、当网络中的某个消息被成功投递到目的节点后,利用ack确认机制算法,通知网络中的节点删除已经被成功投递到目的节点的消息。

按上述技术方案,步骤s1中的相似度sd(i,j),用于估计节点间社会关系的密切程度,如果节点vi与节点vj的相似度sd(i,j)>1/(2min{|ea|,|eb|},则意味着这两个节点有着大量共同关系密切的节点,即可认为这两个节点成为熟人的可能性较高,将这两个节点划分到同一个社交圈中。

按上述技术方案,相似度的计算方法为:

相似度sd(i,j)表示节点vi与节点vj拥有的共同相遇节点的个数,其计算公式为:

sd(i,j)=|ei∩ej|

其中,集合ei={vk|ni,k≠0,1≤k≤n}表示节点vi的相遇节点集合,ni,k表示节点vi和节点vk的相遇次数,其初始值为0,每当节点vi与节点vk相遇时,该变量的值加1;同理,集合ej表示vj的相遇节点集合。

按上述技术方案,步骤s1中基于相似度构建节点的社交圈的方法为:

节点vi的社交圈scni表示网络中与节点vi的相似度大于一定阈值scnthreshold的节点集合,其构建过程为:

当节点vi与节点vj相遇时,若节点vj不在节点vi的相遇节点集合ei中,则将节点vj添加到集合ei中;然后判断节点vj是否已经在节点vi的社交圈scni中,如果不在,则计算出节点vi与节点vj间的相似度sd(i,j),再判断sd(i,j)是否大于给定的阈值scnthreshold,如果大于,则将节点vj添加到节点vi的社交圈scni中。

按上述技术方案,步骤s1中基于投递预测值的路由转发策略为:

当任意两个节点相遇时,将投递预测值作为筛选中继节点的依据,选择投递预测值较高的节点作为中继节点。避免sprayandwait算法在喷射阶段盲目地将消息喷射给所有的相遇节点,以减少低传输效率的中继转发次数,从而提高网络的资源利用率。

按上述技术方案,投递预测值的计算方法为:

投递预测值是用来描述节点之间成功传输消息的可能性的。节点vi,vj,vr∈v,p(i,j)表示节点vi将消息成功投递到节点vj的概率,其计算过程主要包含三部分:更新、衰退、传递;

如果两个节点相遇频率越高,他们之间的相遇概率也就越高,投递预测值也就越大,当节点vi与节点vj相遇时,更新两节点间的投递预测值,更新公式如下:

p(i,j)=p(i,j)old+(1-p(i,j)old)·pinit

其中,pinit∈[0,1]表示初始常量;

如果节点vi与节点vj在一段时间内(用k描述)没有遇到彼此,投递预测值p(i,j)应该衰退,衰退公式如下:

p(i,j)=p(i,j)old·γk

其中,γ∈[0,1)是衰减参数,k表示从最后一次相遇到当前时间所经历的时间块的个数;

投递预测值也具有传递性,如果节点vi与节点vj相遇,而节点vj与节点vr相遇,那么对于目的地为vi的消息而言,节点vr是一个中继节点,传递公式为:

p(i,r)=p(i,r)old+(1-p(i,r)old)·p(i,j)·p(j,r)·β

其中,β∈[0,1]是传递因子,它表示传递性对投递预测值影响的比重。

传递公式给出了传递性是如何影响投递预测值的。节点的投递预测值越大意味着该节点过去频繁与目的节点相遇,则可以认为该节点未来将消息成功投递到目的节点的可能性较大。因此,若携带消息的节点在目的节点的社交圈内,则将消息在目的节点的社交圈内进行传输,并选择投递预测值较大的节点作为下一跳中继节点,使消息的传输更加有效,从而提高路由算法的投递率。

按上述技术方案,步骤s1中基于地理信息的路由转发策略为:

基于地理信息定义节点传输效用值指标,以反映节点将消息传输到目的节点活动范围内的能力;将节点传输效用值作为筛选中继节点的依据,选择传输效用值较高的节点作为中继节点。

按上述技术方案,节点传输效用值的计算方法为:

节点vi的传输效用值tuoni是指节点vi的运动速度与节点vi的运动方向和目的节点vd的运动方向所成夹角和节点vi离目的节点vd的距离乘积之比,其计算公式为:

其中,speedi表示节点vi的运动速度,θ(i,d)表示节点vi的运动方向和目的节点vd的运动方向所成夹角,d(i,d)表示节点vi离目的节点vd的距离;

设节点vi的速度矢量为vi(vxi,vyi),节点vd的速度矢量为vd(vxd,vyd),则θ(i,d)的计算公式为:

设节点vi的坐标为(xi,yi),节点vd的坐标为(xd,yd),则d(i,d)的计算公式为:

如果节点的传输效用值越大,则可以认为该节点将消息快速地传输到目的节点活动范围内的能力越强。因此,利用节点的传输效用值来评估节点的传输能力。若携带消息的节点不在目的节点的社交圈内,则根据节点的地理信息计算节点的传输效用值,在路由过程中选择传输效用值较大的节点作为下一跳中继节点,使消息总是沿着更有利的方向进行扩散,从而尽可能快速地将消息传递到目的节点的活动范围内。

按上述技术方案,步骤s2中的基于投递预测值的自适应多次喷射策略为:

在等待阶段选择性地对某些副本数为1的消息进行多次喷射,并基于投递预测值自适应地设定再次喷射的副本数量,从而在继承多副本策略路由算法在投递率和平均时延上优势的同时,又不会给缓存带来巨大压力。当节点vi与投递预测值比自身大的节点vj相遇,且节点vi所携带的消息md的副本数为1时,如果节点vi将消息md成功投递到目的节点vd的概率小于一定的阈值pthreshold,则节点vi将会对消息md进行再次喷射,再次喷射的副本数量nrofcopies的计算公式为:

其中,vi.freebuffersize是指节点vi的剩余缓存大小,md.size是指消息md的大小,l是指消息md的初始副本数量,p(i,d)是指节点vi将消息md成功投递到目的节点vd的概率,若投递预测值p(i,d)越小,则计算出的再次喷射的副本数量nrofcopies越多。这是因为p(i,d)越小表明节点vi将消息md成功投递到目的节点vd的概率越小,因此我们应该在网络中扩散更多数量的消息副本,以提高md被成功投递到目的节点vd的概率。之所以要满足节点vi将消息md成功投递到目的节点vd的概率小于一定的阈值pthreshold,是因为如果节点vi将消息md成功投递到目的节点vd的概率p(i,d)很大,则意味着该节点将消息成功投递到目的节点的可能性较高,因此我们不需要对此消息进行再次喷射,以减少不必要的冗余副本数量,从而减少不必要的转发跳数。此外,为了避免同一消息在某一局部区域存在大量的冗余副本,规定每个节点对同一消息进行再次喷射的次数不超过2次。

按上述技术方案,步骤s3中的ack确认机制算法为:

每个节点vi都维护一个ack消息列表amii(ackedmessageids),用来记录已经被成功投递到目的节点的消息id,当两个节点相遇并且形成一个连通区域时,交换彼此的ack消息列表,并将自身ack消息列表中没有的消息id而相遇节点ack消息列表中所持有的消息id加入到自身的ack消息列表中,然后分别删除自身缓存中已经被记录于ack消息列表中的消息。

本发明产生的有益效果是:本发明的基于社交圈的自适应多次喷射等待路由方法,通过对节点间的相遇历史信息进行研究,构建节点的社交圈。在喷射阶段,根据携带消息的节点是否在目的节点的社交圈内而采用不同的中继节点选择策略。如果携带消息的节点在目的节点的社交圈内,则将消息在目的节点的社交圈内进行转发,并采用基于投递预测值的路由转发策略,即基于投递预测值筛选中继节点,减少了低传输效率的冗余中继转发次数;如果携带消息的节点不在目的节点的社交圈内,则将消息转发给目的节点的社交圈中的节点,或者采用基于地理信息的路由转发策略,即基于节点的地理信息计算节点的传输效用值,根据节点的传输效用值筛选中继节点,从而可以尽可能快速地将消息传递到目的节点的活动范围内。在等待阶段,实现了一种基于投递预测值的自适应多次喷射策略,当节点所携带的消息的副本数为1,且该节点与投递预测值比自身大的节点相遇时,若携带消息的节点将消息成功投递到目的节点的概率小于给定的阈值,则该节点将会对此消息进行再次喷射,并基于投递预测值自适应地喷射适量的消息副本,提高了算法的整体性能。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例基于社交圈的自适应多次喷射等待路由方法的算法流程图;

图2是本发明实施例中节点的社交圈构建算法过程图;

图3是本发明实施例中ack确认机制算法过程图;

图4是本发明实施例中基于投递预测值的路由转发策略过程图;

图5是本发明实施例中基于地理信息的路由转发策略过程图;

图6是本发明实施例中基于投递预测值的自适应多次喷射策略过程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明实施例中本发明实施例中,如图1所示,为一种基于社交圈的自适应多次喷射等待路由方法,当携带消息md的节点vi与节点vj相遇时,首先更新投递预测值,更新公式如下:

p(i,j)=p(i,j)old+(1-p(i,j)old)·pinit

其次,更新节点的社交圈,其更新过程参见图2,具体过程为:若节点vj不在节点vi的相遇节点集合ei中,则将节点vj添加到集合ei中。然后判断节点vj是否已经在节点vi的社交圈scni,如果不在,则计算出节点vi与节点vj间的相似度sd(i,j),计算公式如下:

sd(i,j)=|ei∩ej|

判断sd(i,j)是否大于给定的阈值scnthreshold,如果大于,则将节点vj添加到节点vi的社交圈scni中。

进一步地,如图3所示,交换彼此的ack消息列表,并将自身ack消息列表中没有的消息id而相遇节点ack消息列表中所持有的消息id加入到自身的ack消息列表中,然后分别删除自身缓存中已经被记录于ack消息列表中的消息。

进一步地,判断md的目的节点是否为vj,如果是,那么vi则将md直接传输给vj,节点vj生成一个对应的ack确认消息。否则,判断节点vi所携带的消息md的副本数是否大于1,如果大于1,则表明当前正处于喷射阶段,然后判断节点vi通信范围内的节点数目是否少于2个,如果少于2个,则表明节点vi所处区域的节点密度稀疏,节点间的通信机会十分宝贵,所以节点vi直接将一半数量的消息副本喷射给节点vj。如果节点vi通信范围内的节点数目不少于2个,则判断节点vi是否在消息的目的节点vd的社交圈scnd中,如果在scnd中,则采用基于投递预测值的路由转发策略,详细过程参见图4,即仅将消息喷射给社交圈scnd中投递预测值更大的中继节点;如果不在scnd中,则采用基于地理信息的路由转发策略,详细过程参见图5、图6,即基于节点的地理信息计算节点的传输效用值tuoni,计算公式如下:

其中,speedi表示节点vi的运动速度,θ(i,d)表示节点vi的运动方向和目的节点vd的运动方向所成夹角,d(i,d)表示节点vi离目的节点vd的距离。。

设节点vi的速度矢量为vi(vxi,vyi),节点vd的速度矢量为vd(vxd,vyd),则θ(i,d)的计算公式为:

设节点vi的坐标为(xi,yi),节点vd的坐标为(xd,yd),则d(i,d)的计算公式为:

在路由过程中,将消息喷射给传输效用值更大的中继节点,或者将消息转发给目的节点vd的社交圈scnd中的节点,从而使消息尽可能快速地传递到目的节点的活动范围内。

如果节点vi所携带的消息md的副本数等于1,则表明当前正处于等待阶段,因此,判断节点vi将消息成功投递到目的节点vd的概率p(i,d)是否小于给定的阈值pthreshold,节点vi对消息md的喷射的次数是否不超过2次,相遇节点vi将消息md成功投递到目的节点vd的概率p(i,d)是否小于节点vj将消息md成功投递到目的节点vd的概率p(j,d),如果这三个条件同时满足,则节点vi对消息md进行再次喷射,并将消息md的喷射次数的值加1,再次喷射的副本数nrofcopies计算公式如下:

其中,vi.freebuffersize是指节点vi的剩余缓存大小,md.size是指消息md的大小,l是指消息md的初始副本数量,p(i,d)是指节点vi将消息md成功投递到目的节点vd的概率。

综上,本发明公开了一种基于社交圈的自适应多次喷射等待路由算法,通过对节点间的相遇历史信息进行研究,构建节点的社交圈。在喷射阶段,根据携带消息的节点是否在目的节点的社交圈内而采用不同的中继节点选择策略,避免中继节点选择的盲目性。若携带消息的节点在目的节点的社交圈内,则将消息在目的节点的社交圈内进行转发,并采用基于投递预测值的路由转发策略,以减少低传输效率的冗余中继转发次数;若携带消息的节点不在目的节点的社交圈内,则将消息转发给目的节点的社交圈中的节点,或者采用基于地理信息的路由转发策略,从而尽可能快速地将消息传递到目的节点的活动范围内。在等待阶段实现了一种基于投递预测值的自适应多次喷射策略。当节点所携带的消息的副本数为1,且该节点与投递预测值比自身大的节点相遇时,若携带消息的节点将消息成功投递到目的节点的概率小于给定的阈值,则该节点将会对此消息进行再次喷射,并基于投递预测值自适应地喷射适量的消息副本,通过增加消息副本的数量提高算法的整体性能。同时,基于社交圈的自适应多次喷射等待路由算法采用了ack确认机制算法以减少无用的冗余副本数量。与传统的epidemic、prophet、sprayandwait算法相比,该算法在投递率、平均时延、网络开销和平均跳数上的总体性能最优。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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