CN102740394B - 中心计算的无线传感器网络2-不相交路径路由算法 - Google Patents
中心计算的无线传感器网络2-不相交路径路由算法 Download PDFInfo
- Publication number
- CN102740394B CN102740394B CN201210251295.0A CN201210251295A CN102740394B CN 102740394 B CN102740394 B CN 102740394B CN 201210251295 A CN201210251295 A CN 201210251295A CN 102740394 B CN102740394 B CN 102740394B
- Authority
- CN
- China
- Prior art keywords
- node
- plq
- path
- matrix
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种中心计算的无线传感器网络2-不相交路径路由算法,采用中心调度的自适应路径维护机制,提高路径维护的灵活性;数据路由时数据包仅需携带路径比特序列,同时无需任何控制开销。它以跳数和链路质量作为度量,利用全网信息计算出从源节点到sink节点的近似最优2-节点不相交路径,然后生成仅包含主节点、辅节点和路径比特序列的微路由表并下传到每个节点。
Description
技术领域
本发明涉及一种中心计算的无线传感器网络2-不相交路径路由算法。
背景技术
在无线传感器网络中,相比于单路径路由机制,多路径路由机制在提高网络可靠性、均衡负载、容错恢复等方面具有明显的优势。但是,在多路径路由中,从源节点到目的节点的多条路径中可能含有公共节点(链路),公共节点(链路)的失效会造成通过其的多条路径的失败。为了避免公共节点(链路)的出现,研究人员提出了不相交多路径机制。
Preetha Thulasiraman等人提出了一种分布式的2-不相交路由算法,该算法首先在网络中构建红树和绿树两棵颜色树,通过路径增长的方式是从sink节点出发以深度优先搜索的方式建立从各个节点到sink节点的两条不相交路径。算法能够满足两条路径的不相交约束,但算法建立的路径长度较长,且不能避免超长路径的存在,同时算法中控制信息的广播会导致较多的能量消耗。类似地,还可首先对sink节点的直接邻居标识不同的颜色,然后通过颜色标识广播寻找颜色标识相遇的节点,从而建立源节点到sink节点的k-不相交路径,算法的时间复杂度仅为O(L)(L为网络中的边数),但该算法仍无法对路径进行有效地优化。此外有人提出了基于地理位置信息的不相交路径路由算法,这两种算法同样是分布式算法,它们的不足之处在于每个节点都必须获知自身和其邻居节点的地理位置信息,且同样无法获取源节点到目标节点的最优不相交多路径。
在MPR(multipath routing,多路径路由)算法中,DMPR(disjoint multipath routing,不相交多路径路由)算法具有更高的可靠性和容错性。DMPR算法面临的主要挑战有两点:一是不相交路径的选优问题,二是在不相交路径上数据包的传输问题。
发明内容
本发明的目的就是为解决上述问题,针对某些工业应用(例如矿井环境监测)中网络拓扑比较稳定,sink节点运算和存储能力较强等特点,提出了一种中心计算的无线传感器网络2-不相交路径路由算法,针对中心计算方式对链路状态变化的反应迟缓问题,采用了一种中心调度的自适应路径维护机制,提高了路径维护的灵活性;数据包仅需携带路径比特序列,同时无需任何控制开销。
为实现上述目的,本发明的技术方案如下:
一种中心计算的无线传感器网络2-不相交路径路由算法,它以跳数和链路质量作为度量,利用全网信息计算出从源节点到sink节点的近似最优2-节点不相交路径,然后生成仅包含主节点、辅节点和路径比特序列的微路由表并下传到每个节点;它的步骤为:
第一步,收集节点邻居信息,创建并初始化邻接矩阵MA、父节点矩阵MF、逻辑梯度矩阵MN、路径矩阵MP以及路径度量矩阵MPLQ;其中,
MA根据收集上来的邻居信息初始化该矩阵,如果节点i是节点j的邻居则该矩阵的第i行第j列元素为节点i到节点j的链路质量值,如果节点i不是节点j的邻居则该元素最大值255;
MF该矩阵的元素全部初始化为255;表示开始节点之间不存在父子关系;
逻辑梯度矩阵MN是n×1矩阵,n为网络中除sink外所有节点的个数;矩阵中元素代表节点到sink节点的逻辑梯度值,初始化为最大值255;
路径矩阵MP是n×HTL矩阵,n为网络中除sink外所有节点的个数;HTL为网络中允许最大跳数,第i行第j列元素代表节点i到sink节点的路径中第j跳节点;
路径度量矩阵MPLQ为n×1矩阵,n为网络中除sink外所有节点的个数;
矩阵中的元素是节点i到sink节点的路径度量值,根据邻居信息初始化该矩阵,若sink节点是节点i的邻居则初始化为节点i到sink节点的链路质量值,否则则初始化为255;
第二步,计算两条不相交路径;利用CCDMPR算法在全局父结点矩阵MF对应的逻辑图上通过贪婪路径跟踪算法建立所有节点到sink节点的不相交主路径,然后使用带退避集合的下一跳竞争算法生成所有节点到sink节点的不相交辅路径;
第三步,生成基于主父节点、辅父节点对和路径比特序列的微路由表机制,在所有节点的2-不相交路径计算完成之后,sink节点将计算生成的路径下传到各个节点;
第四步,向除sink节点外的所有节点下发节点路径信息;
第五步,进行路径的更新维护。
所述第一步中,收集节点邻居信息的过程为:
在网络中还未建立不相交路径时,网络以泛洪方式收集节点邻居信息;网络中的节点将打包好的邻居信息以广播方式广播给自己的邻居节点,如果节点接收到其他节点Origineaddr发送的rreq数据包,则首先根据Flag属性和Seqnum属性判断是否接收该rreq数据包,如果接收过该rreq数据包则丢弃该数据包,如果未接收过则向除了Origineaddr节点之外的其他邻居节点广播该rreq数据包,这样有效的避免网络中出现环路减少数据冗余;最后直到sink节点接收到rreq数据包停止;
当网络中建立了不相交路径,节点的rreq数据包按照建立的最优路径发送到sink节点,Sink节点接收到rreq数据包后,解析该数据包得到邻居节点以及相应的链路质量值通过串口发送给PC机,PC机根据接收到数据包将邻居信息暂时存放在数据库的邻居信息表中。
所述第一步中,全局父节点矩阵MF的建立过程如下:
1),通过广度优先搜索算法在MA上建立到sink节点的逻辑梯度;sink节点的逻辑梯度记为0,和sink节点直接相邻的节点的逻辑梯度置为1,和梯度为i的节点直接相邻的节点的梯度置为i+1,依次搜索,直到每个节点都获得逻辑梯度;
2)每一个非叶子节点都以自身为根,以逻辑梯度等于或小于自身逻辑梯度的邻居节点为直接儿子建立一棵逻辑二层树;
3)将相应的树结构存储于全局父结点矩阵MF中,存储方式为:若节点i属于以节点j为根的逻辑二层树,则令(MF)ij=(MA)ij’否则(MF)ij=255。
所述第二步中,不相交主路径生成的生成过程为:
路径度量矩阵MPLQ,MPLQ为n×1矩阵,n为网络中除sink外所有节点的个数,(MPLQ)i表示节点i到sink节点的路径的PLQ值,采用贪婪路径跟踪算法来生成最优路径,并同时计算路径包含的所有链路的LQ之和,称之为PLQ;生成的最优路径作为不相交路径的主路径存储于主路径矩阵中,对应的PLQ值存储于路径度量矩阵MPLQ中,
1)置集合S={L,2,3…n},置(MPLQ)0=0;
若(MF)i0<255,令(MPLQ)i=(MF)i0,NEXT[i]=0,若(MF)i0=255,令(MPLQ)i=∞,NEXT[i]=-1.
2)令(MPLQ)j=min{(MPLQ)i,i∈S},S=S-{j},然后转4);
3)对所有i∈S,若存在(MF)ji<255,则令(MPLQ)i=min{(MPLQ)i,(MPLQ)j+(MF)ji},NEXt[i]=j,然后转2);
4)令k=2, 若S为空集则算法结束,否则转3);
该算法产生所有节点到sink节点的最优主路径的时间复杂度为O(n2),并且算法的运行过程保证产生的路径不存在环路。
所述不相交辅路径生成的生成方法为:
采用带退避集合的下一跳竞争算法,计算所有节点的最优辅路径的时间复杂度为O(n2),每一个节点将所有主路径中包含的节点竞争选择PLQ最小的候选节点作为下一跳,直到到达sink节点为止;将所有当前辅路径经过的节点也加入AvoidSet,
①
对于每一个索引为i的源节点
1)置集合S={1,2,3…n),将所有加入退避节点集AvoidSet,然后令S=S-AvoidSt,k=l,u=i.
2)令(MPLQ)v=min{(MPLQ)l,l∈S且Ful<255},令
3)若v=0,则算法结束,否则令k=k+l,u=v,转2);
②
对于每一个索引为i的源节点
1)置集合S={1,2,3…n},对所有令将边<e,f>对加入退避链路集AvoidSet,然后令k=1,u=i;
2)令令同时将边<e,f>加入AvoidSet;
3)若v=O,则算法结束,否则令k=k+1,u=v,转2)。
所述第三步中,微路由表包含五个域:ID表示微路由表所属节点标识,Primary node域存储当前节点在主路径上的父节点,Secondary node存储当前节点在辅路径上的父节点,Primary path bit series域存储主路径比特序列,Secondary path bit series存储辅路径比特序列,比特序列的每一位代表每一跳的父节点选择,用0表示主父节点,1表示辅父节点;
当源节点选择将数据包沿主或辅路径向sink节点传输时,源节点在产生的数据包头部加上自己的主或辅路径比特序列和序列指针,初始时序列指针为1,沿其主或辅路径向sink节点传输;
中间节点接收到数据包后,首先解析数据包头,将序列指针加1,并读取当前序列指针指示的路径比特序列中比特元素值,比特元素值为0时向其主父节点传输,为1时向其辅父节点传输。
所述第四步中,以sink节点为起点按照节点的逻辑梯度的增加依次下发节点的路径信息,只要是接收到路径信息的节点就建立稳定的网络,即使全局网络中还存在没有接收到路径信息的节点也不会影响由接收到的路径信息的节点建立起的稳定局部网络;
PC机根据邻居信息计算出两条不相交路径,将节点的路径信息以及基站到达该节点的反向路由打包成rrep下发给目的节点。rrep下发过程中节点接收到rrep首先判断该节点是不是目的节点,不是则按照rrep中的数组path存放的反向路由信息继续下发直到到达目的节点。
所述第五步中,当算法完成不相交路径的生成后,记录每个节点到达基站的主路径度量值和辅路径度量值基站再次收到节点发送的rreq数据包时,再次使用算法计算出路径度量矩阵MPLQ,得到每个节点当前的主路径度量值和辅路径度量值当路径状态满足式(6)或式(7)时该节点的路径状态达到更新条件;
其中,式(8)、(9)、(10)、(11)用以计算为前一次网络主路径链路质量值、为前一次网络辅路径链路质量值、为当前网络主路径的链路质量值、为当前网络辅路径的链路质量值、λ为局部更新阈值(λ>0),ΔPLQMaster取为当前网络主路径的链路质量增量,△PLQMaster>λ表明只有当链路质量降低量超过阈值时,才触发更新,其它情况无需更新;△PLQSecondary取为当前网络辅路径链路质量增量的绝对值,ΔLQSecondaty>λ表示链路质量变化量即降低量或提高量超过阈值时,都要触发维护;当计算得到的结果满足更新条件时,下发更新所有节点的路径信息更新网络,
或
本发明的有益效果是:
采用中心计算方式的CCDMPR算法,算法能够生成源节点到sink节点的近似最优2-节点(链路)不相交路径,从而能够显著降低平均路径长度,并提高路径的可靠性。算法采用的微路由表能够大大降低节点的存储和通信开销;中心调度的自适应的路径维护机制显著提高了路由维护的灵活性;在数据路由时,数据包仅需携带路径比特序列,无需任何控制消息开销。本算法适用于网络拓扑比较稳定且sink节点运算和存储能力较强的应用场景。
附图说明
图1a为逻辑嵌套二层树;
图1b为对应的嵌套集合;
图2为微路由表格式;
图3为数据包格式和路径比特序列;
图4为***工作流程;
图5为泛洪网络拓扑结构;
图6为不相交路径算法流程图;
图7为生成比特序列流程图;
图8为节点处理rrep数据包流程图;
图9真实实验的数据包传输成功率。
具体实施方式
下面结合附图与实施例对本发明做进一步说明。
本发明的工作原理如下:
1.邻居信息的收集
1.1 rreq数据包格式
Type 数据包类型,取值为RREQ_MSG
RREQ_ID rreq数据包id,取值为产生rreq的源节点的节点号
Flag 邻居信息的组号,由于受到网络带宽限制邻居信息分三组发送该属性可以取值为INFO_FIRST,INFO_SECOND,INFO_THIRD。
Bit 路径信息bit值,路径建立之后rreq按照该Bit值按照建立的最优路径发送
Hopcnt 从源节点到正在处理该rreq数据包的节点之间的跳数。
Origineaddr 发送rreq的节点的节点号,在1.2节泛洪发送中会介绍到
Seqnum 当前rreq的序列号,在1.2节中会介绍
Neighbor1 节点邻居信息表中的第一个邻居节点号。
Cost1 与邻居Neighbor1的链路质量值
Neighbor及其cost值是sink节点所要收集的邻居信息。
1.2 rreq的收集
在网络中还未建立不相交路径时,网络已泛洪方式收集节点邻居信息。网络中的节点将打包好的邻居信息以广播方式广播给自己的邻居节点,如果节点接收到其他节点(Origineaddr)发送的rreq,首先根据Flag属性和Seqnum属性判断是否接收该rreq数据包,如果接收过该rreq数据包,则丢弃该数据包,如果未接收过,则向除了Origineaddr节点之外的其他邻居节点广播该rreq数据包,这样可以有效的避免网络中出现环路减少数据冗余。最后直到sink节点接收到rreq数据包停止。
当网络中建立了不相交路径,节点的rreq数据包按照建立的最优路径发送到sink节点Sink节点接收到rreq数据包后,解析该数据包得到邻居节点以及相应的链路质量值通过串口发送给PC机,PC机根据接收到数据包将邻居信息暂时存放在数据库的邻居信息表中。
2.问题描述和模型定义
假定节点之间的链路是双向对称的,则无线传感器网络可以用赋权无向图G(V,E)来抽象表示,V为节点的集合,E为无线链路的集合。从任意传感器节点S的到sink节点的2-不相交路径和服从式(1)或(2)的约束。
2-节点不相交
2-链路不相交
定义1.邻接矩阵MA,MA是n×n矩阵,n为网络中除sink外所有节点的个数,(MA)ij的代表索引为i的节点到索引为j的节点的链路质量LQ(Link Quality),本发明假定节点LQ可通过某种方法获知,LQ的取值范围为0-255,LQ值越小表示链路质量越好。
定义2.主路径矩阵和辅路径矩阵和均为n×HTL矩阵,n为网络中除sink外所有节点的个数,HTL(hop-to-live)表示网络中允许的最大跳数,表示索引为i的源节点到sink节点的主路径上的第j跳节点,表示索引为i的源节点到sink节点的辅路径上的第j跳节点,或为0表明该条路径已到达目的节点(sink)。
本发明采用的中心计算模型采用邻接矩阵MA作为输入参量,不相交的主路径矩阵和辅路径矩阵作为输出参量。根据式(1)和式(2)可知,中心计算模型的不相交路径约束转化为式(3)和式(4)。
2-点不相交路径约束:
2-链路不相交路径约束:
3.CCDMPR算法设计
CCDMPR算法的运行过程分为四个阶段:全局父节点矩阵建立,不相交路径生成和下传,数据路由,自适应路径维护。
3.1全局父节点矩阵建立
网络初始化时,算法首先通过定向扩散方式收集所有传感器节点的邻居表信息、节点与邻居节点之间的LQ,并存入邻接矩阵MA。为了防止链路质量过差的路径出现,这里设置一个阈值η作为一个LQ门限值,大于η(表明链路质量较差)的链路将被舍弃。然后,算法在MA的基础上依据逻辑梯度建立全局父节点矩阵MF。
定义3.全局父节点矩阵MF,MF为n×n矩阵,n为网络中除sink外所有节点的个数,若节点i为以节点j为根的逻辑二层树的子节点,则令(MF)ij=(MA)ij,否则(MF)ij=255。
全局父节点矩阵的建立过程如下:第一步,通过广度优先搜索算法在MA上建立到sink节点的逻辑梯度。sink节点的逻辑梯度记为0,和sink节点直接相邻的节点的逻辑梯度置为1,和梯度为i的节点直接相邻的节点的梯度置为i+l,依次搜索,直到每个节点都获得逻辑梯度;第二步,每一个非叶子节点都以自身为根,以逻辑梯度等于或小于自身逻辑梯度的邻居节点为直接儿子建立一棵逻辑二层树;
第三步,将相应的树结构存储于全局父结点矩阵MF中,存储方式为:若节点i属于以节点j为根的逻辑二层树,则令(MF)ij=(MA)ij’否则(MF)ij=255。
全局父节点矩阵对应的逻辑图示例如图1(a)所示,其所对应的逻辑嵌套集合如图1(b)所示。
全局父节点矩阵的建立可以使得每个传感器节点加入多棵树,为后面2-不相交路径的生成建立基础架构,同时剪除一些多余的边和有可能产生环路的边。
3.2不相交路径生成
CCDMPR算法在全局父结点矩阵MF对应的逻辑图上通过贪婪路径跟踪算法建立所有节点到sink节点的不相交主路径,然后使用带退避集合的下一跳竞争算法生成所有节点到sink节点的不相交辅路径。
3.2.1不相交主路径生成
定义4.路径度量矩阵MPLQ,MPLQ为n×1矩阵,n为网络中除sink外所有节点的个数,(MPLQ)i表示节点i到sink节点的路径的PLQ值。
算法采用贪婪路径跟踪算法来生成最优路径,并同时计算路径包含的所有链路的LQ之和,称之为PLQ(Path Link Quality)。生成的最优路径作为不相交路径的主路径存储于主路径矩阵中,对应的PLQ值存储于路径度量矩阵MPLQ中。算法描述如下:
1)置集合S={1,2,3…n},置(MPLQ)0=0;
若(MF)i0<255,令(MPLQ)i=(MF)i0,NEXT[i]=0,若(MF)i0=255,令(MPLQ)i=∞,NEXT[i]=-1.
2)令(MPLQ)j=min{(MPLQ)i,i∈S},S=S-{j},然后转4)
3)对所有i∈S,若存在(MF)ji<255,
则令(MPLQ)i=min{(MPLQ)i,(MPLQ)j+(MF)ji},NEXT[i]=j,然而转2).
4)令k=2, 若S为空集则算法结束,否则转3).
该算法产生所有节点到sink节点的最优主路径的时间复杂度为O(n2),并且算法的运行过程保证产生的路径不存在环路。
3.2.2不相交辅路径生成
不相交路径的主路径生成之后,不相交路径的辅路径可以通过删除相应的节点(链路)之后再应用上述的贪婪算法获得,但是这种方式需要对每一个节点进行一次全算法运算,计算所有节点的不相交辅路径的时间复杂度达O(n3),不适合较大规模的无线传感器网络。本发明使用一种带退避集合的下一跳竞争(Next Hop Competing,NHC)算法,该算法能够获得近似最优解,计算所有节点的最优辅路径的时间复杂度为O(n2)。,每一个节点将所有主路径中包含的节点(链路)加入退避集合AvoidSet,所有不包含在AvoidSet中的父节点(链路)构成候选节点(链路)集,然后通过竞争选择PLQ最小的候选节点作为下一跳,直到到达sink节点为止。NHC算法的竞争机制并不能保证环路的出现,因此算法在运行过程中,将所有当前辅路径经过的节点(链路)也加入AvoidSet,这种机制可以有效地避免环路的出现。
NHC算法的描述如下:
①
对于每一个索引为i的源节点
1)置集合S={1,2,3…n},将所有加入退避节点集AvoidSet,然后令S=S-AvoidSt,k=1,u=i.
2)令(MPLQ)v=min{(MPLQ)l,l∈S且Ful<255},令
3)若v=0,则算法结束,否则令k=k+1,u=v,转2).
②
对于每一个索引为i的源节点
1)置集合S={1,2,3…n),对所有,令将边<e,f>对加入退避链路集AvoidSet,然后令k=1,u=i.
2)令令,同时将边<e,f>加入AvoidSet.
3)若v=0,则算法结束,否则令k=k+1,u=v,转2).
3.3微路由表和数据路由
当所有节点的2-不相交路径计算完成之后,sink节点将计算生成的路径下传到各个节点。考虑到完整的路由表较大,下传将带来很大的通信开销,同时传感器节点本身存储空间有限,所以整路由表下传的方案是不可行的。本发明设计了一种基于<主父节点,辅父节点>对和路径比特序列的微路由表机制,微路由表的格式如图2所示。
该微路由表包含五个域:ID表示微路由表所属节点标识,Primary node域存储当前节点在主路径上的父节点,Secondary node存储当前节点在辅路径上的父节点,Primar path bitseries域存储主路径比特序列(例如:00000000),Secondary path bit series存储辅路径比特序列(例如:01010010),比特序列的每一位代表每一跳的父节点选择(0表示主父节点,1表示辅父节点)。采用路径比特序列的好处是,微路由表上的每一跳都只占用一个比特,能够大大降低路由表的大小,从而节省通信和存储开销。
当源节点选择将数据包沿主(辅)路径向sink节点传输时,源节点在产生的数据包头部加上自己的主(辅)路径比特序列和序列指针(初始时序列指针为1),沿其主(辅)路径向sink节点传输。源节点产生的数据包格式如图3所示。
其中,Path flag为路径标志,Path flag=0表示主路径,Path flag=1表示辅路径;Series pointer为序列指针,用于指示序列中的当前比特位置;Pathbit series为所携带的比特序列;LQ为源节点到主(辅)父节点的LQ当前值,主要用于路径维护。
中间节点接收到数据包后,首先解析数据包头,将序列指针加1,并读取当前序列指针指示的路径比特序列中比特元素值,比特元素值为0时向其主父节点传输,为1时向其辅父节点传输。采用这种路由策略,当出现失效节点(链路)时,数据只需沿着当前节点的辅路径传输就能有效避开失效节点(链路),而不需要回溯到源节点重新发送,从而在提高可靠性的同时节省通信开销。
4..路径信息的下发
4.1路径信息数据包rrep数据包格式
Type | Path | Pri_parent | Pri_bit | Sec_parent | Sec_bit | Destiaddr | Seqnum |
Type 数据包类型 RREP_MSG
Path 节点数组,反向路由路径节点
Pri_parent 主父节点节点号
Pri_bit 主路径的比特序列
Sec_parent 辅父节点节点号
Sec_bit 辅路径的比特序列
Destiaddr 目的节点地址,路径信息要发送到的节点的节点号
Seqnum rrep的序列号
4.2路径信息数据包rrep的下发
4.2.1确定路径信息下发顺序
以sink节点为起点按照节点的逻辑梯度的增加依次下发节点的路径信息如图所示可以更加快速的建立起稳定网络,只要是接收到路径信息的节点,就可以建立稳定的网络,即使全局网络中还存在没有接收到路径信息的节点,也不会影响由接收到的路径信息的节点建立起的稳定局部网络。
4.2.2反向路由发送rrep数据包
PC机根据邻居信息计算出两条不相交路径,将节点的路径信息以及基站到达该节点的反向路由打包成rrep下发给目的节点。rrep下发过程中节点接收到rrep首先判断该节点是不是目的节点,不是则按照rrep中的数组path存放的反向路由信息继续下发直到到达目的节点。
5.路径的维护更新
5.1更新条件
当算法完成不相交路径的生成后,记录每个节点到达基站的主路径度量值和辅路径度量值基站再次收到节点发送的rreq数据包时,再次使用算法计算出路径度量矩阵MPLQ,得到每个节点当前的主路径度量值和辅路径度量值当路径状态满足式(6)或式(7)时该节点的路径状态达到更新条件。其中,式(8)、(9)、(10)、(11)用以计算为前一次网络主路径链路质量值、为前一次网络辅路径链路质量值、为当前网络主路径的链路质量值、为当前网络辅路径的链路质量值、λ为局部更新阈值(λ>0),△PLQMaster取为当前网络主路径的链路质量增量,△PLQMaster>λ表明只有当链路质量降低量超过阈值时,才触发更新,其它情况无需更新。△PLQSecondary取为当前网络辅路径链路质量增量的绝对值,ΔLQSecondary>λ表示链路质量变化量(降低量或提高量)超过阈值时,都要触发维护。当计算得到的结果满足更新条件时,下发更新所有节点的路径信息更新网络。
或
真实实验环境部署在一个办公楼的2到5层的走廊,所有节点相对均匀分布,sink节点位于4楼走廊的中心位置。实验使用的节点主要由两部分组成:MSP430F5438和TI的射频芯片CC2420,操作***采用多任务实时***FreeRTOS。
为方便实验,申请人采用了一个基于C++的上位机软件,用于不相交路径的计算并根据接收到的数据包的序列号统计传输成功率。网络中所有节点每隔1秒向sink节点传输采集数据,传输过程同样不采用ACK重传机制,sink节点接收到数据后交给上位机软件处理。在实验中,我们将CCDMR算法与经典分布式单路径路由算法—最小跳算法进行了比较。我们分别收集sink节点成功接收的数据包数量为100、200、300、400、500时数据传输成功率,如图9所示。
从图中可知,在不采用ACK重传机制的情况下,相比于最小跳单路径算法,CCDMPR算法生成的主路径和辅路径都有较高的路径传输成功率,且主路径的传输成功率能够达到65%以上。在同时使用2-不相交路径的情况下,数据包的路径传输成功率能够达到75%以上,同时路径传输的稳定性也有一定的提高。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种中心计算的无线传感器网络2-不相交路径路由算法,其特征是,它以跳数和链路质量作为度量,利用全网信息计算出从源节点到sink节点的近似最优2-节点不相交路径,然后生成仅包含主节点、辅节点和路径比特序列的微路由表并下传到每个节点;它的步骤为:
第一步,收集节点邻居信息,创建并初始化邻接矩阵MA、父节点矩阵MF、逻辑梯度矩阵MN、路径矩阵MP以及路径度量矩阵MPLQ;其中,
MA根据收集上来的邻居信息初始化该矩阵,如果节点i是节点j的邻居则该矩阵的第i行第j列元素为节点i到节点j的链路质量值,如果节点i不是节点j的邻居则该元素允许的最大取值是255;
MF该矩阵的元素全部初始化为255;表示开始节点之间不存在父子关系;
逻辑梯度矩阵MN是n×1矩阵,n为网络中除sink外所有节点的个数;矩阵中元素代表节点到sink节点的逻辑梯度值,初始化为最大值255;
路径矩阵MP是n×HTL矩阵,n为网络中除sink外所有节点的个数;HTL为网络中允许最大跳数,第i行第j列元素代表节点i到sink节点的路径中第j跳节点;
路径度量矩阵MPLQ为n×1矩阵,n为网络中除sink外所有节点的个数;
矩阵中的元素是节点i到sink节点的路径度量值,根据邻居信息初始化该矩阵,若sink节点是节点i的邻居则初始化为节点i到sink节点的链路质量值,否则则初始化为255;
第二步,计算两条不相交路径;利用中心计算的不相交多路径路由CCDMPR算法在全局父结点矩阵MF对应的逻辑图上通过贪婪路径跟踪算法建立所有节点到sink节点的不相交主路径,然后使用带退避集合的下一跳竞争算法生成所有节点到sink节点的不相交辅路径;
第三步,生成基于主父节点、辅父节点对和路径比特序列的微路由表机制,在所有节点的2-不相交路径计算完成之后,sink节点将计算生成的路径下传到各个节点;
第四步,向除sink节点外的所有节点下发节点路径信息;
第五步,进行路径的更新维护。
2.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述第一步中,收集节点邻居信息的过程为:
在网络中还未建立不相交路径时,网络已泛洪方式收集节点邻居信息;网络中的节点将打包好的邻居信息以广播方式广播给自己的邻居节点,如果节点接收到其他节点Origineaddr发送的rreq数据包,则首先根据Flag属性和Seqnum属性判断是否接收该rreq数据包,如果接收过该rreq数据包则丢弃该数据包,如果未接收过则向除了Origineaddr节点之外的其他邻居节点广播该rreq数据包,这样避免网络中出现环路,减少数据冗余;最后直到sink节点接收到rreq数据包停止;
当网络中建立了不相交路径,节点的rreq数据包按照建立的最优路径发送到sink节点,Sink节点接收到rreq数据包后,解析该数据包得到邻居节点以及相应的链路质量值通过串口发送给PC机,PC机根据接收到数据包将邻居信息暂时存放在数据库的邻居信息表中。
3.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述第一步中,全局父节点矩阵MF的建立过程如下:
1)通过广度优先搜索算法在MA上建立到sink节点的逻辑梯度;sink节点的逻辑梯度记为0,和sink节点直接相邻的节点的逻辑梯度置为1,和梯度为i的节点直接相邻的节点的梯度置为i+1,依次搜索,直到每个节点都获得逻辑梯度;
2)每一个非叶子节点都以自身为根,以逻辑梯度等于或小于自身逻辑梯度的邻居节点为直接儿子建立一棵逻辑二层树;
3)将相应的树结构存储于全局父结点矩阵MF中,存储方式为:若节点i属于以节点j为根的逻辑二层树,则令(MF)ij=(MA)ij,否则(MF)ij=255,(MA)ij代表索引为i的节点到索引为j的节点的链路质量LQ。
4.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述第二步中,不相交主路径生成的生成过程为:
路径度量矩阵MPLQ,MPLQ为n×1矩阵,n为网络中除sink外所有节点的个数,(MPLQ)i表示节点i到sink节点的路径的PLQ值,采用贪婪路径跟踪算法来生成最优路径,并同时计算路径包含的所有链路的链路质量LQ之和,称之为PLQ;生成的最优路径作为不相交路径的主路径存储于主路径矩阵中,对应的PLQ值存储于路径度量矩阵MPLQ中,
9)置集合S={1,2,3…n},置(MPLQ)0=0;若(MF)i0<255,令(MPLQ)i=(MF)i0,NEXT[i]=0,若(MF)i0=255,令(MPLQ)i=∞,NEXT[i]=-1.
10)令(MPLQ)j=min{(MPLQ)i,i∈S},S=S-{j},然后转4);
11)对所有i∈S,若存在(MF)ji<255,则令(MPLQ)i=min{(MPLQ)i,(MPLQ)j+(MF)ji},NEXT[i]=j,然后转2);
12)令while(T>0){k++;T=NEXT[T];若S为空集则算法结束,否则转3);
该算法产生所有节点到sink节点的最优主路径的时间复杂度为O(n2),并且算法的运行过程保证产生的路径不存在环路。
5.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述不相交辅路径生成的生成方法为:
采用带退避集合的下一跳竞争算法,计算所有节点的最优辅路径的时间复杂度为O(n2),每一个节点将所有主路径中包含的节点竞争选择PLQ最小的候选节点作为下一跳,直到到达sink节点为止;将所有当前辅路径经过的节点也加入AvoidSet,
①NHC_NodeDisjoint(MF,)
对于每一个索引为i的源节点
1)置集合S={1,2,3…n},将所有加入退避节点集AvoidSet,然后令S=S-AvoidS,k=1,u=i.
2)令(MPLQ)v=min{(MPLQ)l,l∈S且Ful<255},令S=S-{v}.
3)若v=0,则算法结束,否则令k=k+1,u=v,转2);
②NHC_LinkDisjoint(MF,)
对于每一个索引为i的源节点
1)置集合S={1,2,3…n},对所有 令 将边<e,f>对加入退避链路集AvoidSet,然后令k=1,u=i;
2)令(MPLQ)v=min{(MPLQ)l,l∈S且Ful<255且令同时将边<e,f>加入AvoidSet;
3)若v=0,则算法结束,否则令k=k+1,u=v,转2)。
6.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述第三步中,微路由表包含五个域:ID表示微路由表所属节点标识,Primary node域存储当前节点在主路径上的父节点,Secondary node存储当前节点在辅路径上的父节点,Primarypath bit series域存储主路径比特序列,Secondary path bit series存储辅路径比特序列,比特序列的每一位代表每一跳的父节点选择,用0表示主父节点,1表示辅父节点;
当源节点选择将数据包沿主或辅路径向sink节点传输时,源节点在产生的数据包头部加上自己的主或辅路径比特序列和序列指针,初始时序列指针为1,沿其主或辅路径向sink节点传输;
中间节点接收到数据包后,首先解析数据包头,将序列指针加1,并读取当前序列指针指示的路径比特序列中比特元素值,比特元素值为0时向其主父节点传输,为1时向其辅父节点传输。
7.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述第四步中,以sink节点为起点按照节点的逻辑梯度的增加依次下发节点的路径信息,只要是接收到路径信息的节点就建立稳定的网络,即使全局网络中还存在没有接收到路径信息的节点也不会影响由接收到的路径信息的节点建立起的稳定局部网络;
PC机根据邻居信息计算出两条不相交路径,将节点的路径信息以及基站到达该节点的反向路由打包成rrep下发给目的节点;rrep下发过程中节点接收到rrep首先判断该节点是不是目的节点,不是则按照rrep中的数组path存放的反向路由信息继续下发直到到达目的节点。
8.如权利要求1所述的中心计算的无线传感器网络2-不相交路径路由算法,其特征是,所述第五步中,当算法完成不相交路径的生成后,记录每个节点到达基站的主路径度量值和辅路径度量值基站再次收到节点发送的rreq数据包时,再次使用算法计算出路径度量矩阵MPLQ,得到每个节点当前的主路径度量值和辅路径度量值当路径状态满足式(6)或式(7)时该节点的路径状态达到更新条件;
其中,式(8)、(9)、(10)、(11)用以计算为前一次网络主路径链路质量值、为前一次网络辅路径链路质量值、为当前网络主路径的链路质量值、为当前网络辅路径的链路质量值、λ为局部更新阈值(λ>0),ΔPLQMaster取为当前网络主路径的链路质量增量,ΔPLQMaster>λ表明只有当链路质量降低量超过阈值时,才触发更新,其它情况无需更新;ΔPLQSecondary取为当前网络辅路径链路质量增量的绝对值,ΔLQSecondary>λ表示链路质量变化量即降低量或提高量超过阈值时,都要触发维护;当计算得到的结果满足更新条件时,下发更新所有节点的路径信息更新网络,
或
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210251295.0A CN102740394B (zh) | 2012-07-19 | 2012-07-19 | 中心计算的无线传感器网络2-不相交路径路由算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210251295.0A CN102740394B (zh) | 2012-07-19 | 2012-07-19 | 中心计算的无线传感器网络2-不相交路径路由算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102740394A CN102740394A (zh) | 2012-10-17 |
CN102740394B true CN102740394B (zh) | 2014-11-12 |
Family
ID=46994972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210251295.0A Active CN102740394B (zh) | 2012-07-19 | 2012-07-19 | 中心计算的无线传感器网络2-不相交路径路由算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102740394B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269523A (zh) * | 2013-04-23 | 2013-08-28 | 长春理工大学 | 具有矩形拓扑结构的无线传感器网络 |
CN103686919B (zh) * | 2014-01-08 | 2016-08-10 | 重庆邮电大学 | 一种基于生物启发的自适应wsn路由算法 |
CN107454652B (zh) * | 2016-05-31 | 2021-03-19 | 陕西尚品信息科技有限公司 | 基于无线自组织网络的移动通信*** |
CN108632940B (zh) * | 2017-03-23 | 2021-10-08 | 中国科学院沈阳自动化研究所 | 适用于光电传感器无线mesh网络的可靠多径路由算法 |
CN110661628B (zh) | 2018-06-30 | 2021-12-14 | 华为技术有限公司 | 一种实现数据组播的方法、装置和*** |
CN110139400A (zh) * | 2019-05-23 | 2019-08-16 | 烟台艾易新能源有限公司 | 一种粮仓环境智能监测***设计方法 |
CN113347679B (zh) * | 2021-05-31 | 2023-06-13 | 浙江大华技术股份有限公司 | 一种数据传输方法、装置、存储介质及电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448281A (zh) * | 2008-12-31 | 2009-06-03 | 宁波中科集成电路设计中心有限公司 | 一种无线传感器网络中的容错方法 |
CN102083162A (zh) * | 2011-01-21 | 2011-06-01 | 河海大学常州校区 | 基于QoS的无线多媒体传感器网络贪婪多路径路由方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578054B2 (en) * | 2008-03-07 | 2013-11-05 | Cisco Technology, Inc. | Computing disjoint paths for reactive routing mesh networks |
-
2012
- 2012-07-19 CN CN201210251295.0A patent/CN102740394B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448281A (zh) * | 2008-12-31 | 2009-06-03 | 宁波中科集成电路设计中心有限公司 | 一种无线传感器网络中的容错方法 |
CN102083162A (zh) * | 2011-01-21 | 2011-06-01 | 河海大学常州校区 | 基于QoS的无线多媒体传感器网络贪婪多路径路由方法 |
Non-Patent Citations (4)
Title |
---|
Disjoint Multipath Routing in Dual Homing Networks using Colored Trees;Thulasiraman P,Ramasubramanian S,Krunz M;《Global Telecommunications Conference,2006,IEEE Communications Society》;20061231;正文第1-5页 * |
Thulasiraman P,Ramasubramanian S,Krunz M.Disjoint Multipath Routing in Dual Homing Networks using Colored Trees.《Global Telecommunications Conference,2006,IEEE Communications Society》.2006,正文第1-5页. * |
于磊磊,柴乔林等.一种节能的无线传感器网络QoS路由算法.《计算机应用》.2007,第27卷(第2期), * |
方效林,石胜飞,李建中.无线传感器网络一种不相交路径路由算法.《计算机研究与发展》.2009,第46卷(第12期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102740394A (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102740394B (zh) | 中心计算的无线传感器网络2-不相交路径路由算法 | |
CN101420445B (zh) | 一种无线传感器网络的快速路由协议 | |
CN103906164B (zh) | 海上搜救无线传感器网络拓扑及拓扑控制方法 | |
CN107071811A (zh) | 一种基于模糊控制的wsn容错非均匀分簇算法 | |
CN104135751B (zh) | 一种适用于地铁隧道的非均匀分簇路由方法 | |
CN101170499B (zh) | 一种自组织网络上的组合服务执行路径的选择方法 | |
Guo et al. | SMITE: A stochastic compressive data collection protocol for mobile wireless sensor networks | |
CN106304243A (zh) | 一种基于势博弈的无线传感器网络拓扑控制方法 | |
CN102769885B (zh) | 一种在传感器网络中实现路由的方法和传感器网络 | |
Tang et al. | A novel data retrieving mechanism in wireless sensor networks with path-limited mobile sink | |
CN106028398A (zh) | 一种基于能耗均衡的水下无线传感器网络拓扑控制方法 | |
CN103929782A (zh) | 一种适用于工业无线传感器网络的资源均衡多径路由方法 | |
CN105764114A (zh) | 一种基于能耗均衡的水下无线传感器网络拓扑控制方法 | |
CN106131916A (zh) | 一种基于蚁群算法的无线网络路由建立方法 | |
CN106612232A (zh) | 一种适应多变因素的集中器主动抄表路由方法 | |
CN106658633B (zh) | 一种微功率无线多跳链路建立方法 | |
CN108462983A (zh) | 基于改进蚁群aodv协议的多机器人通信组网方法 | |
CN107484220A (zh) | 一种无线传感器和执行器网络的可靠高效路由方法 | |
CN103701697A (zh) | 基于链路质量的层次型路由方法 | |
CN103619045A (zh) | 一种低功耗有损网络的路由构建方法及*** | |
Wen et al. | Energy efficient data collection scheme in mobile wireless sensor networks | |
Rountos et al. | Energy efficient routing in wireless sensor networks: A comparative study on leach protocol and its successors | |
CN103228020A (zh) | 基于智能水滴的移动自组网路由***及方法 | |
CN104244423B (zh) | 基于无线传感器网络多路径传输的时隙调度算法 | |
CN108600981A (zh) | 一种基于树的无线传感器网络数据收集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 250101 8th floor, Huantong building, 1257 Tianchen Road, high tech Zone, Jinan City, Shandong Province Patentee after: Shandong pusai Communication Technology Co., Ltd Address before: Xinluo Avenue high tech Zone of Ji'nan City, Shandong province 250101 No. 1768 A506 Patentee before: JINAN PUSAI COMMUNICATIONS TECHNOLOGY Co.,Ltd. |