AdHoc网络上实现基于跨层机制的单播节能路由协议的方法

文档序号:7919262阅读:215来源:国知局
专利名称:Ad Hoc网络上实现基于跨层机制的单播节能路由协议的方法
技术领域
' 本发明属于网络通信技术领域,具体涉及一种AdHoc网络上基于跨层机制的、能量 有效的单播路由计算方法。
背景技术
Ad Hoc网络是一种由移动节点构成、典型的无固定基础设施的无线网络。其中的移 动节点既是主机又具备路由功能,负责发现和维护通往其他节点的路径。这类网络不依 赖于基础设施的支持,可以更灵活、更方便地建立,而且源节点可以通过中间节点多跳 到达目的节点,极大地扩大了通信范围。凭借这些优势,近年来,Ad Hoc网络被广泛应 用于各种类型的通信服务中。
但是,Ad Hoc网络中的移动节点大多都是移动便携设备,这些设备通常都只由电池 供电,电池能量有限,而且电池的充电或更换在一些应用场景中是不便甚至是不可以的。 当节点电池能量耗尽时,不能与其他节点进行有效通信。同时,所有借助该节点进行通 信的节点必须使用新的路径,可能导致整个网络被分割。因此,节点能量的消耗对AdHoc 网络性能起着决定性作用,节能问题的研究对Ad Hoc网络具有非常重要的意义。
对于AdHoc网络使用的路由协议,现通用的标准大多基于跳数或延迟的考虑,在源 节点和目的节点间寻找具有最少跳数或最小延迟的路由。通常选择的一跳通信的节点间 距离较远。根据无线传播模型,当节点间距离增大时,节点消耗的能量成距离的幂次方 (幂大于2)增长,协议的能量消耗很大。而且网络中的节点采用同一最大发送功率发送 数据包的方式,使得距离较近的节点间通信也消耗很大的能量,造成大量的能量浪费。 因此,需要对路由协议进行能量有效的改进。 '
目前针对AdHoc网络能量有效路由的研究方法按层次可以总结为物理层的功率控 制;MAC层的功率控制和能量管理;网络层的功率控制和能量有效的路由算法。这些现有 研究方法存在的问题主要有
(1) 大多在某一层完成,没有考虑与网络协议栈其他层的能量节省方式相结合,未 能最大化节能效果;
(2) 很少与通用的路由协议结合考虑。
当前,对于AdHoc网络比较成熟的路由协议,通用的标准大多基于跳数或延迟的考 虑,在源节点和目的节点间寻找具有最少跳数或最小延迟的路由,未考虑距离和能量消 耗间的关系,没有起到有效降低节点能耗,延长节点工作时间的作用。

发明内容
有鉴于此,本发明的目的是克服现有技术的上述不足,提供一种Ad Hoc网络上基于 跨层机制的能量有效的单播路由计算方法。本发明是能量有效的路由计算方法,可以有 效的为AdHoc网络中的移动节点节省能量,从而实现改善整个网络的性能和生存期。本 发明采用如下的技术方案-
一种实现AdHoc网络上基于跨层机制的单播节能路由协议的方法,其特征在于,包 括下列步骤
(1) 源节点査询节点路由表,以期获取到目的节点路由信息,如果路由表中存在相 应路由,则根据路由表内信息转发数据包,否则执行下一步;
(2) 源节点发送路由请求信息,该路由请求信息包含记录从源节点到当前节点所需 总最小能耗totalPower;在中间节点传递过程中,对该值进行累加更新,还计算各个中 间节点其到上一跳节点的最小发送功率bestTxPower,更新源节点到当前节点的总最小必 需发送功率即路由成本cost,并处理到源节点的反向路由;
(3) 目的节点接收到路由请求信息后,发送路由应答信息,该应答路由信息包含到 下一跳的最小发送功率minTxPower,以及从目标节点到当前节点的总最小发送功率 totalPower,中间节点在传递过程中,更新本节点到目标节点路由成本cost值,并更新 到目标节点路由信息;
(4) 源节点接收到路由应答信息后,选择一条最节省能量的路由,更新节点路由表, 并发送数据包。
作为优选实施方式,步骤(4)中发生数据包时,根据到下一跳的最小发送功率 minTxPower信息,动态调整当前节点到下一跳的发送功率。
本发明还包括节点间周期性交换信息以对路由信息进行维护,维护方法为若路由 中的节点在设定时间段内无数据发送,则向邻居节点发送HELLO包;节点收到HELLO包 后,更新邻居表中的邻居过期时间以及路由表中的过期时间,当节点超过设定时间段没 有收到HELLO包时,修复当前路由。
本发明在网络层利用从物理层获取的功率信息计算出最小必需发射功率并选择具有 最小能耗的路由,在物理层根据最小必需发射功率动态调节节点发射功率的跨层机制, 有效地为Ad Hoc网络内的移动节点节省了能量。
本发明基于跨层机制实现,突破了当前大多数针对AdHoc网络的节能方法只在网络 协议栈某一层实现,没有考虑与协议栈其它层的能量节省方式相结合、未能最大化节能 效果的局限性。不仅在网络层利用从物理层获取的功率信息计算出最小必需发射功率、 并选择具有最小能耗的路由,而且在物理层调节节点的发送功率,在节能的同时还减少 了通信干扰。能够有效降低节点能耗、延长移动节点工作时间,实现整个AdHoc网络性 能的改善和生命期的延长。
本发明由当前Ad Hoc网络内标准路由协议AODV发展而来,在其基础上对其路由准
则加以该进,进而实现了能量有效性。这种与传统标准路由协议相结合的方式,使得本 发明很好的保留了现有成熟路由协议的许多优点,同时无需经过大范围的变更就可以被 简易应用在现有网络中,效果理想,应用前景看好。


图1是本发明基本构架原理的示意图。
图2是本发明节点路由寻找过程的基本时序图。
图3是本发明路由寻找过程中使用的路由请求信息(ERREQ)的包格式图。 图4是本发明使用的路由表格式图。
图5是本发明路由寻找过程中使用的路由应答信息(ERREP)的包格式图。 图6是为举例说明本发明工作流程所使用的示例拓扑图。
具体实施例方式
为使本发明的目的、实现方案和优点更为清晰,下面结合附图对本发明作进一步地 详细描述。
参见图1,介绍本发明方法的基本构架原理—应用跨层机制实现能量有效的单播路由 计算方法。节点在物理层获取包所携带的能量信息并上传给网络层,网络层通过这些能 量信息计算出路由成本和最佳发送功率,其中根据路由成本选择具有最小能耗的路由。 当数据包发送时,网络层将最佳发送功率下传给物理层,物理层根据该信息设置到路由 下一跳的最佳发送功率,进一步有效降低了节点的能耗。
参见图2至图5,详细介绍本发明一种Ad Hoc网络上基于跨层机制的能量有效的单 播路由计算方法,该方法包括以下几个阶段
(1) 路由寻找当源节点应用程序需要发送数据包至目的节点时,应用层将数据包
向下层发送。数据包到达网络层时,查询节点路由表,以获取目的节点路由信息。如果 路由表中存在相应路由,则根据路由表内信息转发数据包。否则寻找到目的节点的路由。
该寻找过程的基本时序参见图2。主要包含以下几个步骤发送路由请求信息ERREQ、接 收和转发路由请求信息ERREQ、发送路由应答信息ERREP以及接收路由应答信息ERREP。
(2) 数据发送当源节点建立起到目标节点的路由后,开始发送数据包。在路由探
测阶段用最大功率发送路由请求和路由应答信息,在数据传送阶段用调整后恰当的、小 于最大功率的发送功率发送数据信息。
(3) 路由维护节点在网络中移动或从网络中退出,可能导致路由表中已存储的路 由无效。为使节点对失效路由产生感知,节点间周期性交换信息以对路由信息进行维护。
下面对上述各个部分的操作内容作进一步具体介绍-在阶段(1)中,路由寻找过程主要包含以下几个步骤-(1-1)发送路由请求信息ERREQ。当源节点需要到某一目标节点的路由信息时,它 向外广播ERREQ (扩展的路由请求)包。包格式见图3,其特征为ERREQ信息头部包含 totalPower字段,用来记录从源节点到当前节点所需总最小能耗。在ERREQ传递过程中, 对该值进行累加,作为路由准则的参考。
(1-2)接收和转发路由请求信息ERREQ。中间节点收到ERREQ后对其进行判断。如 果为无效重复或超时包则将其丢弃,否则除记录必要信息外,还需计算到上一跳节点的 最小发送功率bestTxPower。更新源节点到当前节点的总最小必需发送功率cost,其值 等于bestTxPower与ERREQ中totalPower之和。之后,更新到源节点的反向路由。路由 表的格式见图4。对于到源节点反向路由的处理,有以下两种情况
A:如果节点第一次收到该ERREQ信息,则在路由表中添加到源节点的反向路由。在 图4所示的路由表中,totalTxPower字段记录该条路由信息到达目标节点(反向路由上 的目标节点,即ERREQ消息的源节点)的最小必需发送功率,bestTxPower记录到(反向 路由上的)下一跳需要的最小必需发送功率。
B:如果节点收到ERREQ包时路由表中已存在到源节点的反向路由,则可能需要更新 路由表中的反向路由信息。路由表更新的条件为
* ERREQ包携带的顺序号大于现有路由信息中的顺序号;或
* ERREQ包携带的顺序号等于现有路由信息中的顺序号,但cost值小于路由表中 的totalTxPower值。
基于这两个条件的判断,路由表中维护的是到达源节点最新的、具有最小能量消耗 的路由信息。当更新路由表后,节点将ERREQ中的totalPower更改为cost,中间节点继 续转发ERREQ,直到到达目标节点。
如果中间节点收到ERREQ包后未更新反向路由,则将该包丢弃,不再转发。
(13) 发送路由应答信息ERREP。包格式见图5。本发明的方法中只有目标节点可以 回复ERREP消息。ERREP中包含minTxPower与totalPower字段。minTxPower记录到ERREP 下一跳的最小发送功率,totalPower记录从目标节点到当前节点的总最小发送功率。
目标节点在发送ERREP包时,将totalPower初始化为0, minTxPower设为反向路由 表中的bestTxPower值。然后根据到源节点的反向路由信息将ERREP单播发送到ERREQ 的源节点。
(14) 接收路由应答信息ERREP。节点收到ERREP,判断自己是否是其"下一跳(next hop)"字段所指定的节点,如果不是,则丢弃,中断接收ERREP过程;如果是,则继续 后续处理,该处理过程包括更新到目标节点路由成本cost值以及更新到目标节点路由信 息两方面内容。其中cost值为minTxPower与totalPower值之和;对于到目标节点的路 由信息的处理,有以下两种情况
A:如果节点没有到目标节点的路由信息,则在路由表中添加到目标节点的路由; B:如果节点收到ERREP包时路由表中己存在到目标节点的路由,则可能需要更新路
由表中的路由信息。路由表更新的条件为
* ERREP包携带的顺序号大于现有路由信息中的顺序号;或
ERREP包携带的顺序号等于现有路由信息中的顺序号,但cost值小于路由表中 的totalTxPower值。
如果是中间节点收到ERREP,则
* 经判断未更新路由,说明当前路由不是最佳,则将该包丢弃,不再转发;
* 査询到源节点的反向路由,如果不存在反向路由或反向路由无效,则由于找不 到转发路径,也将ERREP包丢弃;
* 当反向路由存在且有效时,更新ERREP包中的totalPower为cost值,更新 minTxPower为到目的节点路由信息中的bestTxPower值,之后根据反向路由信息转发 ERREP。
如果是源节点收到ERREP后,将缓存的所有到目标节点的数据包根据建立的路由信 息发送出去。
在阶段(2)中,进一步包括下述操作内容 (2-1)在网络层,节点选择一条最节省能量的路由发送数据包。 (2-2)当数据包传递到物理层时,根据包头中包含的minTxPower信息(记录到下 一跳最小发送功率)动态调整当前节点到下一跳的发送功率、而非使用默认最大发射功 率值,进一步降低节点能量消耗。
在阶段(3)中,进一步包括下述操作内容 (3-1)在规定的一段时间内,节点有数据包发往邻居节点,则无需发送HELLO包, 从而避免网络内包的洪泛。路由中的节点超过一定时间无数据发送,需向邻居节点发送 HELLO包,以表征链路的有效性;
(3-2)节点收到HELLO包后,更新邻居表中的邻居过期时间以及路由表中的过期时 间;当节点超过一定时间没有收到HELLO包时,表明链路可能已经失败,需要修复当前 路由。
下面以图6为例,并参照图2,介绍本发明主要部分一路由寻找过程的工作流程 在图6所示的拓扑网络中,假设节点S需要发送数据包到节点D。其中d、 dl、 d2 分别代表S与B、 S与A、 A与B之间的距离。以下条件被满足
a) d〉dl, d〉d2
b) dl+d2 d ,
c) rl〉d, r2〉d
(1) 节点S需要发送数据包到节点D,由图6可知节点A、 B在S的传输范围内, 而D不在,则S的数据包需要经过中间节点转发才可以到达D。所以,节点S向它的邻居 节点A, B广播路由请求信息包ERREQ。
(2) 节点A收到该包后,经判断后认定包有效,于是缓存包的标识,计算到上一跳
(节点S )的最佳发送功率bestTxPower和当前能耗成本cost ( cost = bestTxPower+totalPower)。接下来,节点A査询路由表,得知无现存到节点S的反向 路由,则建立之。因为自己不是该请求信息中的目的节点,于是节点A继续向其邻居节 点(S、 B、 D)广播该ERREQ包(节点B对从节点S发来的ERREQ包的处理过程与节点A 类似)。'
(3) 当节点B从邻居节点A再次收到该ERREQ包时,因为已经存在到源节点S的反 向路由,所以需要判断是否需要对该反向路由信息进行更新。如果cost值小于路由表中 已存的totalTxPower值,则B将通向源节点S反向路由上的下一跳更新为A。如果反向 路由未更新,则节点B直接将该包丢弃(节点D对从A收到的该ERREQ包的处理过程与 节点B类似)。
(4) 在本发明的方法中,当目标节点收到ERREQ后,并不立即发送ERREP,而是延 迟一段时间等待更多从不同路径到达的ERREQ。因此,当节点D第一次收到从节点A发来 的ERREQ包时,它启动自己的定时器。以后节点D收到ERREQ后都等待计时器超时。超 时发生时,节点D己经收到从A、 B分别发来的两个ERREQ包。经判断,由节点B发来的 ERREQ包具有更小的总能量消耗。于是节点D将通向源节点S的下一跳设置为节点B,并 向节点B单播发送路由应答信息ERREP。
(5) 节点B在收到该ERREP包后,检查自己是否有到节点D的路由。没有则建立, 有则根据能量消耗情况判断是否需要更新。因知道自己不是该ERREP消息的目标节点, 节点B将该ERREP包沿着路由表中存储的,通向节点S路由上的下一跳节点A继续转发。 该过程一直继续,直到ERREP消息到达源节点S。
(6) S收到路由应答消息ERREP后,知道了一条通往目的节点D的节能路由。并且 根据ERREP中的miriTxPower字段,掌握了发送数据包时应使用的最小发送功率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原 则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种Ad Hoc网络上实现基于跨层机制的单播节能路由协议的方法,其特征在于,包 括下列步骤(1)源节点查询节点路由表,以期获取到目的节点路由信息,如果路由表中存在相应路由,则根据路由表内信息转发数据包,否则执行下一步;(2)源节点发送路由请求信息,该路由请求信息包含记录从源节点到当前节点所需总最小能耗totalPower;在中间节点传递过程中,对该值进行累加更新,还计算各个中间节点其到上一跳节点的最小发送功率bestTxPower,更新源节点到当前节点的总最小必需发送功率即路由成本cost,并处理到源节点的反向路由;(3)目的节点接收到路由请求信息后,发送路由应答信息,该应答路由信息包含到下一跳的最小发送功率minTxPower,以及从目标节点到当前节点的总最小发送功率totalPower,中间节点在传递过程中,更新本节点到目标节点路由成本cost值,并更新到目标节点路由信息;(4)源节点接收到路由应答信息后,选择一条最节省能量的路由,更新节点路由表,并发送数据包。
2. 根据权利要求1所述的Ad Hoc网络上实现基于跨层机制的单播节能路由协议的方法, 其特征在于,步骤(4)中发生数据包时,根据到下一跳的最小发送功率minTxPower 信息,动态调整当前节点到下一跳的发送功率。
3. 根据权利要求1所述的Ad Hoc网络上实现基于跨层机制的单播节能路由协议的方法, 其特征在于,所述的方法还包括节点间周期性交换信息以对路由信息进行维护,维护 方法为若路由中的节点在设定时间段内无数据发送,则向邻居节点发送HELLO包; 节点收到HELLO包后,更新邻居表中的邻居过期时间以及路由表中的过期时间,当节 点超过设定时间段没有收到HELLO包时,修复当前路由。
全文摘要
本发明属于网络通信技术领域,涉及一种Ad Hoc网络上实现基于跨层机制的单播节能路由协议的方法。该方法在网络层利用从物理层获取的功率信息计算出最小必需发射功率并选择具有最小能耗的路由,在物理层根据最小必需发射功率动态调节节点发射功率的跨层机制,有效地为Ad Hoc网络内的移动节点节省了能量。本发明能够有效降低节点能耗、延长移动节点工作时间,实现整个Ad Hoc网络性能的改善和生命期的延长。
文档编号H04L12/28GK101364945SQ200810152020
公开日2009年2月11日 申请日期2008年10月6日 优先权日2008年10月6日
发明者张赛男, 冰 李, 罗咏梅, 金志刚 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1