一种低功耗有损网络的路由构建方法及系统的制作方法

文档序号:7777347阅读:408来源:国知局
一种低功耗有损网络的路由构建方法及系统的制作方法
【专利摘要】本发明涉及一种低功耗有损网络的路由构建方法及系统,所述方法包括:确定非根节点能够存储路由表项的最大值N;建立网络的上行路由,并将N置于建立上行路由的数据包中;各节点分别确定存储节点,保证各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,再基于链路信息建立网络的下行路由;各节点处理其接收到的数据包;根节点汇总自身存储的路由信息和链路信息,并生成从根节点到网络中任意节点的源路由。本发明通过限制非根节点存储的路由项数低于N以及改变构建网络的过程,解决了当网络规模较大时,RPL存储模式中某些节点不能提供足够大的存储资源及RPL非存储模式中根节点到网络较深节点的源路由的长度过长的问题。
【专利说明】一种低功耗有损网络的路由构建方法及系统
【技术领域】
[0001]本发明涉及无线传感器网络路由【技术领域】,特别是一种低功耗有损网络的路由构建方法及系统。
【背景技术】
[0002]无线传感器网络由大量低成本的微型传感器节点构成,协作地实现对所处环境的感知、收集、处理和控制,广泛地应用于国防军事、工业控制、城市交通、健康护理、环境监测、楼宇监控等诸多领域。
[0003]无线传感器节点在计算、存储和通信等方面的能力都十分有限,往往传感器节点要兼顾运行程序、安全机制、存储等多方面,所以本来有限的计算和存储资源就十分有限。由于这些原因,现存的路由协议如AODV、OLSR或者OSPF都不能满足无线传感器网络的要求,所以ffiTF ROLL工作组提出了 RPL (Routing Protocol for LLN,低功耗有损网络路由协议)路由算法。
[0004]RPL路由算法下行路由的建立过程中有两种模式,一种称为非存储模式,另一种称为存储模式。如果网络运行在非存储模式,非根节点不存储网络的路由信息,所有数据包必须先上行至根节点获得源路由,然后根据源路由下行至目的节点,这就导致了根节点附近的流量较大,所以根节点附近节点的能量消耗和计算负担比网络中其他节点大;而且,下行数据包需要根节点计算其到目的地的源路由,并将该源路由放入下行数据包的包头,所以当网络规模不断增大时,网络的通信开销也会随之增大。当网络运行在存储模式时,每一个节点都需要存储其子孙节点的路由信息,所以当网络规模很大时需要节点提供很大的存储资源存储路由信息,特别是根节点附近的节点,这就使得可能一些节点不能提供如此多的存储资源,从而成为网络的瓶颈。
[0005]针对上述问题,本发明提出了一种低功耗有损网络的路由构建方法及路由构建系统。

【发明内容】

[0006]本发明所要解决的技术问题是提供一种低功耗有损网络的路由构建方法及系统,用于解决现有RPL路由算法存在的局限性问题。
[0007]本发明解决上述技术问题的技术方案如下:一种低功耗有损网络的路由构建方法,包括:
[0008]步骤1,根据网络中各节点的存储资源、运行的程序和运行期间要存储的数据确定非根节点能够存储路由表项的最大值N;
[0009]步骤2,建立网络的上行路由,并将N置于用于建立上行路由的数据包中;
[0010]步骤3,各节点按其需要存储的路由表项大于N和等于N分别确定存储节点,通过设置存储节点使各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由;[0011]步骤4,基于步骤2和步骤3建立的上、下行路由,各节点通过事先设定的方式处理其接收到的数据包;
[0012]步骤5,经步骤4完成路由建立后,根节点汇总自身存储的路由信息和链路信息,并基于该路由信息和链路信息生成从根节点到网络中任意节点的源路由。
[0013]在上述技术方案的基础上,本发明还可以做如下改进。
[0014]进一步,所述步骤3中若节点需要存储的路由表项大于N,则所述步骤3包括:
[0015]步骤3A1,该节点发送消息通知其具有最大路由表项且没有被选为存储节点的非叶子节点;
[0016]步骤3A2,该节点将被选中的非叶子节点作为存储节点,并删除路由表中下一跳是该选中的非叶子节点的路由表项;
[0017]步骤3A3,存储节点将其与对应节点的链路信息发送给根节点,再向其父节点发送只包含存储节点自身信息的目标广播对象消息;
[0018]步骤3A4,若该节点存储的路由表项还是大于N,则重复步骤3A1至3A3至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
[0019]进一步,若所述步骤3A1中具有最大路由表项且没有被选为存储节点的非叶子节点数量不唯一,则选择其中节点号为最小的节点。
[0020]进一步,若该节点所有的非叶子节点全部成为存储节点或者该节点没有非叶子节点,则执行如下步骤:
[0021]步骤3B1,该节点则向其中一个还未被置为存储节点的叶子节点发送消息;
[0022]步骤3B2,删除路由表中目的地址为该叶子节点的路由表项;
[0023]步骤3B3,该选中的叶子节点收到消息后成为存储节点并且将其与该节点的链路信息发送给根节点;
[0024]步骤3B4,若该节点存储的路由表项仍大于N,则重复步骤3B1至步骤3B3直至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
[0025]进一步,若该节点的所有叶子节点都成为了存储节点,但是该节点存储的路由表项仍大于N,则执行以下步骤:
[0026]步骤3C1,该节点选择步骤3A2中成为存储节点的非叶子节点;
[0027]步骤3C2,该节点删除其路由表中目的地址为选择的非叶子节点的路由表项;
[0028]步骤3C3,将该节点与选择的非叶子节点的链路信息发送给根节点;
[0029]步骤3C4,重复步骤3C1至步骤3C3,直至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
[0030]进一步,所述步骤3中,若节点需要存储的路由表项等于N,则将该节点定为存储节点。
[0031]进一步,所述步骤4具体包括:
[0032]步骤41,当节点接收到含有源路由的数据包时,如果该源路由的第一个目的地址在该节点的路由表中,则将该数据包转发到下一跳,否则丢弃该数据包;
[0033]步骤42,当节点接收到含有源路由的数据包,且该源路由中第一个目的地址是该节点自身时,该节点从源路由中删除其自身,同时如果源路由中下一个目的地址在该节点的路由表中时,按照路由表信息转发该数据包到下一跳,否则丢弃该数据包;[0034]步骤43,当节点从其父节点接收到不含源路由的数据包时,若该数据包的目的地址在该节点的路由表中,则按照路由表转发该数据包,否则丢弃该数据包;
[0035]步骤44,当节点从其子节点接收到不含源路由的数据包时,若该数据包的目的地址在该节点的路由表中,则按照路由表转发该数据包,否则将该数据包沿上行路由发送至根节点。
[0036]基于上述低功耗有损网络的路由构建方法,本发明的技术方案还包括一种低功耗有损网络的路由构建系统,其包括:
[0037]系数确定模块,其用于根据网络中各节点的存储资源、运行的程序和运行期间要存储的数据确定非根节点能够存储路由表项的最大值N;
[0038]上行路由建立模块,其用于建立网络的上行路由,并将N置于用于建立上行路由的数据包中;
[0039]下行路由建立模块,其用于使各节点按其需要存储的路由表项大于N和等于N分别确定存储节点,通过设置存储节点使各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由;
[0040]数据包处理模块,基于建立的上、下行路由,各节点通过事先设定的方式处理其接收到的数据包;
[0041]源路由生成模块,其用于在经数据包处理模块完成路由建立后,根节点汇总自身存储的路由信息和链路信息,并基于该路由信息和链路信息生成从根节点到网络中任意节点的源路由。
[0042]进一步,若节点需要存储的路由表项大于N,则下行路由建立模块包括:
[0043]通知消息发送模块,其用于使该节点发送消息通知其具有最大路由表项且没有被选为存储节点的非叶子节点;
[0044]存储节点确定模块,其用于将被选中的非叶子节点作为存储节点,并删除路由表中下一跳是该选中的非叶子节点的路由表项;
[0045]链路信息发送模块,其用于使存储节点将其与对应节点的链路信息发送给根节点,再向其父节点发送只包含存储节点自身信息的目标广播对象消息;
[0046]路由确定模块,其用于在该节点存储的路由表项还是大于N时,则重复调用通知消息发送模块、存储节点确定模块和链路信息发送模块至该节点存储的路由表项小于N,再使根节点基于接收的链路信息建立网络的下行路由。
[0047]进一步,若节点需要存储的路由表项等于N,所述下行路由建立模块将该节点定为存储节点。
[0048]一种低功耗有损网络的路由构建系统的各模块涉及的具体实现方案与上述的路由构建方法相同。
[0049]本发明的有益效果是:本发明针对现有RPL路由算法中存在的问题,提出了系数N,即非根节点能够存储的最大路由项的个数,当节点存储N项路由项时,节点仍有足够的存储资源用于运行节点程序和存储运行过程中产生的数据。通过限制非根节点存储的路由项数低于N以及改变构建网络的过程,本发明充分利用了节点提供的存储资源,有效解决了当网络规模较大时,RPL存储模式中某些节点不能提供足够大的存储资源的问题,同时也有效解决了当网络规模较大时,RPL非存储模式中根节点到网络较深节点的源路由的长度 过长的问题,减少了通信负担。
【专利附图】

【附图说明】
[0050]图1为本发明所述低功耗有损网络的路由构建方法的流程示意图;
[0051]图2为本发明所述低功耗有损网络的路由构建系统的结构示意图;
[0052]图3为本发明所述下行路由建立模块的结构示意图;
[0053]图4为本发明实施例中12节点传感器网络的连接示意图;
[0054]图5为本发明实施例中根节点生成源路由的方法示意图;
[0055]图6为本发明实施例中100节点传感器网络的连接示意图。
[0056]附图中,各标号所代表的部件列表如下:
[0057]1、系数确定模块,2、上行路由建立模块,3、下行路由建立模块,4、数据包处理模块,5、源路由生成模块,31、通知消息发送模块,32、存储节点确定模块,33、链路信息发送模块,34、路由确定模块。
【具体实施方式】
[0058]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0059]如图1所示,本实施例给出了一种低功耗有损网络的路由构建方法,包括:
[0060]步骤1,根据网络中各节点的存储资源、运行的程序和运行期间要存储的数据确定非根节点能够存储路由表项的最大值N;
[0061]步骤2,建立网络的上行路由,并将N置于用于建立上行路由的数据包中;
[0062]步骤3,各节点按其需要存储的路由表项大于N和等于N分别确定存储节点,通过设置存储节点使各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由;
[0063]步骤4,基于步骤2和步骤3建立的上、下行路由,各节点通过事先设定的方式处理其接收到的数据包;
[0064]步骤5,经步骤4完成路由建立后,根节点汇总自身存储的路由信息和链路信息,并基于该路由信息和链路信息生成从根节点到网络中任意节点的源路由。
[0065]本实施例中,所述步骤2采用现有的RPL算法建立网络的上行路由,所述步骤3则基于现有RPL路由协议中的存储模式进行了相应的改进,其主要是通过以下几点实现的。
[0066]一、若节点需要存储的路由表项大于N,则所述步骤3包括:
[0067]步骤3A1,该节点发送消息通知其具有最大路由表项且没有被选为存储节点的非叶子节点;
[0068]步骤3A2,该节点将被选中的非叶子节点作为存储节点,并删除路由表中下一跳是该选中的非叶子节点的路由表项;
[0069]步骤3A3,存储节点将其与对应节点的链路信息发送给根节点,再向其父节点发送只包含存储节点自身信息的目标广播对象消息;
[0070]步骤3A4,若该节点存储的路由表项还是大于N,则重复步骤3A1至3A3至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。[0071]需说明的是,若所述步骤3A1中具有最大路由表项且没有被选为存储节点的非叶子节点数量不唯一,则选择其中节点号为最小的节点。
[0072]二、针对第一部分,若该节点所有的非叶子节点全部成为存储节点或者该节点没有非叶子节点,则执行如下步骤:
[0073]步骤3B1,该节点则向其中一个还未被置为存储节点的叶子节点发送消息;
[0074]步骤3B2,删除路由表中目的地址为该叶子节点的路由表项;
[0075]步骤3B3,该选中的叶子节点收到消息后成为存储节点并且将其与该节点的链路信息发送给根节点;
[0076]步骤3B4,若该节点存储的路由表项仍大于N,则重复步骤3B1至步骤3B3直至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
[0077]三、针对第一部分和第二部分,若该节点的所有叶子节点都成为了存储节点,但该节点存储的路由表项仍大于N,则执行以下步骤:
[0078]步骤3C1,该节点选择步骤3A2中成为存储节点的非叶子节点;
[0079]步骤3C2,该节点删除其路由表中目的地址为选择的非叶子节点的路由表项;
[0080]步骤3C3,将该节点与选择的非叶子节点的链路信息发送给根节点;
[0081]步骤3C4,重复步骤3C1至步骤3C3,直至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
[0082]四、若节点需要存储的路由表项等于N,则将该节点定为存储节点,并将该节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由。
[0083]五、若节点需要存储的路由表项小于N,且该节点未被设置为存储节点,则根节点基于该节点的链路信息采用现有技术常用的RPL路由协议中的存储模式建立网络的下行路由,并由该节点直接广播包括其存储的路由信息的目标广播消息。
[0084]经步骤2和步骤3构建上、下行路由后,所述步骤4具体采用以下步骤处理接收的数据包:
[0085]步骤41,当节点接收到含有源路由的数据包时,如果该源路由的第一个目的地址在该节点的路由表中,则将该数据包转发到下一跳,否则丢弃该数据包;
[0086]步骤42,当节点接收到含有源路由的数据包,且该源路由中第一个目的地址是该节点自身时,该节点从源路由中删除其自身,同时如果源路由中下一个目的地址在该节点的路由表中时,按照路由表信息转发该数据包到下一跳,否则丢弃该数据包;
[0087]步骤43,当节点从其父节点接收到不含源路由的数据包时,若该数据包的目的地址在该节点的路由表中,则按照路由表转发该数据包,否则丢弃该数据包;
[0088]步骤44,当节点从其子节点接收到不含源路由的数据包时,若该数据包的目的地址在该节点的路由表中,则按照路由表转发该数据包,否则将该数据包沿上行路由发送至根节点。
[0089]如图2所示,基于上述低功耗有损网络的路由构建方法,本实施例对应提出了一种低功耗有损网络的路由构建系统,其包括:
[0090]系数确定模块1,其用于根据网络中各节点的存储资源、运行的程序和运行期间要存储的数据确定非根节点能够存储路由表项的最大值N;
[0091]上行路由建立模块2,其用于建立网络的上行路由,并将N置于用于建立上行路由的数据包中;
[0092]下行路由建立模块3,其用于使各节点按其需要存储的路由表项大于N和等于N分别确定存储节点,通过设置存储节点使各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由;
[0093]数据包处理模块4,基于建立的上、下行路由,各节点通过事先设定的方式处理其接收到的数据包;
[0094]源路由生成模块5,其用于在经数据包处理模块4完成路由建立后,根节点汇总自身存储的路由信息和链路信息,并基于该路由信息和链路信息生成从根节点到网络中任意节点的源路由。
[0095]如图3所示,在节点需要存储的路由表项大于N时,下行路由建立模块包括:
[0096]通知消息发送模块31,其用于使该节点发送消息通知其具有最大路由表项且没有被选为存储节点的非叶子节点;
[0097]存储节点确定模块32,其用于将被选中的非叶子节点作为存储节点,并删除路由表中下一跳是该选中的非叶子节点的路由表项;
[0098]链路信息发送模块33,其用于使存储节点将其与对应节点的链路信息发送给根节点,再向其父节点发送只包含存储节点自身信息的目标广播对象消息;
[0099]路由确定模块34,其用于在该节点存储的路由表项还是大于N时,则重复调用通知消息发送模块31、存储节点确定模块32和链路信息发送模块33至该节点存储的路由表项小于N,再使根节点基于接收的链路信息建立网络的下行路由。
[0100]本实施例所述的路由构建系统的各模块涉及的具体实施方案方案与上述的路由构建方法相同,这里不再多述。
[0101]基于上述实施例,可设计一个12个节点的小型网络模拟运行实施例中的方法,用以详细的介绍本实施例所述的路由构建方法的建立路由过程以及节点处理数据包的规则。
[0102]首先,使用运行tinyos的telosb传感器节点建立了一个具有12个节点的小型传感器网络,用于模拟运行本实施例的路由构建方法。根节点确定系数N为3,然后按照步骤1,2建立上行路由,网络的连接如图4所示,然后根据上行路由,按照步骤3建立网络的下行路由,各节点存储的路由表如表I所不。
[0103]表I
[0104]
【权利要求】
1.一种低功耗有损网络的路由构建方法,其特征在于,包括: 步骤1,根据网络中各节点的存储资源、运行的程序和运行期间要存储的数据确定非根节点能够存储路由表项的最大值N; 步骤2,建立网络的上行路由,并将N置于用于建立上行路由的数据包中; 步骤3,各节点按其需要存储的路由表项大于N和等于N分别确定存储节点,通过设置存储节点使各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由; 步骤4,基于步骤2和步骤3建立的上、下行路由,各节点通过事先设定的方式处理其接收到的数据包; 步骤5,经步骤4完成路由建立后,根节点汇总自身存储的路由信息和链路信息,并基于该路由信息和链路信息生成从根节点到网络中任意节点的源路由。
2.根据权利要求1所述的路由构建方法,其特征在于,所述步骤3中若节点需要存储的路由表项大于N,则所述步骤3包括: 步骤3A1,该节点发送消息通知其具有最大路由表项且没有被选为存储节点的非叶子节点; 步骤3A2,该节点将被选中的非叶子节点作为存储节点,并删除路由表中下一跳是该选中的非叶子节点的路由表项; 步骤3A3,存储节点将其与对应节点的链路信息发送给根节点,再向其父节点发送只包含存储节点自身信息的目标广播对象消息; 步骤3A4,若该节点存储的路由表项还是大于N,则重复步骤3A1至3A3至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
3.根据权利要求2所述的路由构建方法,其特征在于,若所述步骤3A1中具有最大路由表项且没有被选为存储节点的非叶子节点数量不唯一,则选择其中节点号为最小的节点。
4.根据权利要求2所述的路由构建方法,其特征在于,若该节点所有的非叶子节点全部成为存储节点或者该节点没有非叶子节点,则执行如下步骤: 步骤3B1,该节点则向其中一个还未被置为存储节点的叶子节点发送消息; 步骤3B2,删除路由表中目的地址为该叶子节点的路由表项; 步骤3B3,该选中的叶子节点收到消息后成为存储节点并且将其与该节点的链路信息发送给根节点; 步骤3B4,若该节点存储的路由表项仍大于N,则重复步骤3B1至步骤3B3直至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
5.根据权利要求4所述的路由构建方法,其特征在于,若该节点的所有叶子节点都成为了存储节点,但是该节点存储的路由表项仍大于N,则执行以下步骤: 步骤3C1,该节点选择步骤3A2中成为存储节点的非叶子节点; 步骤3C2,该节点删除其路由表中目的地址为选择的非叶子节点的路由表项; 步骤3C3,将该节点与选择的非叶子节点的链路信息发送给根节点; 步骤3C4,重复步骤3C1至步骤3C3,直至该节点存储的路由表项小于N,根节点再基于接收的链路信息建立网络的下行路由。
6.根据权利要求1所述的路由构建方法,其特征在于,所述步骤3中,若节点需要存储的路由表项等于N,则将该节点定为存储节点。
7.根据权利要求1所述的路由构建方法,其特征在于,所述步骤4具体包括:
步骤41,当节点接收到含有源路由的数据包时,如果该源路由的第一个目的地址在该节点的路由表中,则将该数据包转发到下一跳,否则丢弃该数据包; 步骤42,当节点接收到含有源路由的数据包,且该源路由中第一个目的地址是该节点自身时,该节点从源路由中删除其自身,同时如果源路由中下一个目的地址在该节点的路由表中时,按照路由表信息转发该数据包到下一跳,否则丢弃该数据包; 步骤43,当节点从其父节点接收到不含源路由的数据包时,若该数据包的目的地址在该节点的路由表中,则按照路由表转发该数据包,否则丢弃该数据包; 步骤44,当节点从其子节点接收到不含源路由的数据包时,若该数据包的目的地址在该节点的路由表中,则按照路由表转发该数据包,否则将该数据包沿上行路由发送至根节点。
8.一种低功耗有损网络的路由构建系统,其特征在于,包括: 系数确定模块,其用于根据网络中各节点的存储资源、运行的程序和运行期间要存储的数据确定非根节点能够存储路由表项的最大值N; 上行路由建立模块,其用于建立网络的上行路由,并将N置于用于建立上行路由的数据包中; 下行路由建立模块,其用于使各节点按其需要存储的路由表项大于N和等于N分别确定存储节点,通过设置存储节点使各节点存储的路由表项小于N,并将各节点与其存储节点的链路信息发送给根节点,使根节点基于接收的链路信息建立网络的下行路由; 数据包处理模块,基于建立的上、下行路由,各节点通过事先设定的方式处理其接收到的数据包; 源路由生成模块,其用于在经数据包处理模块完成路由建立后,根节点汇总自身存储的路由信息和链路信息,并基于该路由信息和链路信息生成从根节点到网络中任意节点的源路由。
9.根据权利要求8所述的路由构建系统,其特征在于,若节点需要存储的路由表项大于N,则下行路由建立模块包括: 通知消息发送模块,其用于使该节点发送消息通知其具有最大路由表项且没有被选为存储节点的非叶子节点; 存储节点确定模块,其用于将被选中的非叶子节点作为存储节点,并删除路由表中下一跳是该选中的非叶子节点的路由表项; 链路信息发送模块,其用于使存储节点将其与对应节点的链路信息发送给根节点,再向其父节点发送只包含存储节点自身信息的目标广播对象消息; 路由确定模块,其用于在该节点存储的路由表项还是大于N时,则重复调用通知消息发送模块、存储节点确定模块和链路信息发送模块至该节点存储的路由表项小于N,再使根节点基于接收的链路信息建立网络的下行路由。
10.根据权利要求8所述的路由构建系统,其特征在于,若节点需要存储的路由表项等于N,所述下行路由建立模块将该节点定为存储节点。
【文档编号】H04W84/12GK103619045SQ201310594728
【公开日】2014年3月5日 申请日期:2013年11月21日 优先权日:2013年11月21日
【发明者】石志强, 甘伟, 孙利民, 刘燕 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1