一种基于投递率约束的面向移动机会网络的数据路由方法与流程

文档序号:14352270阅读:244来源:国知局
一种基于投递率约束的面向移动机会网络的数据路由方法与流程

本公开涉及机会网络和移动机会网络领域,特别是一种在面向移动机会网络中,在满足投递率约束的情况下,将数据传输到特定地理区域的路由方法。



背景技术:

目前,实现移动机会网络的高效数据传输机制面临着诸多挑战,主要包括:(为简化起见,下文将交替使用用户、节点和移动智能设备)首先,节点的能量(即设备的电池电量)往往有限,并且发送和接收数据时需要消耗一定的能量,从而限制了其数据传输能力,进而影响整个网络的生存期。其次,一个设备节点传输数据的方式是无线广播方式,其往往面临时刻变化的无线信道质量,可能使得提前确定的下一跳转发节点无法正常接收数据,进而需要再次传输数据,进一步增加了能量消耗,延长了数据传输时延,缩短了整个网络的生存期。再次,在移动机会网络中,人们往往是移动的,导致一个节点在不同时刻可能面临不同的节点,也可能在某些时间是孤立的,这增加了设计高效数据路由方法的难度。最后,由于节点的移动性,两个节点之间或者节点与目标地理区域之间的相遇关系往往具有时变性和随机不确定性,进一步增加了设计高效数据路由方法的难度。因此,研究如何在移动机会网络环境下实现高效的传输到特定地理区域的高效数据路由方法,以满足数据投递率约束、减少数据重传次数、均衡能量消耗、延长网络生存期,具有重要的应用价值和广阔的应用前景。

从现有的研究成果上看,当前的面向移动机会网络的数据路由方法一般采用基于最优化的方法、基于能耗均衡、基于社会性感知的方法。其中,基于最优化的数据路由方法首先评价周围的邻居节点并按照某种标准选取最优的中继节点并将数据传输给该节点,该方法的最优化标准往往具有一定的局限性,且由于节点的移动性而容易导致局部最优而全局较差的缺点;基于能耗均衡的方法往往只考虑了当前节点和周围邻居节点的剩余能量,一般选择邻居节点中剩余能量较多的节点,而没有考虑节点移动性和无线信道的不稳定性,也容易使数据路由方法陷入局部最优而缩短网络生存期;而基于社会性感知的数据路由方法依据节点的社会性度量,将节点向社会性度量值高的节点转发,以期望尽快遇到目标节点,但高社会性度量值的节点的能量消耗往往比较大,限制了方法的实用性。由此可见,当前的面向移动机会网络的数据路由方法,存在着能量消耗不均衡、数据投递率无保证、网络生存期较短等缺点。



技术实现要素:

针对上述问题,本公开提供了一种基于投递率约束的面向移动机会网络的数据路由方法,该方法能高效地将数据传输到特定地理区域,在数据路由决策过程中充分考虑无线信道质量、能量均衡、节点移动性和延迟决策等因素,实现动态自适应的高效数据路由。本公开的技术方案具体如下。

一种基于投递率约束的面向移动机会网络的数据路由方法,所述方法包括下述步骤:

s100、获取当前节点携带的数据包的投递率需求值,将该投递率需求值记作第一投递率需求值;

s200、若第一投递率需求值大于零,获取能够满足的第二投递率需求值;

所述第二投递率需求值为节点集合中的节点能够使所述数据包满足的投递率需求值,并且该节点集合中的节点是当前节点在非目标区域遇到的邻居节点;

s300、若能够满足的第二投递率需求值满足投递条件,则向所述邻居节点广播数据包;

s400、接收第一确认消息,将发出第一确认消息的邻居节点作为候选节点,并基于候选节点能够使所述数据包满足的投递率需求值,更新当前数据包的投递率需求值;

所述第一确认消息由收到数据包的邻居节点发送;

s500、选择下一跳转发节点,若下一跳转发节点为候选节点,向下一跳转发节点发送第二确认消息,所述第二确认消息包括数据包更新后的投递率需求值。

在所述方法中,其中:所述投递条件为能够满足的第二投递率需求值大于等于投递率阈值。

在所述方法中,其中:所述投递率阈值为设定值或者为计算值;

所述计算值通过下式获得:

式中:

kt表示在一个时间周期中当前时刻t所在的离散时间段,n表示节点在一个时间周期内可能同时遇到的节点数量的最大值,为一个有限的正整数;

表示节点vi在第kt个离散时间段内所遇到的节点与目标区域相遇的概率的平均值;

pi(kt,n)表示节点vi在第kt个离散时间段内同时与n个节点相遇的概率。

在所述方法中,其中:所述第一投递率需求值计算如下:

对于产生数据包的节点,所述第一投递率需求值等于投递率约束值减去所述节点自身能够使数据包满足的投递率需求值;

所述投递率约束值等于数据包产生时的投递率需求值;

在转发数据包后,数据包转发后的第一投递率需求值等于数据包转发前的第一投递率需求值减去已满足的第三投递率需求值;

所述第三投递率值为节点集合中的节点能够使所述数据包满足的投递率需求值,并且该节点集合的节点为候选节点。

在所述方法中,其中:所述节点集合中的节点能够使所述数据包满足的投递率需求值通过下述公式计算:

式中:

ps表示节点集合s中的节点能够使所述数据包满足的投递率需求值;

vj为节点,j用于标识节点;

pj表示节点自身能够使数据包满足的投递率需求值,该节点为vj。

在所述方法中,其中:其特征在于:

所述节点自身能够使数据包满足的投递率需求值等于在所述数据包的剩余生存时间内,所述节点与目标区域相遇的概率。

在所述方法中,其中:所述概率通过下式计算:

式中:

e为自然常数;

λj表示节点vj与目标区域相遇的频率;

ttl为当前数据包的剩余生存时间;

pj表示节点自身能够使数据包满足的投递率需求值,该节点为vj。

在所述方法中,其中:所述通过下式计算:

其中:

e为自然常数;

ttl为数据包的剩余生存时间;

λi(kt)表示节点vi在一个时间周期中第kt个离散时间段内所遇到的节点与目标区域相遇的平均频率值;

λi(kt)通过下式计算:

其中:

ne(i,kt)表示节点vi在一个时间周期中第kt个离散时间段内所遇到的节点构成的集合;

vj是ne(i,kt)中的元素;

|ne(i,kt)|表示集合ne(i,kt)的势;

λj表示节点vj与目标区域相遇的频率;

kt通过下式计算:

式中:

t为当前时刻;

%为取余运算符;

l为设定的时间周期长度;

a为单个离散时间段的时间长度。

在所述方法中,其中:在所述更新后,还包括下述步骤:

若第一投递率需求值小于等于0,则将候选节点收到的数据包需要满足的第一投递率需求值置为不满足投递条件的值,并且不执行步骤s500;

若第一投递率需求值大于0,则将当前节点以及没收到第二确认消息的节点上的数据包需要满足的第一投递率需求值置为不满足投递条件的值。

在所述方法中,其中:所述下一跳转发节点为剩余能量最多的节点。

与现有技术相比,本公开具有下述优点:

1)本公开方法通过多个节点共同协作来保证数据包的投递率需求,而传统方法往往试图以最大化数据包的投递率为目标,本公开方法在保证数据投递率的前提下以节点能量均衡为目标,大幅延长了网络的生存期。

2)本公开方法通过在每次数据广播后设置只有一个节点具有再次转发数据的能力,从而有效限制了数据包副本的数量,节省了能量消耗,同时在每次数据广播后,选择具有最大能量的节点作为下一跳转发节点,可以有效均衡能量消耗,延长网络生存期。

3)本公开方法考虑了无线信道质量对数据接收率的影响,从已成功接收数据包的邻居节点中选择下一跳转发节点,可有效减少数据重传次数,并充分利用已接收的所有节点所带来的投递率提高的优点,延长网络生存期。

4)本公开方法无需提前计算最优数据路由路径,并且数据路由决策过程所需的计算步骤、传输数据量和存储数据量都较小,更适合应用于资源受限的移动智能设备。

5)本公开方法具有延迟数据路由决策功能,只有当周围的邻居节点能够完成一定的数据投递率需求时,才进行数据广播,否则等待以后会遇到更优的邻居节点从而减少数据广播次数,进而延长网络生存期。

附图说明

图1为本公开的某一时刻的移动机会网络结构图;

图2为本公开提出的面向移动机会网络的投递率保证的高效数据路由方法的流程图;

图3为节点的初始能量变化对数据包投递率影响的实验结果图;

图4为节点的初始能量变化对数据包开销率影响的实验结果图;

图5为数据包的大小变化对数据包投递率影响的实验结果图;

图6为数据包的大小变化对数据包开销率影响的实验结果图。

具体实施方式

在本公开方法中,移动机会网络中的节点可以随时移动,只有当两个节点相遇时(即两个节点的距离在他们的无线覆盖范围内)才能进行数据传输;每个节点可以产生数据包,所产生的数据包的元信息包括数据包的投递率需求、ttl、目的区域等。其中,投递率需求值在数据包产生时等于投递率约束值。节点在进行数据发送和接收时都将消耗一定的能量,每个节点均能实时了解自身的剩余能量,并随着能量的耗尽而失效并移出网络;数据包的ttl值随着时间自动减小,直到减小到0时,该数据包失效,而被移出节点缓存。并且,时间被划分为无限重复的周期时间,每个时间周期内包括若干离散时间段。比如“天”即为周期时间,“小时”即为离散时间段。本方法假定,任何节点在每个周期时间的固定时间段内与其他节点相遇的情况具有相似性;任何节点访问任何目标区域的次数(即节点与目标区域的相遇事件发生的次数)服从泊松分布。

下面实施例结合附图对本公开所提出的方法进行详细阐述。

在一个实施例中,移动机会网络具有图1所示的结构。在该结构图中,包括若干移动设备节点和4个地理区域,其中圆圈表示部署的传感器节点,无向边表示其所连接的两个节点目前可以进行数据传输。节点可以随时移动,只有当两个节点相遇时(即两个节点的距离在他们的无线覆盖范围内)才能进行数据传输;每个节点可以产生数据包,所产生的数据包的元信息包括数据包的投递率需求、ttl、目的区域等。

为方便计算,对移动机会网络中各个节点统计自身节点与目标区域的相遇频率,用λi表示节点vi与目标区域(即区域4)相遇的频率,i=1,2,...,23。一种可选的统计节点与目标区域的相遇频率的方式是采用一段较长时间内计算该节点访问目标区域的次数,然后计算得出单位时间内该节点访问目标区域的次数,即为所求相遇频率。

假设在图1中的时刻,节点v3产生数据包m3,该数据包m3的ttl为5个小时(即ttlsum=5),目标区域为4,投递率约束值是0.98,即要求数据包m3的投递率需求值此时为0.98。节点v3携带其移动,节点v3与目标区域相遇的频率λ3为0.1。节点v3按照图2所示的数据路由方法进行数据包转发。

s100、获取当前节点v3携带的数据包m3的投递率需求值,将该投递率需求值记作第一投递率需求值,此时第一投递率需求值等于投递率约束值减去节点v3自身能够使数据包m3满足的投递率需求值。其中,节点v3自身能够使数据包m3满足的投递率需求值等于在当前数据包m3的剩余生存时间内,节点v3与目标区域相遇的概率。具体地,所述概率可以通过下式计算:

式中:e为自然常数,λj表示节点vj与目标区域相遇的频率,ttl为当前数据包的剩余生存时间,pj表示节点自身能够使数据包满足的投递率需求值,该节点为vj。

对于本实施例,将自然常数取值为2.718,则:

则第一投递率需求值为:0.98-0.394=0.586。

这表明,只采用节点v3携带该数据包m3直到访问目的区域的方式不能满足数据包m3的投递率约束值0.98,需要其他节点的辅助。

s200、第一投递率需求值0.586大于0,节点v3携带数据包m3移动时,遇到一些节点{v1,v4,v5},获取节点{v1,v4,v5}能够满足的第二投递率需求值。所述第二投递率需求值为节点集合{v1,v4,v5}中的节点v1,v4,v5能够使所述数据包m3满足的投递率需求值,并且该节点集合{v1,v4,v5}中的节点v1,v4,v5是当前节点v3在非目标区域遇到的邻居节点。

所述节点集合中的节点能够使所述数据包满足的投递率需求值通过下述公式计算:

对于当前实施例,节点集合s记作s1,s1={v1,v4,v5},其中:节点v1与目标区域相遇的频率λ1为0.08,节点v4与目标区域相遇的频率λ4为0.01,节点v5与目标区域相遇的频率λ5为0.03。

根据公式(1)计算节点v1,v4,v5在数据包m的剩余ttl内遇到数据包m的目的区域的概率分别为:

p1=1-2.718-0.08·5=0.3296,

p4=1-2.718-0.01·5=0.0488,

p5=1-2.718-0.03·5=0.1393,

则ps1=1-(1-p1)(1-p4)(1-p5)=1-(1-0.3296)×(1-0.0488)×(1-0.1393)

=1-0.6704×0.9512×0.8607=1-0.5489=0.4511。

s300、若所述第二投递率需求值满足投递条件下,则向所述相遇节点广播数据包。其中,投递条件为能够满足的第二投递率需求值大于等于投递率阈值。所述投递率阈值为设定值δ,通常δ∈[0,1.0]。

在本实施中δ值为0.3,小于求出的ps1的值,因此,节点v3向相遇节点v1,v4,v5广播数据包。

s400、因无线信道质量和稳定性等影响,假设只有节点v1和v4成功接收到数据包m3,则接收到数据包m3的邻居节点v1和v4向节点v3发送确认消息,将该确认消息记作第一确认消息,所述第一确认消息包括自身节点编号、自身节点剩余能量、数据包m3的编号信息。因此,将节点v1和v4作为候选节点。

接下来,基于候选节点能够使所述数据包满足的投递率需求值,更新当前数据包的投递率需求值。此时为转发数据包后,数据包转发后的第一投递率需求值等于数据包转发前的第一投递率需求值减去已满足的第三投递率需求值;所述第三投递率需求值为节点集合中的节点能够使所述数据包满足的投递率需求值,并且该节点集合的节点为候选节点。

对于当前实施例,第三投递率需求值在计算时节点集合s为候选节点集合,将该候选节点集合记作s2,s2={v1,v4,},由上面计算可知节点v1和节点v4,在数据包m3的剩余ttl内遇到数据包m3的目的区域的概率分别为:

p1=1-2.718-0.08·5=0.3296,

p4=1-2.718-0.01·5=0.0488,

则第三投递率需求值

更新后,数据包m3的投递率需求值等于:0.586-0.3623=0.2237。

本公开方法考虑了无线信道质量对数据接收率的影响,从已成功接收数据包的邻居节点中选择下一跳转发节点,可有效提减少数据重传次数,并充分利用已接收的所有节点所带来的投递率提高的优点,从而延长网络生存期。

s500、选择下一跳转发节点,若下一跳转发节点为候选节点,向下一跳转发节点发送第二确认消息,所述第二确认消息包括数据包更新后的投递率需求值。

优选地,所述下一跳转发节点为剩余能量最多的节点。因此,下一跳转发节点可以是候选节点,也可以是当前节点自身。

由于节点v3的剩余能量为1500j,节点v1的剩余能量为2000j,节点v4的剩余能量为1800j。因此,节点v1为剩余能量最多的节点,其为节点v3所携带的数据包m3的下一跳转发节点,接收到来自节点v3的第二确认信息后,节点v1按照所接收的第二确认信息中关于数据包m3的投递率需求值,将自身所携带的数据包m3的投递率需求值更新为0.2237。节点v3和节点v4则将它们各自携带的数据包m3的投递率需求值置为0或小于0的值。

至此,由于数据包m3在节点v1上还需满足的第一投递率需求值为0.2237,表明节点v1仍不能满足数据包m3的投递率需求值,若其在非目标区域遇到了邻居节点,则重复上述步骤s100-s500;若其达到目标区域,则向目标区域中的节点广播数据包m3。

采用这种方式,可以在每次数据包转发时选择剩余能量高的节点作为数据包的转发节点,从而可以均衡能量消耗,延长网络生存期。

在上述步骤s200中,若第一投递率需求值小于等于0,则表明携带数据包的节点已经完全满足数据包的投递率需求,无需转发数据包,只需携带数据包到达目标区域。

在上述步骤s300中,若能够满足的第二投递率需求值不满足投递条件,则表明当前的邻居节点的转发能力不足,数据包所在的节点需要等待更好的邻居节点集合出现,因此,数据包所在的当前节点不进行数据包的转发。

在上述步骤s400中,若第一确认消息的接收数目为0,则当前节点不更新第一投递率需求值。

在上述步骤s400中,在所述第一投递率需求值更新后,若所述第一投递率需求值小于等于0,则将候选节点收到的数据包m3需要满足的第一投递率需求值置为不满足投递条件的值,比如0或小于0的某个值。接下来也不需要选择下一跳转发节点,因为经过此次的广播转发已经使数据包满足了投递率约束。

在上述步骤s500中,若下一跳转发节点是数据包所在的当前节点,则当前节点继续携带数据包。此时,不需要发送第二确认消息。若下一跳转发节点属于候选节点,即为当前节点的邻居节点,若该邻居节点没有接收到第二确认消息,则该邻居节点将数据包m3的第一投递率需求值置为0或小于0的某个值。

采用本实施例的数据路由方式,可以在满足数据包的投递率需求的前提下,减少数据转发次数,从而减少能量消耗,延长网络生存期。

在另一个实施例中,所有的参数设置均与上述实施例相同,所不同的地方在于投递条件中的投递率阈值通过下式计算:

式中:

kt表示在一个时间周期中当前时刻t所在的离散时间段,kt为有限的正整数,设一个时间周期共k个离散时间段。比如设一个时间周期为1天,则k=12,1≤kt≤k。kt通过下式计算:

式中:t为当前时刻,%为取余运算符,l为设定的时间周期长度,a为单个离散时间段的时间长度。比如,设一个时间周期为1天,即1=24小时,每个时间周期被划分为12个离散时间段,每两个小时一个离散时间段,即a=2小时。若t为第8天的8时10分0秒整,即t=176.17小时,则kt通过上式计算为1。

n表示节点在一个时间周期内可能同时遇到的节点数量的最大值,为一个有限的正整数。

pi(kt,n)表示节点vi在第kt个离散时间段内同时与n个节点相遇的概率,n大于1且小于等于n。

表示节点vi在第kt个离散时间段内所遇到的节点与目标区域相遇的平均概率值,一种可选的计算方法如下:

首先,统计节点vi在一个时间周期中第kt个离散时间段内所遇到的节点与目标区域相遇的平均频率值,将平均频率值用λi(kt)表示,即:

其中,ne(i,kt)表示节点vi在一个时间周期中第kt个离散时间段内所遇到的节点构成的集合,vj是ne(i,kt)中的元素,|ne(i,kt)|表示集合ne(i,kt)的势(即该集合所含元素的个数),λj表示节点vj与目标区域相遇的频率。

其次,使用下述公式计算节点vi在一个时间周期中第kt个离散时间段内所遇到的节点与目标区域相遇的平均概率值

其中,ttl为数据包m的当前剩余时间。

对在一个时间周期中各个离散时间段内所遇到的每个节点,采用上述计算方法计算,可以获得每个节点在数据包m的当前剩余时间下与目标区域相遇的平均概率值。

为了验证本公开方法的有效性,在一个实施例中,在机会网络仿真工具one中,将该方法记作newrouter,与epidemic、sprayandwait和prophet这三种经典的路由方法在投递率和开销率两方面进行性能评估,其中投递率和开销率的定义如下:

投递率:数据包投递率公式为nd/ng,其中nd是成功投递给目的区域的数据包的数量,ng是所产生的数据包的总数量。

开销率:开销率用来评价带宽使用的有效性,公式为(nr-nd)/nd,其中nr是网络中数据包副本的总数,nd是成功投递给目的区域的数据包的数量。

仿真实验的参数设置如表1所示。

表1:

实验一:

该组实验主要探索网络中节点的初始能量变化对路由方法性能的影响。网络中节点的初始能量分别被设置为1000j、1100j、1200j、1300j、1400j、1500j、2000j、2500j、3000j、3500j、4000j、4500j和5000j。根据网络中节点的初始能量变化情况,不同方法的投递率如图3所示,开销率如图4所示。从图3中可以看出,随着节点初始能量的增大,本方法和sprayandwait方法的投递率先上升后平缓,而epidemic和prophet方法的投递率一直处于上升趋势。造成这些现象的主要原因如下:当节点的初始能量很小时,很多节点都会因为收发数据包而快速将能量耗尽,因此,许多数据包都无法被成功投递,每种方法的投递率较低。随着节点初始能量的增大,每个节点的生存时间变长,可以帮助转发更多的数据包,从而每种方法的投递率会上升。此外,本方法和sprayandwait方法均能较好地控制数据包的副本数,因此,网络中节点的能量消耗较少。当节点的初始能量增大到能满足网络中数据包的转发时,节点的初始能量值不再是影响这两种方法投递率的最主要因素。因此,后期这两种方法的投递率呈现出平滑的趋势。同时,正是由于这两种方法能较好地控制数据包的副本数,它们能保持较低的开销率,如图4所示。

实验二:

该组实验主要探索网络中数据包的大小变化对路由方法性能的影响。网络中数据包的大小分别被设置为100kb、200kb、300kb、400kb、700kb、1000kb、1300kb、1600kb和1900kb。根据网络中数据包大小的变化情况,不同方法的投递率如图5所示,开销率如图6所示。从图5中可以看出,随着数据包大小的增加,每种方法的投递率都呈现出下降的趋势,造成这一现象的主要原因有三个。原因一,随着数据包的增大,发送和接收数据包需要消耗的能量增大,因为网络中节点的能量消耗过快,网络的生存期变短。原因二,数据包增大,每个节点能存储的数据包数量减少,当有新的数据包到来时,很可能会因为要接收新的数据包而丢弃已有的数据包,这样也浪费了因为接收丢弃数据包所花费的能量。原因三,随着数据包的增大,很可能在数据包转发完成之前,发送和接收数据包的两个节点已经离开的彼此的通信范围,导致转发失败。从图6中可以看出,本方法和sprayandwait方法能保持较低的开销率。主要原因是因为它们不仅能有效地控制数据包的副本数还能保持较高的投递率。

以上两组实验表明:与其它的三种经典的机会网络路由方法相比,不论从节点初始能量变化还是从数据包大小的变化情况来看,本方法总能保持较高的投递率,同时维持较低的开销率。

本公开说明书未详细阐述部分属于本领域公知技术,同时,本公开方法描述了针对单个目的区域的传输情形,可利用本领域的公知技术对本公开方法进行简单修改,使其适应于多个目标区域的情形。

以上对本公开进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

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