贪婪地理路由协议切线切换空洞处理的路由方法

文档序号:10573195阅读:347来源:国知局
贪婪地理路由协议切线切换空洞处理的路由方法
【专利摘要】本发明公开了贪婪地理路由协议切线切换空洞处理的路由方法,主要解决贪婪地理路由协议在遇到路由空洞后采用边缘恢复算法,路由具有盲目性问题。其实现方案是:如果贪婪地理路由协议寻找目地节点遇到路由空洞,进入边缘恢复模式时同时使用左手和右手规则,从第2个空洞节点开始,加入切线判断的3个条件,若满足条件,恢复成贪婪转发模式,比较左、右手法则下的路由跳数,选出数据转发的最优路径。本发明与贪婪地理路由协议相比,减少了路由跳数,与基于路标分布式迭代提取和剔除的自适应空洞处理算法相比,降低了控制开销,可用于移动无线传感器网络。
【专利说明】
贪婪地理路由协议切线切换空洞处理的路由方法
技术领域
[0001] 本发明属于通信技术领域,主要涉及移动自组网、移动无线传感器网络的路由方 法,可用于移动车载网、野生动物追踪的传感网路由决策。
【背景技术】
[0002] 无线传感器网络广泛应用于军事、环境监测和预报、健康护理、智能家居等领域, 它是以数据为中心的网络,传感器节点的计算能力、存储能力、通信能力以及携带的能量都 十分有限,如何设计高效的路由协议,将数据发送到目的地是无线传感器网络的一个重要 研究方向。
[0003] 随着定位装置的小型化和其它定位算法的成熟,无线传感器网络节点可以方便地 获得本身、邻居节点及目的节点的地理位置信息。基于地理位置信息的贪婪地理路由协议 在整个数据传输中不需要泛洪探测分组,不需要建立和维护端到端的基于拓扑链路状态的 路由,不需要存储路由信息表,成为无线传感器网络路由协议研究热点之一,由Brad Karp 等提出的GPSR协议(Greedy Perimeter Stateless Routing for Wireless Networks)是 一种应用最广的基于地理位置的路由协议。
[0004] 在贪婪地理路由协议中,源节点和中间节点把数据分组传送给距离目的节点更近 的一个邻居节点,依此下去,直至目的节点。但是,在网络节点密度低的情况下,按照贪婪转 发策略找不到距离目的节点更近的邻居节点时,便出现了路由空洞,有些文献称之为局部 最优化现象。虽然可以通过提高节点密度来消除路由空洞,但是,由于不可抗拒的地理因素 (大的障碍物、池塘等)以及某些节点的失效仍然会造成路由空洞,如果只采用单一的贪婪 转发策略,即使在有路径可达目的节点的情况下,也无法有效地把数据传至目的节点。如果 遇到路由空洞,则转入边缘恢复模式,为了避免在沿空洞边缘转发时产生路由环路,需要对 网络拓扑进行平面化处理,去除多余的交叉边。使用右手法则遍历最接近的平面子图,直到 到达比路由空洞节点更接近于目的地的节点为止,然后继续贪婪路由。使用右手法则的面 遍历算法,在避绕空洞时具有很大的盲目性,选择的路径有时很差,给协议的实时性带来很 大的影响。
[0005] 针对GPSR只使用右手法则问题,唐国明等提出一种基于左、右手法则的GPSR分区 边界转发路由协议,以空洞节点到目标节点形成的向量,左侧区域为右手法则区,右侧区域 为左手法则区,若下一跳节点位于右手(左手)法则区,则使用右手(左手)法则进行边界转 发。若在进入右手(左手)法则区后没有找到可达路径,数据包会在右手(左手)法则的作用 下返回空洞节点,此时在空洞节点处再使用左手(右手)法则,进入左手(右手)法则区寻找 路由途径。这种方法在边缘恢复模式中使用了左手法则和右手法则相配合,分区转发,一定 程度减小了避绕空洞的盲目性,路由跳数减小了,但并没有寻求到最优路径。
[0006] 为了寻求最优路径,尽可能减少避绕空洞的路由跳数,张衡阳等提出基于路标分 布式迭代提取和剔除的自适应空洞处理算法,该协议为获取路标,先发送探测分组,以获得 空洞的几何特征和空洞个数,探测过程中遇到空洞节点时自我复制生成两个探测分组,在 空洞的边沿同时使用左手、右手法则进行转发,同时从路由空洞节点的下一个节点开始,利 用几何分析理论来判断空洞边界及边界上的凸点,将此节点加入到路标链表中的目的节点 之前,同时判断其若是空洞的凹点,则将此节点从路标链表中删除,这样获得了路标节点 集,数据包在路标节点的引导下进行传输,从源节点到目标节点一直都采用贪婪转发模式。
[0007] 此算法虽然得到的路由跳数很少,但算法的时间复杂度会随空洞数量的增加而急 剧增加。设此空洞的节点有a个,算法的时间复杂度是0(a 2),在探测过程中若遇到多个空 洞,需要再次发送探测分组,重复以上步骤,算法的时间复杂度是〇(a2+b 2+c2···),其中b、c是 其它空洞的节点个数,同时路标链表也会变得很庞大。另外,此算法在探测分组转发完毕 后,路标链表获得从源节点到目的节点的完整路标,数据分组采用贪婪算法依次按路标路 径转发到目的节点,数据分组可在全连通图中进行传输,大大地减少了路由跳数,但在节点 稀疏的情况下,路标之间的贪婪转发不一定都能实现,此时仍要边缘恢复模式配合。

【发明内容】

[0008] 1.发明目的:
[0009] 本发明的目的在于克服上述已有技术的不足,提出一种贪婪地理路由协议切线切 换空洞处理的路由方法,数据包可以实时地在关键节点从边缘恢复模式转换为贪婪转发模 式,运行该算法获得较小的路由跳数,在移动无线传感器网络中控制开销大为减小,提高了 数据包传送成功率。
[0010] 2.技术方案:
[0011] 一种贪婪地理路由协议切线切换空洞处理的路由方法,具体步骤为:
[0012] 7)移动无线传感器网络中的节点用自己的节点标识号、位置信息构造 Hello分组, 向自己的一跳邻居周期性广播Hello分组,接收到Hello分组的节点将分组信息存储在自己 的邻居节点链表中,目标节点也会周期性地向全网广播自己的位置信息;
[0013] 8)从源节点开始,首先从邻居节点链表中获得邻居节点的位置信息,选出邻居节 点到目标节点的距离比当前节点到目标节点的距离更近的节点,此节点作为下一跳节点;
[0014] 9)贪婪地理路由协议寻找目地节点时,如果所有邻居节点比当前节点到目的节点 的距离更大,当前节点即为路由空洞节点,否则返回步骤(2);
[0015] 10)对网络拓扑图进行GG算法平面化处理,贪婪地理路由协议进入边缘恢复模式, 同时使用左、右手规则,从空洞节点依次沿着与空洞节点和目的节点形成的直线相交的面 转发该数据分组。转换规则为:在一个面内,当按照右手或左手法则选择的下一条边与空洞 节点和目的节点形成的直线相交时,就进入下一个面;
[0016] 11)从第2个空洞节点开始,空洞节点经历次数等于1时,在选择下一跳节点时,如 果是采用右手法则,加入切线判断的3个条件:①判断当前节点为空洞的凸点;②当前节点 和目的节点的连线若与当前节点相切;③判断从当前节点到上一跳节点构成的有向线段1 和从当前节点到空洞处理算法找到的下一跳节点构成的有向线段2是否都为从目的节点到 当前节点构成的有向线段3向左拐得到的线段,则恢复成贪婪算法;如果是采用左手规则, 加入切线判断的3个条件:①判断当前节点为空洞的凸点;②当前节点和目的节点的连线若 与当前节点相切;③判断从当前节点到上一跳节点构成的有向线段1和从当前节点到空洞 处理算法找到的下一跳节点构成的有向线段2是否都为从目的节点到当前节点构成的有向 线段3向右拐得到的线段,也恢复成贪婪算法,否则执行步骤(4)。如果空洞节点经历次数大 于1,即空洞处出现环路,使用与预定法则相反的法则进行空洞处理;
[0017]空洞的凸点指沿空洞边界上相邻的三个节点:当前节点、前一节点和下一节点,这 3个节点形成的夹角是锐角。
[0018]当前节点和目的节点的连线与当前节点相切的判断:当
1寸成立,则点nd和点n_的连 线与空洞在边界点n_相切。其中,前一节点npast,当前节点n_、下一节点rwt,nd为目标节 点,#是叉乘。在计算机中实现时,设前一节点npast的坐标为xl,yl;当前节点nn〇 w的坐标为 x2,y2;下一节点nnext的坐标为x3,y3;目标节点nd的坐标为x4,y4.
[0019] 有 al=xl_x3;
[0020] bl=yl-y3;
[0021] cl=x2-x3;
[0022] a2 = x4~x3;
[0023] b2 = y4-y3 ;
[0024] c2 = y2-y3 ;
[0025] denoml =al*b2_a2*bl;
[0026] denom2 = cl*b2_a2*c2;
[0027] denom = denoml*denom2;
[0028] 满足条件denom> = 0时成立D
[0029] 从当前节点到上一跳节点构成的有向线段1和从当前节点到空洞处理算法找到的 下一跳节点构成的有向线段2是否都为从目的节点到当前节点构成的有向线段3向左拐得 到的线段的判断^
i同时成 立,则点nd和点nn〇w的连线与空洞在边界点nn〇w处切线左拐。在计算机中实现时,有
[0030] al =xl-x4;
[0031 ] bl =yl-y4;
[0032] cl =χ2-χ4;
[0033] a2 = x3~x4;
[0034] b2 = y3-y4;
[0035] c2 = y2-y4;
[0036] denoml =al*b2_a2*bl;
[0037] denom2 = cl*b2_a2*c2;
[0038] 满足条件denoml> = 0并且denom2> = 0时成立D
[0039] 从当前节点到上一跳节点构成的有向线段1和从当前节点到空洞处理算法找到的 下一跳节点构成的有向线段2是否都为从目的节点到当前节点构成的有向线段3向右拐得 到的线段的判断:当
同时 成立,则点nd和点nn〇w的连线与空洞在边界点nn〇w处切线右拐。在计算机中实现时,有
[0040] al =xl-x4;
[0041] bl =yl-y4;
[0042] cl =χ2-χ4;
[0043] a2 = x3_x4;
[0044] b2 = y3-y4;
[0045] c2 = y2-y4;
[0046] denoml =al*b2_a2*bl;
[0047] denom2 = cl*b2_a2*c2;
[0048] 满足条件denoml〈 = 0并且denom2〈 = 0时成立。
[0049] 如果使用左手规则和右手规则都能恢复成贪婪算法,比较左手和右手法则下从空 洞节点到边缘恢复模式结束转为贪婪转发时的路由跳数的大小,选择跳数更少的路径作为 最终的路由。如果只能使用左手规则或只能使用右手规则选择下一跳,则选择这唯一路径 为最终的路由。
[0050] 3.有益效果:
[0051] 本发明有益效果如下:
[0052] 1)本发明数据包可以实时地在边缘恢复模式中选择关键节点,及时地转换为贪婪 转发模式,获得较小的路由跳数。
[0053] 2)本发明在数据包发送前,源节点不需要发送探测分组,目标节点也不需要发送 反馈分组,使无线传感器网络中控制开销大为减小,提高了数据包传送成功率。
【附图说明】
[0054]图1是GG算法示意图 [0055]图2是边缘恢复模式示意图 [0056]图3是贪婪地理路由协议应用场景图 [0057]图4是本发明的流程图
[0058] 图5是本发明具体实施的应用场景图
【具体实施方式】
[0059] 下面结合实施实例和附图对本发明作进一步说明。
[0060] 实施例1
[0061] 贪婪地理路由协议切线切换空洞处理的路由方法如图5所示,随机生成节点数目 为500个的网络拓扑图,通信半径为50,对网络拓扑图进行GG算法平面化处理,使节点之间 没有交叉边。设源节点ID为209,目的节点ID为472(坐标x4 = 709,y4 = 617),在本场景中,节 点209运行路由协议的具体实施步骤参照图4,描述如下:
[0062] 1)构造 Hello分组并广播,目标节点也会周期性地向全网广播自己的位置信息。无 线传感器网络中的所有节点用自己的节点标识号、位置信息构造 Hello分组,向自己的一跳 邻居周期性广播Hello分组,接收到Hello分组的节点将分组信息存储在自己的邻居节点链 表中。
[0063] 2)从源节点209开始,首先从邻居节点链表中获得邻居节点的位置信息,计算邻居 节点到目标节点472的距离,节点444到目标节点472的距离最近,节点444作为下一跳节点。 [0064] 3)节点444的所有邻居节点比当前节点到目的节点472的距离更大,节点444成为 路由空洞节点。
[0065] 4)对网络拓扑图进行GG算法平面化处理,如图1所示,定义为GG中的节点u,v之间 存在边的条件是在以d(u,v)为直径的圆中没有其他节点。贪婪地理路由协议进入边缘恢复 模式,同时使用左、右手规则,从空洞节点444依次沿着与空洞节点和目的节点形成的直线 相交的面转发该数据分组,如图2所示,当数据分组在节点X进入边界转发模式时,将依次沿 着与直线XD相交的face转发该数据分组。转换规则为:在1个face内,当按照右手法则选择 的下一条边与直线XD相交时,就进入下一个face。前一个face的边UV与XD相交,那么就要进 入下一个face。使用左手法则到节点194结束,终止转发分组。
[0066] 5)从节点290开始,空洞节点经历次数等于1,在选择下一跳节点时,采用右手法 贝1J,加入切线切换判断的3个条件,节点227 (坐标x3 = 158,y3 = 60)为当前节点,节点12 (坐 标xl = 146,yl=66)为上一跳节点,节点76(坐标x2 = 165,y2 = 72)为下一跳节点,条件1:这 3个节点形成的夹角小于180°,节点227为空洞的凸点;
[0067] 条件2 :al =xl_x3 = 146_158 = _12;
[0068] bl = yl-y3 = 66-60 = 6 ;
[0069] cl =χ2-χ3 = 165-158 = 7 ;
[0070] a2 = x4-x3 = 709-158 = 551 ;
[0071] b2 = y4-y3 = 617-60 = 557 ;
[0072] c2 = y2-y3 = 72-60 = 12;
[0073] denoml=al*b2-a2*bl=-12*557-551*6 = -6684-3306 = -9990;
[0074] denom2 = cl*b2-a2*c2 = 7*557-551*12 = 3899-6612 = -2713;
[0075] denom = denoml*denom2 = (_9990)*(-2713)>0;
[0076] 满足条件节点227和目的节点427的连线与当前节点227相切。
[0077] 条件3 :al =xl_x4 = 146_709 = _563;
[0078] bl = yl-y4 = 66-617 = -551 ;
[0079] cl =χ2-χ4 = 165-709 = -544;
[0080] a2 = x3_x4 = 158-709 = -551;
[0081 ] b2 = y3-y4 = 60-617 = -557;
[0082] c2 = y2-y4 = 72-617 = -545;
[0083] denoml =al*b2-a2*bl = (-563)*(-557)-(-551 )*(-551) = 313591-303601 =9990 >〇;
[0084] denom2 = cl*b2-a2*c2=(-544)*(-557)-(-551)*(-545) = 303008-300295 = 2713 >〇;
[0085] 满足有向线段1(当前节点227到上一跳节点12)和有向线段2(当前节点227到下一 跳节点76)都为有向线段3(目的节点472到当前节点227)向左拐得到的线段。恢复成贪婪算 法。
[0086] 6)比较左手和右手法则下从空洞节点到边缘恢复模式结束转为贪婪转发时的路 由跳数的大小,选择在右手法则下的路径,返回步骤2),使用贪婪算法转发分组,直到节点 102成为路由空洞节点后,再次进入边缘恢复模式,到节点198满足切线切换判断的3个条 件,从而恢复成贪婪算法,直到目的节点472。
[0087] 本发明与现有技术相比,具有如下优点:
[0088] 1)数据包可以实时地在边缘恢复模式中选择关键节点,及时地转换为贪婪转发模 式,获得较小的路由跳数。图3所示,采用贪婪地理路由协议,总共遇到4个路由空洞,路由跳 数为70;图5所示,采用本发明,由于能够及时地从边缘恢复算法切换到贪婪算法,使得数据 的整个传输路径只遇到2个路由空洞,路由跳数为50。
[0089] 2)在数据包发送前,源节点不需要发送探测分组,目标节点也不需要发送反馈分 组,使无线传感器网络中控制开销大为减小,提高了数据包传送成功率。
[0090] 以上所述实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形、改进及替代,这些都属于本发 明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.贪婪地理路由协议切线切换空洞处理的路由方法,具体步骤为: 1) 移动无线传感器网络中的节点用自己的节点标识号、位置信息构造 Hello分组,向自 己的一跳邻居周期性广播Hello分组,接收到Hello分组的节点将分组信息存储在自己的邻 居节点链表中,目标节点也会周期性地向全网广播自己的位置信息; 2) 从源节点开始,首先从邻居节点链表中获得邻居节点的位置信息,选出邻居节点到 目标节点的距离比当前节点到目标节点的距离更近的节点,此节点作为下一跳节点; 3) 贪婪地理路由协议寻找目地节点时,如果所有邻居节点比当前节点到目的节点的距 离更大,当前节点即为路由空洞节点,否则返回步骤(2); 4) 对网络拓扑图进行GG算法平面化处理,贪婪地理路由协议进入边缘恢复模式,同时 使用左、右手规则,从空洞节点依次沿着与空洞节点和目的节点形成的直线相交的面转发 该数据分组。转换规则为:在一个面内,当按照右手或左手法则选择的下一条边与空洞节点 和目的节点形成的直线相交时,就进入下一个面; 5) 从第2个空洞节点开始,空洞节点经历次数等于1时,在选择下一跳节点时,如果是采 用右手法则,加入切线判断的3个条件:①判断当前节点为空洞的凸点;②当前节点和目的 节点的连线若与当前节点相切;③判断从当前节点到上一跳节点构成的有向线段1和从当 前节点到空洞处理算法找到的下一跳节点构成的有向线段2是否都为从目的节点到当前节 点构成的有向线段3向左拐得到的线段,则恢复成贪婪算法;如果是采用左手规则,加入切 线判断的3个条件:①判断当前节点为空洞的凸点;②当前节点和目的节点的连线若与当前 节点相切;③判断从当前节点到上一跳节点构成的有向线段1和从当前节点到空洞处理算 法找到的下一跳节点构成的有向线段2是否都为从目的节点到当前节点构成的有向线段3 向右拐得到的线段,也恢复成贪婪算法,否则执行步骤(4)。如果空洞节点经历次数大于1, 即空洞处出现环路,使用与预定法则相反的法则进行空洞处理; 空洞的凸点指沿空洞边界上相邻的三个节点:当前节点、前一节点和下一节点,这3个 节点形成的夹角是锐角。 当前节点和目的节点的连线与当前节点相切的判断:当,则点nd和点nn?的连 线与空洞在边界点η_相切。其中,前一节点npast,当前节点η_、下一节点nne3Xt,nd为目标节 点,發是叉乘。在计算机中实现时,设前一节点npast的坐标为xl,yl;当前节点nn?的坐标为 x2,y2;下一节点nnext的坐标为x3,y3;目标节点nd的坐标为x4,y4. 有 al = xl_x3; bl = yl-y3; cl = χ2-χ3 ; a2 = x4_x3; b2 = y4-y3; c2 = y2-y3; denoml = al*b2_a2*bl; denom2 = cl*b2_a2*c2; denom=denoml*denom2 ; 满足条件denom> = 0时成立。 从当前节点到上一跳节点构成的有向线段1和从当前节点到空洞处理算法找到的下一 跳节点构成的有向线段2是否都为从目的节点到当前节点构成的有向线段3向左拐得到的,则 点nd和点nn?的连线与空洞在边界点nn?处切线左拐。在计算机中实现时,有 al = xl_x4; bl = yl-y4; cl = x2_x4; a2 = x3_x4; b2 = y3-y4; c2 = y2-y4; denoml = al*b2_a2*bl; denom2 = cl*b2_a2*c2; 满足条件denoml > = 0并且denom2> = 0时成立。 从当前节点到上一跳节点构成的有向线段I和从当前节点到空洞处理算法找到的下一 跳节点构成的有向线段2是否都为从目的节点到当前节点构成的有向线段3向右拐得到的 线段的判断:立,则点nd和点nn?的连线与空洞在边界点nn?处切线右拐。在计算机中实现时,有 al = xl_x4; bl = yl-y4; cl = x2_x4; a2 = x3_x4; b2 = y3-y4; c2 = y2-y4; denoml = al*b2_a2*bl; denom2 = cl*b2_a2*c2; 满足条件denoml〈 = 0并且denom2〈 = 0时成立。 6)如果使用左手规则和右手规则都能恢复成贪婪算法,比较左手和右手法则下从空洞 节点到边缘恢复模式结束转为贪婪转发时的路由跳数的大小,选择跳数更少的路径作为最 终的路由。如果只能使用左手规则或只能使用右手规则选择下一跳,则选择这唯一路径为 最终的路由。
【文档编号】H04W40/20GK105933947SQ201610256710
【公开日】2016年9月7日
【申请日】2016年4月24日
【发明人】温卫, 巫光福, 王俊岭, 王振东
【申请人】江西理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1