一种基于剩余能量的无线传感网路由方法

文档序号:7851290阅读:192来源:国知局

专利名称::一种基于剩余能量的无线传感网路由方法
技术领域
:本发明涉及无线传感网的路由方法,具体涉及无线传感网为节省传感器节点能量消耗,延长网络寿命,而采取的路由选择策略。
背景技术
:WSNs是由多个传感器节点组成的,面向数据应用的无线自组织网络。传感器节点在网络中可以充当数据采集者、数据传输者及数据聚合者的角色。在传感器网络中,路由协议的主要任务是通过协议在数据采集的源节点和查询目的节点之间寻找最优的路径,将数据帧沿此路径准确地从源节点发往目的节点。此外无线传感器网络中节点能量受限,且能量一旦耗尽将无法实时补充,因此传感网路由协议还需考虑如何更有效地利用节点能量。在平面路由方面,传统的洪泛路由方法不需要维护路由信息,节点向除数据帧上一跳节点外的所有相邻节点转发数据帧。这种以广播的方式在整个网络中传输查询请求和查询结果数据帧的方式消耗了较多的传感器节点能量,导致节点过早失效,因此不能满足传感器网络发展的需要。本发明提出了一种基于剩余能量的无线传感网路由方法,节点维护由邻居节点剩余能量和邻居节点距离网络中最近聚合节点的跳数等信息组成的路由信息表;节点依据剩余能量决定是否接收和转发数据帧;节点依据数据帧中表示该查询请求关键程度的属性,结合路由信息表动态确定向哪几个(或全部)邻居节点转发数据帧。在方法的设计中,主要以节点的剩余能量和距离网络中最近聚合节点的跳数为依据,选择数据帧的传输路径,因此方法有利于节省传感器节点能量,并在网络负载均衡方面有良好的表现。
发明内容技术问题本发明的目的在于提供一种节省节点能量消耗的无线传感器路由方法。通过在每一节点处维护一张由邻居节点剩余能量和邻居节点距离网络中最近聚合节点的跳数等信息组成的路由信息表,并以定时广播消息帧更新路由信息表内容;节点依据自身的剩余能量在网络中节点平均剩余能量序列中所处的位置决定是否接收和转发数据帧;节点根据数据帧中的“查询关键程度”属性并结合本节点的路由信息表确定数据帧转发的下一跳节点。技术方案本发明提出的基于剩余能量的无线传感网路由方法主要包括以下三个实施阶段路由信息维护阶段、数据帧接收阶段和数据帧转发阶段。路由信息维护阶段实现节点对路由信息表的维护和更新,为数据帧转发做好准备;数据帧接收阶段,实现对数据帧的接收或丢弃;数据帧转发阶段,确定数据帧转发的对象,从而实现数据帧在网络中的传输。本发明的基于剩余能量的无线传感网路由方法包括I.)适用的网络环境a.基站即Sink节点位置固定,布置于便于操作人员维护的场合,故不考虑能量限制的问题;b.聚合节点类似于分层路由协议中的簇首节点,具有较普通节点更强的数据计算能力、数据存储能力和更高的能量储备;2.)在数据帧中设置标识查询请求关键程度的属性Query_key,结合距离最近聚合节点跳数step_agt,给一些重要的数据帧选择冗余链路,使它们具有更高的传输可靠性;3.)用于维护节点路由信息表的广播消息巾贞brt_msg,它包含四个域{ID,node_energy,Time_stamp,step_agt},其中,ID:表示该巾贞发送节点的节点号;node_energy:表示该巾贞发送节点的当前剩余能量值;Time_stamp:表示广播巾贞的时间戳;step_agt:表示该帧发送节点到最近聚合节点的跳数;4.)用于封装感知数据的数据巾贞data_msg,它包含九个域{Src_ID,Dst_ID,Rem_energy,Time_stamp,DataSrc_ID,Seq_num,d,Query_key,Data},其中,Src_ID:表示当前数据巾贞所在节点的节点号;Dst_ID:表示数据巾贞下一跳节点的节点号;Rem_energy数组表示存放数据帧沿途所经节点的剩余能量值;Time_Stamp:表示数据帧时间戳;DataSrc_ID:表示数据巾贞中数据采集节点的节点号;Seq_num:表示数据巾贞序列号;d标识符表示用于标识该数据帧中的数据是否已经过数据聚合操作,d为O时,表示未经过数据聚合操作,否则表示已经过数据聚合操作;Query_key:表示查询关键程度;Data:表示数据;5.)节点的路由信息表由邻居节点路由项组成,每个路由项包含{ID,node_energy,Time_stamp,step_agt}这四个属性,其中,ID:表示邻居节点号;node_energy:表示邻居节点剩余能量;Time_stamp:表示路由生成或更新时间;step_agt:表示邻居节点至最近聚合节点的跳数;基于剩余能量的无线传感网路由方法包括路由信息维护阶段、数据帧接收阶段和数据帧转发阶段;并按如下步骤安排I.)路由信息维护阶段聚合节点每隔固定的时间间隔发送一次广播消息帧brt_msg,各节点依据收到的广播消息巾贞brt_msg中邻居节点的当前信息及时生成或更新本节点路由信息表的路由项,然后依据本节点的信息对广播消息巾贞brt_msg更新,并向相邻节点广播更新后的广播消息巾贞brt_msg,节点收到广播消息巾贞brt_msg后,进行路由信息维护步骤如下I.O:根据广播消息巾贞brt_msg中的发送节点号ID,查找路由信息表routing_table的邻居节点号ID等于广播消息巾贞brt_msg中的发送节点号ID的路由项routing_item,如果未找到,贝1J采用广播消息巾贞brt_msg的内容在路由信息表中生成一新的路由项routing_item,转步骤I.5)执行;如果找到后,则判断该路由项的邻居节点至最近聚合节点的跳数step_agt是否不等于广播消息巾贞brt_msg中距离最近聚合节点跳数step_agt,若是,则执行步骤I.2),否则跳过步骤I.2)直接执行步骤I.3);I.2)用广播消息巾贞brt_msg中距离最近聚合节点跳数step_agt更新路由信息表routing_table中查找到的路由项routing_item的邻居节点至最近聚合节点的跳数step_agt;I.3):判断广播消息巾贞brt_msg中节点剩余能量node_energy是否小于路由信息表routing_table中查找到的路由项routing_item的邻居节点剩余能量node_energy;若是,则执行步骤I.4),否则跳过步骤I.4)直接执行步骤I.5);I.4):用广播消息巾贞brt_msg中节点剩余能量node_energy更新路由信息表routing_table中查找到的路由项routing_item的邻居节点剩余能量node_energy;I.5):以当前节点号更新广播消息巾贞brt_msg中发送节点号ID;再以本节点的剩余能量更新广播消息巾贞brt_msg中节点剩余能量node_energy;更新广播消息巾贞brt_msg中距离最近聚合节点跳数step_agt,令其值加1,即表示,数据帧经过当前节点可以到达数据聚合节点,且跳数为step_agt+l;1.6)向邻居节点广播更新后的广播消息巾贞brt_msg;2.)数据帧接收阶段,节点实现接收数据帧的步骤如下2.I):节点的接收队列检测到有转发来的数据巾贞data_msg,提取出数据巾贞data_msg的时间戳Time_stamp、数据采集节点号DataSrc_ID、数据巾贞序列号Seq_num、数据巾贞沿途所经节点的剩余能量数组Rem_energy和是否已经过数据聚合操作标识符d;2.2):根据时间戳Time_Stamp,判断是否超时,若超时则不接收该数据帧,结束,否则执行步骤2.3);2.3):根据数据采集节点号DataSrc_ID和数据巾贞序列号Seq_num,判断本节点中是否存在与数据采集节点号DataSrc_ID和数据巾贞序列号Seq_num都相等的数据巾贞?若存在,贝U表明是数据帧副本,则不接收该数据帧,结束,否则执行步骤2.4);2.4):将数据巾贞中记录沿途所经节点的剩余能量,即数据巾贞data_msg中Rem_energy数组中记录沿途所经各节点的剩余能量,作为此时网络中节点平均剩余能量的参考,和本节点剩余能量一起作从大到小的排序;假定设置阀值为50%,即若本节点剩余能量处于排序后数列的前50%,则本节点接收该数据帧,转步骤2.5)执行,否则不接收该数据帧,结束;2.5):若本节点是聚合节点,且数据聚合操作标识符d等于O,则对数据巾贞data_msg中的数据Data执行预定的数据聚合操作;2.6):进入数据帧转发阶段;3.)数据帧转发阶段节点实现数据帧转发的步骤如下3.I):从数据帧data_msg中取出本数据帧所对应查询请求的查询关键程度标识Query_key,记其值为k;3.2):查找本节点的路由信息表routing_table,统计表中路由项routing_item的数目,即活动的邻居节点个数,记为m,并将路由项routing_item按距离最近聚合节点跳数step_agt的值作递增排序;3.3)比较k与m的大小,若k〈m则生成向排序后的路由项routing_item中的前k个邻居节点转发的数据帧,即将路由项routingjtem中的前k个邻居节点号ID分别写入k个数据巾贞data_msg下一跳节点号Dst_ID中,若k>=m则生成向所有路由项routing_item表示的m个邻居节点转发的数据巾贞,即将路由项routing_item中的m个邻居节点号ID分另Ij写入m个数据巾贞data_msg下一跳节点号Dst_ID中;3.4):转发数据帧。有益效果传感器节点能量有限的特点使得网络可能在任意时刻发生拓扑结构变化,通过基于剩余能量的无线传感网路由方法的路由信息维护阶段,维护了相邻节点之间的路由信息,以确保数据帧传输时网络畅通;通过基于剩余能量的无线传感网路由方法的数据帧接收阶段,依据当前节点的剩余能量在网络节点平均剩余能量序列中所处的位置决定是否接收数据帧;通过基于剩余能量的无线传感网路由方法的数据帧转发阶段,依据每个数据帧的“查询关键程度”并结合当前节点的路由信息表,选取当前节点的I个、多个或全部邻居节点作为数据帧转发的下一跳。该方法能较好地适应无线传感器网络能量有限的特点,在节省节点能量消耗及网络负载均衡方面具有较好的表现。图I适用的网络环境图,图2路由信息维护流程图,图3数据帧接收流程图,图4数据帧转发流程图,图5路由信息维护示意图,图6数据帧接收、转发示意图。具体实施例方式权利要求1.一种基于剩余能量的无线传感网路由方法,其特征在于该方法包括适用的网络环境a.基站即Sink节点位置固定,布置于便于操作人员维护的场合,故不考虑能量限制的问题;b.聚合节点类似于分层路由协议中的簇首节点,具有较普通节点更强的数据计算能力、数据存储能力和更高的能量储备;在数据帧中设置标识查询请求关键程度的属性Query_key,结合距离最近聚合节点跳数step_agt,给一些重要的数据帧选择冗余链路,使它们具有更高的传输可靠性;用于维护节点路由信息表的广播消息巾贞brt_msg,它包含四个域{ID,node_energy,Time_stamp,step_agt},其中,ID:表示该巾贞发送节点的节点号;node_energy:表示该巾贞发送节点的当前剩余能量值;Time_stamp:表示广播巾贞的时间戳;step_agt:表示该帧发送节点到最近聚合节点的跳数;用于封装感知数据的数据巾贞data_msg,它包含九个域{Src_ID,Dst_ID,Rem_energy,Time_stamp,DataSrc_ID,Seq_num,d,Query_key,Data},其中,Src_ID:表示当前数据巾贞所在节点的节点号;Dst_ID:表示数据巾贞下一跳节点的节点号;Rem_energy数组表示存放数据帧沿途所经节点的剩余能量值;Time_Stamp:表示数据帧时间戳;DataSrc_ID:表示数据巾贞中数据采集节点的节点号;Seq_num:表示数据巾贞序列号;d标识符表示用于标识该数据帧中的数据是否已经过数据聚合操作,d为O时,表示未经过数据聚合操作,否则表示已经过数据聚合操作;Query_key:表示查询关键程度;Data:表示数据;节点的路由信息表由邻居节点路由项组成,每个路由项包含{ID,node_energy,Time_stamp,step_agt}这四个属性,其中,ID:表示邻居节点号;node_energy:表示邻居节点剩余能量;Time_stamp:表示路由生成或更新时间;step_agt:表示邻居节点至最近聚合节点的跳数;基于剩余能量的无线传感网路由方法包括路由信息维护阶段、数据帧接收阶段和数据帧转发阶段;并按如下步骤安排I.)路由信息维护阶段聚合节点每隔固定的时间间隔发送一次广播消息帧brt_msg,各节点依据收到的广播消息巾贞brt_msg中邻居节点的当前信息及时生成或更新本节点路由信息表的路由项,然后依据本节点的信息对广播消息巾贞brt_msg更新,并向相邻节点广播更新后的广播消息巾贞brt_msg,节点收到广播消息巾贞brt_msg后,进行路由信息维护步骤如下I.I):根据广播消息巾贞brt_msg中的发送节点号ID,查找路由信息表routing_table的邻居节点号ID等于广播消息巾贞brt_msg中的发送节点号ID的路由项routing_item,如果未找到,贝1J采用广播消息巾贞brt_msg的内容在路由信息表中生成一新的路由项routing_item,转步骤I.5)执行;如果找到后,则判断该路由项的邻居节点至最近聚合节点的跳数step_agt是否不等于广播消息巾贞brt_msg中距离最近聚合节点跳数step_agt,若是,则执行步骤I.2),否则跳过步骤I.2)直接执行步骤I.3);I.2)用广播消息巾贞brt_msg中距离最近聚合节点跳数step_agt更新路由信息表routing_table中查找到的路由项routing_item的邻居节点至最近聚合节点的跳数step_agt;I.3):判断广播消息巾贞brt_msg中节点剩余能量node_energy是否小于路由信息表routing_table中查找到的路由项routing_item的邻居节点剩余能量node_energy;若是,则执行步骤I.4),否则跳过步骤I.4)直接执行步骤I.5);I.4):用广播消息巾贞brt_msg中节点剩余能量node_energy更新路由信息表routing_table中查找到的路由项routing_item的邻居节点剩余能量node_energy;I.5):以当前节点号更新广播消息巾贞brt_msg中发送节点号ID;再以本节点的剩余能量更新广播消息巾贞brt_msg中节点剩余能量node_energy;更新广播消息巾贞brt_msg中距离最近聚合节点跳数step_agt,令其值加1,即表示,数据帧经过当前节点可以到达数据聚合节点,且跳数为step_agt+l;.1.6)向邻居节点广播更新后的广播消息巾贞brt_msg;.2.)数据帧接收阶段,节点实现接收数据帧的步骤如下.2.I):节点的接收队列检测到有转发来的数据巾贞data_msg,提取出数据巾贞data_msg的时间戳Time_stamp、数据采集节点号DataSrc_ID、数据巾贞序列号Seq_num、数据巾贞沿途所经节点的剩余能量数组Rem_energy和是否已经过数据聚合操作标识符d;.2.2):根据时间戳Time_Stamp,判断是否超时,若超时则不接收该数据帧,结束,否则执行步骤2.3);.2.3):根据数据采集节点号DataSrc_ID和数据巾贞序列号Seq_num,判断本节点中是否存在与数据采集节点号DataSrc_ID和数据巾贞序列号Seq_num都相等的数据巾贞?若存在,则表明是数据帧副本,则不接收该数据帧,结束,否则执行步骤2.4);.2.4):将数据巾贞中记录沿途所经节点的剩余能量,即数据巾贞data_msg中Rem_energy数组中记录沿途所经各节点的剩余能量,作为此时网络中节点平均剩余能量的参考,和本节点剩余能量一起作从大到小的排序;假定设置阀值为50%,即若本节点剩余能量处于排序后数列的前50%,则本节点接收该数据帧,转步骤2.5)执行,否则不接收该数据帧,结束;.2.5):若本节点是聚合节点,且数据聚合操作标识符d等于0,则对数据巾贞data_msg中的数据Data执行预定的数据聚合操作;.2.6):进入数据帧转发阶段;.3.)数据帧转发阶段节点实现数据帧转发的步骤如下.3.I):从数据帧data_msg中取出本数据帧所对应查询请求的查询关键程度标识Query_key,记其值为k;.3.2):查找本节点的路由信息表routing_table,统计表中路由项routing_item的数目,即活动的邻居节点个数,记为m,并将路由项routing_item按距离最近聚合节点跳数step_agt的值作递增排序;.3.3)比较k与m的大小,若k〈m则生成向排序后的路由项routing_item中的前k个邻居节点转发的数据帧,即将路由项routingjtem中的前k个邻居节点号ID分别写入k个数据巾贞data_msg下一跳节点号Dst_ID中,若k>=m则生成向所有路由项routing_item表示的m个邻居节点转发的数据巾贞,即将路由项routing_item中的m个邻居节点号ID分另Ij写入m个数据巾贞data_msg下一跳节点号Dst_ID中;.3.4):转发数据帧。全文摘要本发明是一种基于剩余能量的无线传感网路由方法,该路由方法包括路由信息维护阶段、数据帧接收阶段和数据帧转发阶段;在该方法中,节点维护由邻居节点的剩余能量、邻居节点距离网络中最近聚合节点(AggregationNode)的跳数等信息组成的路由信息表;节点依据剩余能量决定是否接收和转发数据帧;节点依据数据帧中表示该查询请求关键程度的属性,结合路由信息表动态确定向哪几个(或全部)邻居节点转发数据帧。方法在节省节点能量消耗及网络负载均衡方面具有较好的表现。文档编号H04W40/10GK102711213SQ20121014968公开日2012年10月3日申请日期2012年5月14日优先权日2012年5月14日发明者管有庆,顾礼君申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1