法律状态公告日
法律状态信息
法律状态
2017-03-08
授权
授权
2014-03-26
实质审查的生效 IPC(主分类):H04W40/08 申请日:20131210
实质审查的生效
2014-02-26
公开
公开
技术领域
本发明涉及水声通信网络网络层的路由协议,尤其涉及一种基于功率控制的簇间虚拟骨干路由协议方法,属于水声信号处理技术领域。
技术背景
很多分簇协议在簇头选举和簇构建完成后,数据的传输仅仅依靠簇头节点通过单跳通信模式将数据直接发送到基站,如果基站远离被监测区域,这将会消耗较多的能量,另外,这也要求簇头节点有足够大的通信功率,能够直接与基站通信,而这对于水下传感器节点来说很不现实,因此许多研究机构和个人针对簇间多跳通信模式即基于簇结构的多跳路由协议展开了研究。
在基于簇结构的网络中,簇间通信通常结合虚拟骨干网技术和功率控制技术,骨干路由的查找要求骨干节点尽可能的以最小功率(最短路径)方法来连接另一个骨干节点。VikasKawadia和P.R.Kumar提出的CLUSTERPOW协议使用协商路由表的方法来寻找骨干网络里的最佳路由。
CLUSTERPOW协议是一种基于功率控制技术的针对不同目的节点自适应地调整到合适发射功率的路由协议。该协议通过握手协议来建立本地功率等级路由表,每个骨干节点建立完自己本地的各个功率等级的路由表后,将自己的路由表信息通过包在全网内广播,这样网络中的骨干节点就知道了其他骨干节点的本地路由表信息。为了寻找功率最优化的路由,每一个骨干节点在转发数据包时,还必须建立一个核心路由表,核心路由表的功能是提供了到达目的节点的最短路由。核心路由表是在协商了本地的路由表之后,选择最小功率路由并且把将其复制到核心路由表内。核心路由表比普通路由表多出多出一个“发射功率”域,该域指出了到达下一跳节点所需的发射功率等级。骨干节点根据核心路由表将发射功率调整到相应等级,然后将数据转发给下一跳节点。类似地,下一跳节点在转发数据时建立自己的核心路由表并转发数据。每个中继节点建立自己的核心路由表同时转发数据包,直到将数据包发送到目的节点。另外,为避免路由环路的出现,即防止节点之间的信息传递陷入死循环,CLUSTERPOW规定在单个数据包的传输过程中节点所使用的发射功率必须是单调非递增的。但是CLUSTERPOW协议为避免产生路由回路,在数据包的一次发送过程中使用非递增的发射功率,这在一定程度上造成了发射功率的浪费。
骨干节点的定义是:一个无线传感器网络划分为多个独立自治的小网络,每个小网络就是一个簇,根据簇头选取协议选取每个簇的簇头结点,簇头节点担任簇间虚拟骨干网的骨干节点(虚拟骨干网通常由簇头和一些普通节点共同构成,也可以仅由功能较强的簇头形成虚拟骨干网络;骨干节点可以由通过分簇协议选举出的簇头节点来担任)进行数据的转发工作;结合功率控制技术选取特定的功率等级数目(传输功率与节点间距离有关,增加功率等级数目可以更精确地调节发射功率,由此推测当功率等级数超过某个值时继续增加将不再明显节约能量,但小的功率等级数则更易于实现,功率等级数目的选取需要根据不同的网络应用来设定),并利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表(骨干节点以每一个离散的功率等级pi发送一个probe包,去探测在接收范围之内的其他骨干节点,其他骨干节点一旦收到probe包,就会回复一个prack包,骨干节点将给自己发送确认包的节点编号存入自己的pi等级的路由表中。这样每个骨干节点就为每个功率等级维护一个路由列表,最后每个骨干节点形成本地功率等级路由表,结合网络中其他骨干节点的本地功率等级路由表形成全局功率等级路由表);当骨干节点有数据包需要发送时,此骨干节点称为源节点。
技术内容:
解决的技术问题:针对CLUSTERPOW协议为避免产生路由回路,在数据包的一次发送过程中使用非递增的发射功率而造成发射功率浪费的现象,对CLUSTERPOW协议进行改进,改进的CLUSTERPOW协议有效避免了路由环路的出现,同时降低了发射功率消耗。
本发明采用的技术方案:一种基于功率控制的簇间虚拟骨干路由协议方法,依据CLUSTERPOW协议方法,使用协商路由表的方法来寻找骨干网络里的最佳路由,结合功率控制技术选取功率等级数目并利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表,针对不同数目的节点自适应地调整到合适发射功率实现路由,为了寻找功率最优化的路由,每一个骨干节点在转发数据包时须建立一个核心路由表,核心路由表提供了到达目的节点的最短路由,核心路由表在协商了本地的路由表之后,选择最小功率路由并且把将其复制到核心路由表内,骨干节点根据核心路由表将发射功率调整到相应等级,然后将数据转发给下一跳中继节点,下一跳中继节点在转发数据时建立自己的核心路由表并转发数据,每个中继节点建立自己的核心路由表同时转发数据包,直到将数据包发送到目的节点,发送数据包的骨干节点为源节点,源节点到目的节点最短路径上经历的节点为中继节点,其特征在于:改进CLUSTERPOW协议方法,在一个数据包的发送过程中仅在源节点处根据功率等级路由表执行一次Dijkstra算法查找到达目的节点的功耗最小路径并将该路径上的节点ID号保存到核心路由表,以避免路由环路的出现,同时降低发射功率消耗,包括以下步骤:
1)基于CLUSTERPOW协议,结合功率控制技术选取的功率等级数目,每个区域中的骨干节点利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表;
2)当骨干节点有数据包需要发送时,该骨干节点根据先前保存的各功率等级路由表执行Dijkstra算法查找到达目的节点的功耗最小路径并将该路径上的节点ID号保存到核心路由表;
3)依据DSR协议,数据包的源节点将核心路由表封装到数据包的头部,并将发射功率调整到相应功率等级,然后将数据包发送到下一跳中继节点;
4)下一跳中继节点在收到数据包时首先向上一跳中继节点发送回复确认包,然后对收到的数据包进行解封装,判断自己是否是目的节点,若是目的节点,则转到步骤6),若不是目的节点,则转到步骤5);
5)取出数据包核心路由表中第一个中继节点ID号码作为自己的下一跳中继节点ID号,并将核心路由表中的剩余路由信息存储到自己的核心路由表,同样地将自己的核心路由表封装到数据包的头部,最后根据自己的功率等级路由表将发射功率调节到相应功率等级,并将该数据包转发给自己的下一跳中继节点;
6)每个中继节点建立自己的核心路由表同时转发数据包,中继节点如果收到回复包,则说明数据转发成功,如果没有收到回复确认包,表明先前的路由失效,该中继节点需要根据自己的各功率等级路由表执行Dijkstra算法查找到达目的节点的功耗最小路径并更新自己的核心路由表,将更新后的路由表封装到数据包头部并发送给下一跳中继节点;
7)下一跳节点重复执行步骤4),直到数据包到达目的结点;
8)数据包发送结束。
本发明方法的优点和显着效果:
1)在路由查找过程中,结合Dijkstra算法根据目的节点自适应地选取功率消耗最小的路径。
2)将所查到的最优路径封装到数据包中,有效避免了路由环路的出现。
3)在一个数据包的发送过程中,协议仅在源节点处被执行,其他转发节点无需执行复杂的路由查找协议,这一定程度上降低了节点的数据处理等开销。
附图说明:
图1是骨干节点X1到XN的最优路径;
图2是CLUSTERPOW协议的数据包格式;
图3是改进的CLUSTERPOW协议的数据包格式;
图4是两协议单个数据包能量消耗差值随功率等级数和路径上节点数目的变化曲线;
图5是网络仿真采用的拓扑结构图;
图6是两协议在不同功率等级数目下单个数据包平均能量消耗的对比;
图7是两协议在高数据速率下单个数据包能量消耗随负载变化的对比;
图8是两协议在低数据速率下单个数据包能量消耗随负载变化的对比;
图9是两协议在数据包信息位长度取不同值时单个数据包平均能量消耗随负载变化的对比;
图10是水池实验监控界面;
图11是水池实验中两协议单数据包的平均能量消耗比较。
具体实施案例:
为更进一步阐述本发明为达成预定发明目的所采取的方法,以下结合实施例,对本发明方法进行详细说明。
实施例1:
1、为了准确估计改进的CLUSTERPOW协议的能耗性能,下面从理论上推算一下改进的CLUSTERPOW协议和CLUSTERPOW协议的能量消耗情况。
如图1所示,假设X1要向XN发送数据包,假设用Dijkstra算法查找到功耗最小路径为X1-X2-X3-X4……XN-1-XN。考虑到两协议的发射功耗相差最小情况下CLUSTERPOW协议和改进的CLUSTERPOW协议仅在第一跳即X1-X2时存在发射功率等级差异,,假设路径上的其他发射功率等级如图1中所示,其中P1和P2为相邻的两个功率等级,且有P1≤P2,那么在X1-X2这条路径上CLUSTERPOW协议的发射功率为P2,改进的CLUSTERPOW协议的发射功率为P1。CLUSTERPOW协议和改进的CLUSTERPOW协议数据包格式如图2和图3所示,那么两协议发送一个数据包的总能量消耗E1和E2如式(1)和式(2)所示(此处忽略确认包)。
>
>
其中,D为CLUSTERPOW协议的一个数据包大小,Rb为发射数据率,Prcv为传感器节点接收功率,Nb为数据包中节点ID号所占有的比特数。那么CLUSTERPOW协议和改进的CLUSTERPOW协议发送一个数据包总共所消耗的能量差值E为:
E=E1-E2 (3)
将式(1)和式(2)带入式(3)可得
>
CLUSTERPOW协议和改进的CLUSTERPOW协议发送一个数据包总共所消耗的能量差值E与D、功率等级P1和P2、路径上节点数N、Rb、Prcv以及Nb有关。
由式(4)易于看出,对于水声通信网络来说,多数应用场合下会有E>0,即改进的CLUSTERPOW协议的能量消耗会低于CLUSTERPOW协议。这是因为:对于水声通信网络来说,水声信道的特殊性以及水下传感器节点昂贵的硬件成本决定了通常情况下网络的规模不会很大,尤其是在分簇式网络里,簇头的数目不会很多,在簇间通信过程中,数据转发跳数一般较少,所以N的取值一般也不会很大;数据包头中路由控制信息的存在使得D与N的差值较大;考虑到实现的复杂性水声通信网络中的功率等级数目也不会很大且通常发射功率比接收功率大得多,因此P2与P1的差距相对来说不会很小。
2、当D=512bit、Rb=320bit/s、Prcv=0.9W、Nb=8bit、网络中相邻节点间的最远距离为50km、最短距离为18km时,E随功率等级数GradeNum和N的变化情况如图4所示。由图中可以看出,功率等级数目越小,能量差值越大,N越小即路由跳数越少,能量差值亦越大。并且不同的功率等级数目下,当N值较小时总有E>0。由于分簇式网络里N的取值通常不会很大,因此改进的CLUSTERPOW协议在分簇式网络的簇间虚拟骨干路由协议上会表现出一定的优越性能。
实施例2:
在OPNETModeler14.5平台上对CLUSTERPOW协议和改进的CLUSTERPOW协议进行仿真比较。
参看图5,为网络仿真采用的拓扑结构图,在100km×100km的仿真场景中随机布放了50个节点,其中10个簇头节点和40个普通节点。仿真中骨干节点仅由所有的簇头节点来担当。仿真中每个节点产生自己的数据包,如果节点是普通节点,先将数据包发送到自己的簇头节点,经簇头节点转发。如果目的节点是普通节点,则先将数据包发送到其簇头节点进行转发。MAC层采用简单的载波检测(侦听)多路访问CSMA(CarrierSenseMultipleAccess)协议。主要仿真参数如下:传播速度为1500m/s;中心频率为10kHz;数据包中节点ID号所占有的比特数为8bit;节点数据速率和数据包中信息位长度均在仿真中按需设定。仿真事务流的包产生时间间隔服从均匀分布,包到达时间间隔均值亦在仿真中按需设定。节点的负载包括输入负载以及中继的数据流。通过仿真分别得到了CLUSTERPOW协议和改进的CLUSTERPOW协议的单个数据包平均能量消耗随功率等级数目、网络平均负载以及数据包中信息位长度的变化对比图6~9。
参看图6,为两协议在不同功率等级数目下单个数据包平均能量消耗的对比。从图中可以看出CLUSTERPOW协议和改进的CLUSTERPOW协议的单个数据包平均能量消耗均随着功率等级数目的增大而逐渐减小。当功率等级数大于等于2时,改进的CLUSTERPOW协议的单个数据包能量消耗明显低于CLUSTERPOW协议。这是因为采用更多的功率等级可使通信系统更有效、更精确地调节功率的分配,这样节点就可以根据传输需要选用合适的功率发送数据,从而减少总的能量消耗和节点干扰,但是使用太多的功率等级并不实际,这会增加系统设计的复杂度。并且从图中可以看出,当等级数大于3时,两种协议均不能显著地改进系统性能,另外结合图2并通过综合考虑单个数据包平均能量消耗和实现复杂性,功率等级数采用3和4均是比较合适的。
参看图7,为两协议在高数据速率下单个数据包能量消耗随负载变化的对比,此时仿真中设定数据速率为320bit/s,仿真事务流的包到达时间间隔均值分别0.2秒,0.5秒,0.9秒,20秒,90秒,150秒,200秒,300秒。每组仿真的时间设为2小时,每组仿真运行5次,取平均得到仿真结果。由图可以看出两种协议的单个数据包平均能量消耗均随着负载的增大逐渐增大,最后趋于平稳。CLUSTERPOW协议为避免产生路由回路,在数据包的一次发送过程中使用非递增的发射功率,这在一定程度上造成了发射功率的浪费即造成了能量的浪费,而改进的CLUSTERPOW协议解决了这一缺陷,使用功耗最优路径,故单个数据包平均能量消耗明显比CLUSTERPOW协议减小了很多。
参看图8,为两协议在低数据速率下单个数据包能量消耗随负载变化的对比,此时仿真中设定数据速率为80bit/s,仿真事务流的包到达时间间隔均值分别6秒,7秒,8秒,9秒,10秒,13秒,15秒,30秒,45秒,60秒,75秒,90秒,105秒,120秒。由图可以看出,低数据率下,两种协议的单个数据包平均能量消耗仍然随着负载的增大均逐渐增大,最后趋于平稳,但改进的CLUSTERPOW协议的单个数据包能量消耗仍然低于CLUSTERPOW协议。与图7相比,低数据率下,两种协议的能量差距加大,这是因为发射时间增大,发射能量消耗增大
参看图9,为两协议在数据包信息位长度取不同值时单个数据包平均能量消耗随负载变化的对比,此时仿真中设定信息位长度分别为256bit,512bit和1024bit。从图(改进前表示CLUTERPOW协议,改进后表示改进的CLUTERPOW协议)中可以看出数据包信息位长度在三种取值下,改进的CLUTERPOW协议的单数据包能量消耗均小于CLUTERPOW协议,并且随着数据信息位长度的增加两者的差值也逐渐增大。
参看图10,为水池实验监控界面,实验中仅采用了四个modem作为簇头节点,而簇成员节点采用虚拟节点来模拟真实modem,每个簇有三个成员节点,图中簇头0和簇头3正在进行通信。
参见图11,为水池实验中两协议单数据包的平均能量消耗比较。由图可以看出,在某些特定轮上改进的CLUSTERPOW协议的能量消耗低于CLUSTERPOW协议,这是因为CLUSTERPOW协议为避免路由环路使用非递增的功率等级,这一定程度上造成了能源的浪费,而改进的CLUSTERPOW协议选取合适的发射功率等级,节省了能量。
综合以上所有的仿真结果分析,可以得出与CLUSTERPOW协议相比,改进的CLUSTERPOW协议减小了网络的能量消耗,并进而延长了网络的生命周期。
机译: 一种基于减少DSL线路间交叉干扰的自适应功率调整方法及装置
机译: 一种基于减少DSL线路间交叉干扰的自适应功率调整方法及装置
机译: 一种基于减少DSL线路间交叉干扰的自适应功率调整方法及装置