一种基于功率控制的簇间虚拟骨干路由协议方法
【专利摘要】一种基于功率控制的簇间虚拟骨干路由协议方法,适用于水声通信领域。该方法在CLUSTERPOW协议的基础上进行了改进,结合功率控制技术选取合适的功率等级数目,每个骨干节点利用握手协议建立相应数目的各个功率等级路由表,骨干节点在转发数据时根据目的节点自适应地选择功率消耗最优路径,且在一个数据包的发送过程中仅在源节点处进行一次路由查找工作,并将所查找的路由封装到数据包中,有效避免了路由环路的出现,且其他转发节点无需执行复杂的路由查找协议。
【专利说明】一种基于功率控制的簇间虚拟骨干路由协议方法【技术领域】
[0001]本发明涉及水声通信网络网络层的路由协议,尤其涉及一种基于功率控制的簇间虚拟骨干路由协议方法,属于水声信号处理【技术领域】。
技术背景
[0002]很多分簇协议在簇头选举和簇构建完成后,数据的传输仅仅依靠簇头节点通过单跳通信模式将数据直接发送到基站,如果基站远离被监测区域,这将会消耗较多的能量,另外,这也要求簇头节点有足够大的通信功率,能够直接与基站通信,而这对于水下传感器节点来说很不现实,因此许多研究机构和个人针对簇间多跳通信模式即基于簇结构的多跳路由协议展开了研究。
[0003]在基于簇结构的网络中,簇间通信通常结合虚拟骨干网技术和功率控制技术,骨干路由的查找要求骨干节点尽可能的以最小功率(最短路径)方法来连接另一个骨干节点。VikasKawadia和P.R.Kumar提出的CLUSTERPOW协议使用协商路由表的方法来寻找骨干网络里的最佳路由。
[0004]CLUSTERPOW协议是一种基于功率控制技术的针对不同目的节点自适应地调整到合适发射功率的路由协议。该协议通过握手协议来建立本地功率等级路由表,每个骨干节点建立完自己本地的各个功率 等级的路由表后,将自己的路由表信息通过包在全网内广播,这样网络中的骨干节点就知道了其他骨干节点的本地路由表信息。为了寻找功率最优化的路由,每一个骨干节点在转发数据包时,还必须建立一个核心路由表,核心路由表的功能是提供了到达目的节点的最短路由。核心路由表是在协商了本地的路由表之后,选择最小功率路由并且把将其复制到核心路由表内。核心路由表比普通路由表多出多出一个“发射功率”域,该域指出了到达下一跳节点所需的发射功率等级。骨干节点根据核心路由表将发射功率调整到相应等级,然后将数据转发给下一跳节点。类似地,下一跳节点在转发数据时建立自己的核心路由表并转发数据。每个中继节点建立自己的核心路由表同时转发数据包,直到将数据包发送到目的节点。另外,为避免路由环路的出现,即防止节点之间的信息传递陷入死循环,CLUSTERPOW规定在单个数据包的传输过程中节点所使用的发射功率必须是单调非递增的。但是CLUSTERPOW协议为避免产生路由回路,在数据包的一次发送过程中使用非递增的发射功率,这在一定程度上造成了发射功率的浪费。
[0005]骨干节点的定义是:一个无线传感器网络划分为多个独立自治的小网络,每个小网络就是一个簇,根据簇头选取协议选取每个簇的簇头结点,簇头节点担任簇间虚拟骨干网的骨干节点(虚拟骨干网通常由簇头和一些普通节点共同构成,也可以仅由功能较强的簇头形成虚拟骨干网络;骨干节点可以由通过分簇协议选举出的簇头节点来担任)进行数据的转发工作;结合功率控制技术选取特定的功率等级数目(传输功率与节点间距离有关,增加功率等级数目可以更精确地调节发射功率,由此推测当功率等级数超过某个值时继续增加将不再明显节约能量,但 小的功率等级数则更易于实现,功率等级数目的选取需要根据不同的网络应用来设定),并利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表(骨干节点以每一个离散的功率等级Pi发送一个probe包,去探测在接收范围之内的其他骨干节点,其他骨干节点一旦收到probe包,就会回复一个prack包,骨干节点将给自己发送确认包的节点编号存入自己的Pi等级的路由表中。这样每个骨干节点就为每个功率等级维护一个路由列表,最后每个骨干节点形成本地功率等级路由表,结合网络中其他骨干节点的本地功率等级路由表形成全局功率等级路由表);当骨干节点有数据包需要发送时,此骨干节点称为源节点。
[0006]技术内容:
[0007]解决的技术问题:针对CLUSTERPOW协议为避免产生路由回路,在数据包的一次发送过程中使用非递增的发射功率而造成发射功率浪费的现象,对CLUSTERPOW协议进行改进,改进的CLUSTERPOW协议有效避免了路由环路的出现,同时降低了发射功率消耗。
[0008]本发明采用的技术方案:一种基于功率控制的簇间虚拟骨干路由协议方法,依据CLUSTERPOW协议方法,使用协商路由表的方法来寻找骨干网络里的最佳路由,结合功率控制技术选取功率等级数目并利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表,针对不同数目的节点自适应地调整到合适发射功率实现路由,为了寻找功率最优化的路由,每一个骨干节点在转发数据包时须建立一个核心路由表,核心路由表提供了到达目的节点的最短路由,核心路由表在协商了本地的路由表之后,选择最小功率路由并且把将其复制到核心路由表内,骨干节点根据核心路由表将发射功率调整到相应等级,然后将数据转发给下一跳中继节点,下一跳中继节点在转发数据时建立自己的核心路由表并转发数据,每个中继节点建立自己的核心路由表同时转发数据包,直到将数据包发送到目的节点,发送数据包的骨干节点为源节点,源节点到目的节点最短路径上经历的节点为中继节点,其特征在于:改进CLUSTERPOW协议方法,在一个数据包的发送过程中仅在源节点处根据功率等级路由表执行一次Dijkstra算法查找到达目的节点的功耗最小路径并将该路径上的节点ID号保存到核心路由表,以避免路由环路的出现,同时降低发射功率消耗,包括以下步骤:
[0009]I)基于CLUSTERPOW协议,结合功率控制技术选取的功率等级数目,每个区域中的骨干节点利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表;
[0010]2)当骨干节点有数据包需要发送时,该骨干节点根据先前保存的各功率等级路由表执行Di jkstra算法查找到达目的节点的功耗最小路径并将该路径上的节点ID号保存到核心路由表;
[0011]3)依据DSR协议,数据包的源节点将核心路由表封装到数据包的头部,并将发射功率调整到相应功率等级,然后将数据包发送到下一跳中继节点;
[0012]4)下一跳中继节点在收到数据包时首先向上一跳中继节点发送回复确认包,然后对收到的数据包进行解封装,判断自己是否是目的节点,若是目的节点,则转到步骤6),若不是目的节点,则转到步骤5);
[0013]5)取出数据包核心路由表中第一个中继节点ID号码作为自己的下一跳中继节点ID号,并将核心路由表中的剩余路由信息存储到自己的核心路由表,同样地将自己的核心路由表封装到数据包的头部,最后根据自己的功率等级路由表将发射功率调节到相应功率等级,并将该数据包转发给自己的下一跳中继节点;
[0014]6)每个中继节点建立自己的核心路由表同时转发数据包,中继节点如果收到回复包,则说明数据转发成功,如果没有收到回复确认包,表明先前的路由失效,该中继节点需要根据自己的各功率等级路由表执行Dijkstra算法查找到达目的节点的功耗最小路径并更新自己的核心路由表,将更新后的路由表封装到数据包头部并发送给下一跳中继节点;
[0015]7)下一跳节点重复执行步骤4),直到数据包到达目的结点;
[0016]8)数据包发送结束。
[0017]本发明方法的优点和显着效果:
[0018]I)在路由查找过程中,结合Dijkstra算法根据目的节点自适应地选取功率消耗最小的路径。
[0019]2)将所查到的最优路径封装到数据包中,有效避免了路由环路的出现。
[0020]3)在一个数据包的发送过程中,协议仅在源节点处被执行,其他转发节点无需执行复杂的路由查找协议,这一定程度上降低了节点的数据处理等开销。
【专利附图】
【附图说明】:
[0021 ] 图1是骨干节点X1到Xn的最优路径;
[0022]图2是CLUSTERPOW协议的数据包格式;
[0023]图3是改进的CLUSTERPOW协议的数据包格式;
[0024]图4是两协议单个数据包能量消耗差`值随功率等级数和路径上节点数目的变化曲线;
[0025]图5是网络仿真采用的拓扑结构图;
[0026]图6是两协议在不同功率等级数目下单个数据包平均能量消耗的对比;
[0027]图7是两协议在高数据速率下单个数据包能量消耗随负载变化的对比;
[0028]图8是两协议在低数据速率下单个数据包能量消耗随负载变化的对比;
[0029]图9是两协议在数据包信息位长度取不同值时单个数据包平均能量消耗随负载变化的对比;
[0030]图10是水池实验监控界面;
[0031]图11是水池实验中两协议单数据包的平均能量消耗比较。
[0032]具体实施案例:
[0033]为更进一步阐述本发明为达成预定发明目的所采取的方法,以下结合实施例,对本发明方法进行详细说明。
[0034]实施例1:
[0035]1、为了准确估计改进的CLUSTERPOW协议的能耗性能,下面从理论上推算一下改进的CLUSTERPOW协议和CLUSTERPOW协议的能量消耗情况。
[0036]如图1所示,假设X1要向Xn发送数据包,假设用Dijkstra算法查找到功耗最小路径为X1-X2-X3-X4……Xn^1-Xno考虑到两协议的发射功耗相差最小情况下CLUSTERPOW协议和改进的CLUSTERPOW协议仅在第一跳即X1-X2时存在发射功率等级差异,,假设路径上的其他发射功率等级如图1中所示,其中P1和P2为相邻的两个功率等级,且有P1SP2,那么在X1-X2这条路径上CLUSTERPOW协议的发射功率为P2,改进的CLUSTERPOW协议的发射功率为P1O CLUSTERPOW协议和改进的CLUSTERPOW协议数据包格式如图2和图3所示,那么两协议发送一个数据包的总能量消SE1和E2如式(I)和式(2)所示(此处忽略确认包)。
【权利要求】
1.一种基于功率控制的簇间虚拟骨干路由协议方法,依据CLUSTERPOW协议方法,使用协商路由表的方法来寻找骨干网络里的最佳路由,结合功率控制技术选取功率等级数目并利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表,针对不同数目的节点自适应地调整到合适发射功率实现路由,为了寻找功率最优化的路由,每一个骨干节点在转发数据包时须建立一个核心路由表,核心路由表提供了到达目的节点的最短路由,核心路由表在协商了本地的路由表之后,选择最小功率路由并且把将其复制到核心路由表内,骨干节点根据核心路由表将发射功率调整到相应等级,然后将数据转发给下一跳中继节点,下一跳中继节点在转发数据时建立自己的核心路由表并转发数据,每个中继节点建立自己的核心路由表同时转发数据包,直到将数据包发送到目的节点,发送数据包的骨干节点为源节点,源节点到目的节点最短路径上经历的节点为中继节点,其特征在于:改进CLUSTERPOW协议方法,在一个数据包的发送过程中仅在源节点处根据功率等级路由表执行一次Di jkstra算法查找到达目的节点的功耗最小路径并将该路径上的节点ID号保存到核心路由表,以避免路由环路的出现,同时降低发射功率消耗,包括以下步骤: 1)基于CLUSTERPOW协议,结合功率控制技术选取的功率等级数目,每个区域中的骨干节点利用握手协议建立相应数目的本地功率等级路由表和全局功率等级路由表; 2)当骨干节点有数据包需要发送时,该骨干节点根据先前保存的各功率等级路由表执行Di jkstra算法查找到达目的节点的功耗最小路径并将该路径上的节点ID号保存到核心路由表; 3)依据DSR协议,数据包的源节点将核心路由表封装到数据包的头部,并将发射功率调整到相应功率等级,然后将数据包发送到下一跳中继节点; 4)下一跳中继节点在收到数据包时首先向上一跳中继节点发送回复确认包,然后对收到的数据包进行解封装,判断自己是否是目的节点,若是目的节点,则转到步骤6),若不是目的节点,则转到步骤5); 5)取出数据包核心路由表中第一个中继节点ID号码作为自己的下一跳中继节点ID号,并将核心路由表中的剩余路由信息存储到自己的核心路由表,同样地将自己的核心路由表封装到数据包的头部,最后根据自己的功率等级路由表将发射功率调节到相应功率等级,并将该数据包转发给自己的下一跳中继节点; 6)每个中继节点建立自己的核心路由表同时转发数据包,中继节点如果收到回复包,则说明数据转发成功,如果没有收到回复确认包,表明先前的路由失效,该中继节点需要根据自己的各功率等级路由表执行Dijkstra算法查找到达目的节点的功耗最小路径并更新自己的核心路由表,将更新后的路由表封装到数据包头部并发送给下一跳中继节点; 7)下一跳节点重复执行步骤4),直到数据包到达目的结点; 8)数据包发送结束。
【文档编号】H04B11/00GK103607747SQ201310666860
【公开日】2014年2月26日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】李霞, 方世良, 王丽玮, 王永倩, 安良, 王晓燕 申请人:东南大学