一种实现动态高能效的移动Ad-hoc网络路由方法与流程

文档序号:17881581发布日期:2019-06-13 10:44阅读:294来源:国知局
一种实现动态高能效的移动Ad-hoc网络路由方法与流程

本发明涉及通信技术领域,尤其涉及一种实现动态高能效的移动Ad-hoc网络路由方法。



背景技术:

移动Ad-hoc网络已经在商业、教育、环境等领域有大量应用。Ad-hoc网络路由方法是Ad-hoc网络在各领域中应用的重要基础。现有的Ad-hoc网络路由方法有两种类型,分别是基于网络拓扑的路由和基于节点位置的路由。基于网络拓扑的路由方法又分为主动路由和被动路由。在基于网络拓扑的主动路由方法中,路由信息存储在路由表中并且每个节点都需要存储路由表,所以任何时间节点发生移动时都需要更新路由表,这对于移动性较强的网络来说,将产生巨大的路由维护开销。因此,被动路由将发挥更大的作用。

在被动路由协议中,每个节点都有一个路径缓存,当中存储了所有邻居节点的所有路由信息。现有的路由协议DSR是一个基于网络拓扑的被动协议。但这个协议的主要缺点是只遵循最小跳数原理,却不关心每个节点的功率消耗。当网络中每对节点之间的距离较大时,网络的功率消耗将会增加。

现有的基于节点位置的路由协议中,GFA(Geographical Adaptive fidelity,地理位置自适应)协议较为典型,它基于虚拟网格的概念,即将网络覆盖区域划分为网格,即网络中所有节点广播范围,每个节点按照位置信息与网格中的点对应,这样可以降低路由过程的复杂性,并降低了维护路由信息的成本。但在功率消耗、对网络移动性的适应和连接可靠性方面,性能有些不足。



技术实现要素:

本发明针对现有Ad-hoc路由协议的不足,提出一种实现动态高能效的Ad-hoc路由方法。基于虚拟网格的概念,本发明在每个网格中定义了网格管理节点和网格候选节点来承担网格的路由功能,利用最小生成树算法计算从发送节点到接收节点的最短路径,并在路由路径的每个节点上根据发送距离动态地调整发送功率。网格管理节点负责经过网格的数据包转发工作的节点,网格候选节点当网格管理节点剩余电量不足或由于移动性离开当前网格时,承担网格管理节点工作的节点。提供了一种可靠、高能效并且对网络移动性有较好适应性的一种移动Ad-hoc网络的路由方法。

为实现上述目的,本发明提出的技术方案如下:

一种实现动态高能效的移动Ad-hoc网络路由方法,包括以下步骤:

步骤一:确定节点所在网格;

步骤二:选择网格管理节点和网格候选节点;

步骤三:选择最短路由路径;

步骤四:动态设置路由节点发送功率,实现移动Ad-hoc网络路由选择高能效。

进一步根据所述实现动态高能效的移动Ad-hoc网络路由方法,步骤一中确定节点所在网格,节点的位置信息,记为P(X,Y);网格由方格组成,方格的边长称为网格尺寸,记为r;节点无线电传播距离为R,R已知,网格尺寸根据R来计算,具体公式为r=R/√5;对于网络内任意两个节点P1(X1,Y1)和P2(X2,Y2),若Int[X1/r]=Int[X2/r]且Int[Y2/r]=Int[Y2/r],则将节点P1、P2划分到同一网格,其中Int[]表示取整;

所述方格中,可能包含节点,也可能不包含节点;

节点有三种发送功率等级,由大到小依次记为Tmax,Tmid,Tmin,所述三个功率等级具体值可根据实际网络情况确定。

进一步根据所述实现动态高能效的移动Ad-hoc网络路由方法,步骤二中选择网格管理节点和网格候选节点,首先定义节点的三种状态:

①Discovery状态:节点无线收发模块开启,与网格内其它节点交换Discovery包;

②Active状态:节点无线收发模块处于开启状态,网格管理节点转发数据包,网格候选节点等待接收来自网格管理节点的数据包;

③Sleeping状态:节点无线收发模块关闭,节点不进行任何数据包收发工作;

节点状态转移具体过程和网格管理节点与网格候选节点的选择,按如下步骤进行:

步骤(2-1)同一网格中的节点之间交换Discovery包,初始时,节点均处于Discovery状态,每个节点的发送功率为Tmax;

定时器设置初值为Td,以Td为周期,节点向同一网格内其他节点广播Discovery包,广播完毕后,进入Active状态;

Discovery包中含有以下内容:

①nodeID:节点id,节点的位置信息;

②gridID:网格id,节点位置和网格尺寸;

③enat:节点活动时间,即节点将处于Active状态时间的估计值,enat与节点剩余能量有关;

④rank:节点等级,节点等级由两个因素确定,一是节点电池剩余电量,二是节点移动性,节点移动性由节点当前的速度进行衡量,而节点当前的移动速度可由GPS接收器得到,节点电池剩余电量越多,节点移动性越小,节点等级值就越大;

步骤(2-2)确定网格管理节点和网格候选节点,将网格内的节点表示为M1,M2,…,Mm,m为网格内节点的个数,Mk为网格内任意一个节点k(k=1,2…,m),Mk收到来自同一网格其他节点的Discovery包后,提取所有包的rank值,并和自身的rank值进行比较,如果Mk节点rank的值是最大的,则称为网格管理节点,节点继续处在Active状态,并且进行数据包的转发工作;如果Mk节点的rank值是次大的,则称为网格候选节点,节点继续处在Active状态,但节点不进行数据包的转发工作,只接收来自同一网格的网格管理节点的数据包;如果Mk节点的rank值既不是最大的,也不是次大的,则进入Sleeping状态;

设置定时器值为Ts,Ts优选如公式进行设置:Ts=enat1+enat2,其中enat1表示网格管理节点的节点活动时间,enat2表示网格候选节点的节点活动时间;

确保网格管理节点和网格候选节点的状态,当定时器值由Ts减小到0时,Sleeping状态的节点和Active状态的节点都进入Discovery状态,重复步骤二;

步骤(2-3)网格管理节点不满足路由条件时,将网格管理节点由Active状态转移到Sleeping状态,同时将网格候选节点设置为网格管理节点;

节点允许的最低剩余电池电量值称为节点剩余电量阈值,节点剩余电量阈值根据不同网络的要求和情况确定;

节点满足路由条件是指:节点剩余电池电量大于剩余电量阈值并且节点位置处于网格中;网格管理节点获取自己的剩余电池电量和地理位置信息,如果剩余电池电量值小于等于剩余电量阈值或者位置不在网格中,则向网格候选节点发送SuperWrong包,所述SuperWrong包含当前节点的nodeID、gridID和包的类型信息,网格候选节点接收SuperWrong包之后,转化为新的网格管理节点,开始执行数据包的转发工作;根据节点等级,确定新的网格候选节点。

进一步根据所述实现动态高能效的移动Ad-hoc网络路由方法,步骤三中选择最短路由路径,在任意一次通信过程中,源节点首先将数据包发送到其所在网格的管理节点,然后数据包在路由路径上转发,到达目的节点所在网格的网格管理节点,最后由网格管理节点将数据包发送给目的节点;

每个网格中由网格管理节点承担网格的路由功能,负责数据包的转发工作,本步骤中提到节点均指网格管理节点,发送节点和接收节点也分别代表源和目的节点所在网格的网格管理节点;

利用最小生成树算法计算从发送节点到接收节点的最短路径,最短指实际位置距离最短,具体步骤如下:

①节点通过定位模块收集位置信息;

②将位置信息封装到数据包中;

③将数据包广播到网络中所有其它节点,优选的广播算法使用泛洪算法;

④节点从接收到的数据包中提取每个节点的位置信息,即得到一个带权重的无向图,当节点之间的距离大于节点广播范围时,节点之间无连接,当节点之间的距离小于或等于节点广播范围时,节点之间有连接;

⑤节点在得到的带权无向图中用最小生成树算法生成最小生成树,即最短路径。

进一步根据所述实现动态高能效的移动Ad-hoc网络路由方法,步骤四中动态设置路由节点发送功率,实现移动Ad-hoc网络路由选择高能效;

每个网格中由网格管理节点承担网格的路由功能,负责数据包的转发工作,本步骤中提到节点均指网格管理节点;

得到的最短路径中,每个路由节点依次记为N1,N2,N3,…,Nn,n表示具体路由路径上节点个数,N1表示源节点,Nn表示目的节点,Nk为N1到Nn之间的任意一点k(k=1,2…,n);

节点Nk和节点Nk+1互相通信,称Nk为发送节点,Nk+1称为接收节点,按如下步骤进行:

步骤(4-1)设置路径上每个节点的初始发送功率,发送节点发送给接收节点的功率控制包称为ListenContrl,ListenContrl包中包含发送节点与接收节点的nodeID、功率等级和包类型信息;接收节点返回给发送节点的确认包称为ACKListenContrl包,包中包含发送节点与接收节点NodeID、功率等级和包类型信息,发送节点和接收节点设置初始发送功率的过程如下:

发送节点过程如下:

①发送节点尝试用最小功率Tmin向接收节点发送包ListenContrl,发送完成后,设置定时器的值为Tp,Tp为包在发送节点与接收节点之间的传播时延,优选公式Tp=4r/c,式中r为网格尺寸,c为自由空间中电磁波的传播速度;

②如果在定时器未由Tp减小到0时接收到ACKListenContrl包并且ACKListenContrl包中功率等级与当前节点发送功率相同,则将发送节点发送功率设置为Tmin,否则,尝试用中值功率Tmid发送包ListenContrl,并重新设置定时器为Tp;

③如果在定时器未由Tp减小到0时接收到ACKListenContrl包并且ACKListenContrl包中功率等级与当前节点发送功率相同,则将发送节点发送功率设置为Tmid,否则,设置为最大功率Tmax;

接收节点过程如下:

接收节点在任何时刻接收到ListenContrl包时,向发送节点发送ACKListenContrl包,ACKListenContrl包中的功率等级与接收到的ListenContrl包中的功率等级相同;

步骤(4-2)数据发送过程中,根据发送节点和接收节点的位置变化速度,发送节点动态调整发送功率,具体过程如下:

①获得发送节点和接收节点的当前距离,从来自接收节点的数据包中提取接收节点的位置信息,在路由路径上,既有从发送节点发往接收节点的数据包也有接收节点发往发送节点的数据包;数据包在两个节点之间传递时包含两个节点的位置信息,根据发送节点和接收节点的位置信息,计算发送节点与接收节点之间的当前距离,称为Dnow,记DΔ为Dnow与前一次接收到数据包所计算Dnow的距离之差,当发送节点与接收节点之间的距离增加时,DΔ为正数;当发送节点与接收节点之间的距离减小时,DΔ为负数;

②发送节点调整发送功率,记P为发送节点功率,P小于等于发送节点的最大发送功率;α为环境衰减因子,在阴影衰落较为严重的情况下,α取值为4,自由空间情况下,α取值为2;θ为功率补偿系数,优选的θ取值为0.1,发送节点功率按照下式调整:

所述α和θ的值需要根据具体网络情况确定;

对于移动Ad-hoc网络中的任意一对源节点和目的节点,均可建立一条唯一的最短路径,并且该路径上的路由节点能够实现功率动态调整,从而实现高能效路由的预期结果。

本发明通过在在网格的每个方格中选择出一个网格管理节点和一个网格候选节点来承担路由工作的方法。提高了路由路径的稳定性和可靠性,增大了对网络移动性的适应能力,降低了数据包丢失的概率。通过在路由路径的每个节点上动态的调整发送功率,最大限度的降低转发数据包的能量消耗。

附图说明

图1为本发明所述的一种实现动态高能效的移动Ad-hoc网络路由方法的流程图;

图2为发明所述的一种实现动态高能效的移动Ad-hoc网络路由方法的节点状态转移图。

具体实施方式

图1为本发明所述的一种实现动态高能效的移动Ad-hoc网络路由方法的流程图,如图1所述,本发明所述的一种实现动态高能效的移动Ad-hoc网络路由方法包括确定节点所在网格、选择网格管理节点和网格候选节点、选择最短路由路径、动态设置发送功率四个步骤。本发明所述方法中节点有三种发送功率等级,由大到小依次记为Tmax,Tmid,Tmin。所述三个功率等级具体值可根据实际网络情况确定。

步骤一:确定节点所在网格。

节点可以根据GPS模块得到自己的位置信息,记为P(X,Y)。网格由方格组成,方格的边长称为网格尺寸,记为r。节点无线电传播距离为R,R已知,网格尺寸根据R来计算,具体公式为r=R/√5。对于网络内任意两个节点P1(X1,Y1)和P2(X2,Y2),若Int[X1/r]=Int[X2/r]且Int[Y2/r]=Int[Y2/r],则将节点P1、P2划分到同一网格,其中Int[]表示取整。。

所述方格中,可能包含节点,也可能不包含节点。

步骤二:选择网格管理节点和网格候选节点。

首先定义节点的三种状态:

①Discovery状态:节点无线收发模块开启,与网格内其它节点交换Discovery包。

②Active状态:节点无线收发模块处于开启状态,网格管理节点转发数据包,网格候选节点等待接收来自网格管理节点的数据包。

③Sleeping状态:节点无线收发模块关闭,节点不进行任何数据包收发工作。

图2为本发明所述一种实现动态高能效的移动Ad-hoc网络路由方法的节点状态转移图,如图2所示,节点状态转移具体过程和网格管理节点与网格候选节点的选择过程如下:

步骤(2-1)同一网格中的节点之间交换Discovery包

初始时,节点均处于Discovery状态,每个节点的发送功率为Tmax。定时器设置初值为Td,以Td为周期,节点向同一网格内其他节点广播Discovery包,广播完毕后,进入Active状态。

Discovery包中含有以下内容:

①nodeID:节点id,节点的位置信息。

②gridID:网格id,节点位置和网格尺寸。

③enat:节点活动时间,即节点将处于Active状态时间的估计值。enat与节点剩余能量有关。

④rank:节点等级。节点等级由两个因素确定,一是节点电池剩余电量,二是节点移动性。其中节点移动性由节点当前的速度进行衡量,而节点当前的移动速度可由GPS接收器得到。节点电池剩余电量越多,节点移动性越小,节点等级值就越大。

步骤(2-2)确定网格管理节点和网格候选节点。

将网格内的节点表示为M1,M2,…,Mm,m为网格内节点的个数,Mk为网格内任意一个节点k(k=1,2…,m),Mk收到来自同一网格其他节点的Discovery包后,提取所有包的rank值,并和自身的rank值进行比较,如果Mk节点rank的值是最大的,则称为网格管理节点,节点继续处在Active状态,并且进行数据包的转发工作;如果Mk节点的rank值是次大的,则称为网格候选节点,节点继续处在Active状态,但节点不进行数据包的转发工作,只接收来自同一网格的网格管理节点的数据包;如果Mk节点的rank值既不是最大的,也不是次大的,则进入Sleeping状态。

设置定时器值为Ts,Ts优选如公式进行设置:Ts=enat1+enat2,其中enat1表示网格管理节点的节点活动时间,enat2表示网格候选节点的节点活动时间。

确保网格管理节点和网格候选节点的状态,当定时器值由Ts减小到0时,Sleeping状态的节点和Active状态的节点都进入Discovery状态,重复步骤二。

步骤(2-3)网格管理节点不满足路由条件时,将网格管理节点由Active状态转移到Sleeping状态,同时将网格候选节点设置为网格管理节点。

节点允许的最低剩余电池电量值称为节点剩余电量阈值,节点剩余电量阈值根据不同网络的要求和情况确定。节点满足路由条件是指:节点剩余电池电量大于剩余电量阈值并且节点位置处于网格中。网格管理节点获取自己的剩余电池电量和地理位置信息,如果剩余电池电量值小于等于剩余电量阈值或者位置不在网格中,则向网格候选节点发送SuperWrong包,所述SuperWrong包含当前节点的nodeID、gridID和包的类型信息,网格候选节点接收SuperWrong包之后,转化为新的网格管理节点,开始执行数据包的转发工作。

步骤三:选择最短路由路径。

在任意一次通信过程中,源节点首先将数据包发送到其所在网格的管理节点处,然后数据包在路由路径上转发,到达目的节点所在网格的网格管理节点,最后由网格管理节点将数据包发送给目的节点。

每个网格中由网格管理节点承担网格的路由功能,负责数据包的转发工作,本步骤中提到节点均指网格管理节点,发送节点和接收节点也分别代表源节点和目的节点所在网格的网格管理节点。

本发明利用最小生成树算法计算从发送节点到接收节点的最短路径。最短指实际位置距离最短。具体步骤如下:

①节点通过定位模块收集位置信息;

②将位置信息封装到数据包中;

③将数据包广播到网络中所有其它节点,优选的广播算法使用泛洪算法;

④节点从接收到的数据包中提取每个节点的位置信息,即得到一个带权重的无向图。当节点之间的距离大于节点广播范围时,节点之间无连接,当节点之间的距离小于或等于节点广播范围时,节点之间有连接;

⑤节点在得到的带权无向图中用最小生成树算法生成最小生成树,即最短路径。

步骤四:动态设置路由节点发送功率,实现高能效。

每个网格中由网格管理节点承担网格的路由功能,负责数据包的转发工作,本步骤中提到节点均指网格管理节点。

得到的最短路径中,每个路由节点依次记为N1,N2,N3,…,Nn,n表示具体路由路径上节点个数,N1表示源节点,Nn表示目的节点。Nk为N1到Nn之间的任意一点k(k=1,2…,n),节点Nk和节点Nk+1互相通信,为便于说明,我们暂且称Nk为发送节点,Nk+1称为接收节点。

步骤(4-1)设置路径上每个节点的初始发送功率。

发送节点发送给接收节点的功率控制包称为ListenContrl,ListenContrl包中包含发送节点与接收节点的nodeID、功率等级和包类型信息。接收节点返回给发送节点的确认包称为ACKListenContrl包,包中包含发送节点与接收节点NodeID、功率等级和包类型信息。具体地,发送节点和接收节点设置初始发送功率的过程如下:

发送节点过程如下:

①发送节点尝试用最小功率Tmin向接收节点发送包ListenContrl,发送完成后,设置定时器的值为Tp。Tp为包在发送节点与接收节点之间的传播时延,优选公式Tp=4r/c,式中r为网格尺寸,c为自由空间中电磁波的传播速度。

②如果在定时器未由Tp减小到0时接收到ACKListenContrl包并且ACKListenContrl包中功率等级与当前节点发送功率相同,则将发送节点发送功率设置为Tmin,否则,尝试用中值功率Tmid发送包ListenContrl,并重新设置定时器为Tp。

③如果在定时器未由Tp减小到0时接收到ACKListenContrl包并且ACKListenContrl包中功率等级与当前节点发送功率相同,则将发送节点发送功率设置为Tmid,否则,设置为最大功率Tmax。

接收节点过程如下:

接收节点在任何时刻接收到ListenContrl包时,向发送节点发送ACKListenContrl包。ACKListenContrl包中的功率等级与接收到的ListenContrl包中的功率等级相同。

步骤(4-2)数据发送过程中,根据发送节点和接收节点的位置变化速度,发送节点动态调整发送功率,具体过程如下:

①获得发送节点和接收节点的当前距离。

从来自接收节点的数据包中提取接收节点的位置信息,在路由路径上,既有从发送节点发往接收节点的数据包也有接收节点发往发送节点的数据包;数据包在两个节点之间传递时包含两个节点的位置信息,根据发送节点和接收节点的位置信息,计算发送节点与接收节点之间的当前距离,称为Dnow。记DΔ为Dnow与前一次接收到数据包所计算Dnow的距离之差,当发送节点与接收节点之间的距离增加时,DΔ为正数;当发送节点与接收节点之间的距离减小时,DΔ为负数。

②发送节点调整发送功率。

记P为发送节点功率,P小于等于发送节点的最大发送功率。α为环境衰减因子,在阴影衰落较为严重的情况下,α取值为4,自由空间情况下,α取值为2。θ为功率补偿系数,优选的θ取值为0.1。发送节点功率按照下式调整:

在实际应用时,α和θ的值需要根据具体网络情况确定。

对于移动Ad-hoc网络中的任意一对源节点和目的节点,均可建立一条唯一的最短路径,并且该路径上的路由节点能够实现功率动态调整,从而实现高能效路由的预期结果。

以上仅是对本发明的优选实施方式进行了描述,并不将本发明的技术方案限制于此,本领域技术人员在本发明的主要技术构思的基础上所作的任何公知变形都属于本发明所要保护的技术范畴,本发明具体的保护范围以权利要求书的记载为准。

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