【背景技术】
移动无线自组网是由一组移动节点组成的,无需任何基础设施支持的网络自治系统。网络中节点互相以多跳方式转发报文。随着网络应用及互联网互联的发展,要求在移动无线自组网中能够提供一定的QoS(服务质量)保证。在无线自组网中每个节点都采用电池作为其工作能源,且每个节点既是主机又是路由器,因此当一些节点由于能量耗尽而停止工作时,将会导致整个网络提供服务的崩溃。因而在移动无线自组网中,仅仅提供基本的QoS路由功能是不够的,还需要考虑能耗问题。在保证QoS的同时如何延长网络的生存时间已经成为QoS路由的一个重要目标。
当前基于最大化网络生命周期的节能路由协议主要研究的是如何将通讯负载分散在各个节点之间,平衡网络中各个节点的能量消耗,从而使整个网络的生命周期最大化。若Er i(t)表示节点i在时刻t的剩余能量,Ti(t)表示节点i时刻t的生命周期,则在时刻t网络生命周期Tsystem(t)可以表示为:
最大化网络生命周期路由问题可以表示为:
若节点v
i以相同的功率向其相邻节点发射报文,其发射功率用
表示,则节点v
i可发送的最大数据量
为:
当前研究者们提出了很多最大化网络生命周期的路由算法与协议,文献S.Singly,M.Woo,C.S.Raghavendra.Power-Aware Routing in Mobile AdHoc Networks.In Proceedings of Mobicom’98,Boston,1998.181-190中提出MBCR策略,即在所有可能的路径中选取电池剩余能量最大的那条路径作为最后的路由。MBCR策略试图在网络全局上得到平均电池能量最充足的路由,但仍旧不能避免该路由中某些节点的剩余电能较低而导致路由过早失效的问题。文献A.Misra,S.Banerjee.MRPC:Maximizing Network Lifetime forreliable routing in Wireless Environments.In proceedings of IEEEWireless Communications and Networking Conference,Orlando,FL,USA,2002.800-806在定义代价度量时,不仅考虑节点相关的参数(节点的电池能量),同时也考虑链路相关的参数(在链路上传输数据包所消耗的能量)。该算法通过选择一条能传输最多数量的数据包的路径,从而达到延长网络生存时间,避免使某些关键节点过度使用造成网络的过早分离。
在上述文献A.Misra,S.Banerjee.MRPC:Maximizing Network Lifetimefor reliable routing in Wireless Environments.In proceedings of IEEEWireless Communicat ions and Networking Conference,Orlando,FL,USA,2002.800-806中将网络生命周期最大化路由问题转化为在源节点和目的节点间寻找一条可发送数据量最大的路径,其描述如下:
其中pcandidate表示可发送数据量最大的路径。
由于在同一个节点上可能需要对多个业务流进行转发,即多对源节点-目的节点路径共享一个或多个节点,因而即使这些节点具有最大的数据发送量仍然会由于负荷过重,导致最早被耗尽能量。因此采用式(5)定义的网络生命周期最大化路由问题并不适合同一个节点有多个业务流同时存在的情况。且文献A.Misra,S.Banerjee.MRPC:Maximizing Network Lifetime forreliable routing in Wireless Environments.In proceedings of IEEEWireless Communications and Networking Conference,Orlando,FL,USA,2002.800-806也没有考虑不同业务的QoS需求。
【具体实施方式】
以下将详细说明本发明的技术内容。
本发明基于最大化网络生命周期的服务质量(QoS)节能路由方法对网络生命周期最大化路由问题重新定义以适用于无线自组网中同一个节点有多个业务流存在时情况。
假设有m个业务流通过节点v
i转发,若
表示业务k在节点v
i上的分配的业务量,则节点v
i转发业务k的收益函数为:
网络生命周期最大化路由问题可描述为:
考虑到业务的QoS要求,若s为源节点,d为目的节点,vi(i=1,2,…,n)为报文转发节点,网络生命周期最大化QoS路由问题可以描述为在满足各种业务QoS要求的前提下,寻找一个可行路径P(s,d),使得其路径收益达到最大。表示为:
s.t.:fi≤δi,i=1,2,…,6 (8)
其中δi为业务约束,有其中D是延迟约束,H是跳数约束,B是带宽约束,J是延迟抖动约束,L是包丢失约束,Er为节点能量约束。
本发明基于最大化网络生命周期的QoS节能路由方法包括以下步骤:
利用RREQ与RREP报文来建立源节点与目的节点间尽可能详尽的网络连接;以及
建立的网络连接中选择一条或多条路径收益达到最大的路径来发送数据,该路径满足式(8)
本发明基于最大化网络生命周期的QoS节能路由方法用到的报文包括:RREQ报文、RREP报文、RRER报文以及DATA报文,详述如下:
RREQ报文
RREQ报文用{SrcAddr,DestAddr,Seq,Hops,ReqBand,ReqDelay,ReqHops,Er,CurNdTime}九元组表示。其中SrcAddr为源节点地址;DestAddr表示目的节点地址;Seq为路由请求报文序列号;Hops记录报文经过的跳数;ReqBand为业务对路径的带宽要求;ReqDelay为业务对路径的延迟要求;ReqHops为业务对跳数的要求;Er为节点的剩余能量值;CurNdTime为接收RREQ报文的当前节点到源节点的累积延迟时间。
RREP报文
RREP报文用{SrcAddr,DestAddr,Seq,CurNdTime,Hops,Addr[1,,n],cp,lp,Bp}表示。其中SrcAddr、DestAddr、Seq、CurNdTime、Hops的含义与RREQ报文相同,Addr[1,,n]:Addr[i]表示RREP报文返回路径上第i个记录节点的地址,cp表示路径容量,lp表示路径业务量,Bp表示路径带宽。
RRER报文
RRER报文与AODV协议相同。
DATA报文
DATA报文由{SrcAddr,DestAddr,Seq,cp,Data}五元组表示。SrcAddr、DestAddr、Seq、cp含义与RREP报文相同,Data表示要发送的数据。当中间节点收到DATA报文后,根据下节介绍的方法确定如何转发报文(容后详述)。
本发明基于最大化网络生命周期的QoS节能路由方法包括本地信息管理、路由算法、资源预留和路由维护,其中路由算法包括路由发现、路径构造以及路由选择步骤。
1、本地信息管理
本发明基于最大化网络生命周期的QoS节能路由方法的每个节点需要维护两个表格,即相邻节点状态信息表与路由信息表。
表1是本发明基于最大化网络生命周期的QoS节能路由方法的节点v的相邻节点状态信息表。相邻节点状态信息表的表项内容有:
前向跳数(Forward Hops):与节点v相邻的所有节点距离源节点的跳数;
剩余能量(Residue Energy):为节点v的剩余能量;
高度(Height):表示节点v的高度值,有height(d)=H,height(s)=0,其中s为源节点,d为目的节点,H为跳数约束值;
链路状态(Link State):记录节点v与其相邻节点的链路上的可用带宽(B)及节点到源节点的累积延迟时间,DiF表示节点经过节点vi到源节点的累积延迟,DtB表示节点经过节点vi到目的节点的累积延迟;
属性(Attribute):用来描述节点v是否为业务的转发节点。节点的属性可以分为初始状态(I)、转发状态(F)和阻塞状态(B)三种状态;
生存时间(Lifetime):是为了防止相邻节点状态信息表项被节点长久保存,成为过期信息。
表1、节点v的相邻节点状态信息表
节点 |
前向跳数 |
剩余能量 |
高度 |
链路状态 |
属性 |
生存时间 |
v |
hF |
Er |
height |
- |
I |
T |
v1 |
h1F |
Er1 |
height1 |
B1,D1F |
F |
T1 |
v2 |
h2F |
Er2 |
height2 |
B2,D2F |
B |
T2 |
… |
… |
… |
… |
… |
… |
… |
节点 |
前向跳数 |
剩余能量 |
高度 |
链路状态 |
属性 |
生存时间 |
vi |
hiF |
Eri |
height3 |
Bi,DiF |
F |
Ti |
表2是本发明基于最大化网络生命周期的QoS节能路由方法的路由信息表,路由信息表用来执行路由维持、管理任务。其内容与AODV协议中的路由信息表相同,都需要保持一个相应目的地的路由信息表项,实现逐项转发。在路由信息表中,针对每一个表项,需要记录如表2所示的内容。其中目的序列号是用来防止路由环路,当发生断链时,通过增加目的序列号和度量值(跳数)来使路由信息表项无路由环路;前驱列表中存储了到目的节点的路径以及路径容量和分配的业务量,生存时间是为了防止路由信息表项被节点长久保存,成为过期路由。
表2路由信息表项内容
目的IP地址 |
目的序列号 |
接口 |
跳数计数 |
上一次跳数 |
下一跳 |
前驱列表 |
生存时间 |
路由标记 |
|
2、路由发现
路由发现过程通过源节点向目的节点发送了RREQ报文来获得从源节点到目的节点的网络拓扑结构信息,从而为构造合适的从源节点到目的节点的路径打下基础。当中间节点收到第一条路由请求RREQ报文后,根据业务QoS延迟要求和跳数要求,设定自己的等待时间,确定是否转发报文。并根据收到的报文对相邻节点状态信息表和路由信息表进行更新。延迟等待时间由下式确定:
3、路径构造
路径构造是利用了RREQ报文建立的相邻节点状态信息表,通过目的节点发送RREP报文用来建立从目的节点至源节点的反向路径。为了防止RREP报文造成广播风暴,RREP报文只在收到了RREQ报文的节点中广播,即节点必须满足:
DiF+CurNdTime≤ReqDelay^hF+hops≤ReqHops (10)
式中CurNdTime表示报文从目的节点到本节点的累积延迟,hF为前向跳数,hops表示报文从目的节点到本节点经过的跳数。
考虑到对业务QoS的要求,这里取延迟、跳数、带宽和链路生命时间四个度量参数,因此节点v收到其相邻节点vi发送RREP报文后,若要转发RREP还需要满足下式:
其中,
为节点v与节点v
i间链路带宽,B是带宽约束,
为节点的剩余能量,E
r为节点能量约束,N(v)表示节点v的相邻节点集合,v
j表示节点v的上行节点。
路径构造的工作原理:目的节点将RREP报文中的路径容量设定为业务需要发送的业务量Lk,并向其相邻节点发送。中间节点v收到相邻节点vi发来的RREP报文则根据以下规则判断是否转发该报文,并更新本地信息(相邻节点状态信息表与路由信息表)。
RREP报文转发规则:
当时刻t,节点v收到其相邻节点vi发送RREP报文,且节点v满足式(10)(11),则
then节点v转发RREQ报文
表示节点v
j在此次转发RREQ报文时的路径容量值,l
p(d,v)(t-1)表示节点v在上一次转发RREQ报文时的路径容量值。
节点提升规则:
当时刻t,节点v收到其相邻节点vi发送RREP报文,且节点v满足式(10)(11),则
then height(v)←max{height(vi)}+1。
RREP报文丢弃规则:
当时刻t,节点v收到其相邻节点vi发送RREP报文,则
then丢弃RREP报文。
4、路由选择
当源节点收到目的节点发送的RREP报文,将报文中的节点地址取出后,将其反转后就可以得到一条从源节点到目的节点的路径。由于在源节点与目的节点间可能存在多条可行路径,为了得到足够的路径以便源节点找出最好的路径,因此源节点在收到第一个RREP报文后并不立即发送DATA报文,而是等待一段时间后,以便接收到更多的RREP报文,从而可以获得足够的路径信息。等待时间由下式确定。
Tdelay=ReqDelay-CurNbTimefirstRREQ (12)
式中CurNbTimefirstRREQ表示源节点收到的第一个RREP报文累积延迟。
源节点等待Tdelay时间后,开始从获得的路径中选择合适的数据发送路径。
5、负载分配策略
对于单路径路由而言,由于只有一条路径用作数据传输,因而不存在负载分配问题。但是对于采用多路径同时传输路由,则需要考虑负载分配问题。这里谈到的负载分配策略也是针对数据采用多路径同时传输路由而言。由于网络传输的时延不一致,多径时必将会产生接收端的乱序问题,这可由应用层面对此进行排序。因此在这里假设目的节点接收端已具备排序功能。
当存在多条路径可用时,采用根据路径容量按比例分配负载的方法,即
式中L
k表示总业务量,
表示路径p
i分配的业务量,
表示路径p
i的路径容量,k表示路径个数。在传输过程中如果有路径断裂,则需根据上式在剩余的可用路径上重新分配负荷。
6、资源预留策略
当源节点收到RREP包时就启动资源预留过程。该过程由每个路径上第一个发送的DATA报文来执行。转发节点根据检查收到的DATA报文确定的资源是否可用,如果资源不可用或出现链路连接失败,则向源节点发送一个RRER报文。
7.路由维护策略
在Ad hoc网络中,链路由于移动、拥塞或报文冲突等原因会发生断裂,因此需要对路由进行维护以减少由此产生的对数据传输的影响。这里采用类似AODV协议的路由维护策略并引入如下规则:
规则1:令
表示一条业务量为
的传输路径,有
s为源节点,d为目的节点,v
i(i=1,2,…,n)为报文转发节点,若链路(v
k,v
k+1)发生断裂,节点v
k删除断裂链路的路由信息表项和相邻节点状态信息表项,并沿反向路径向源节点发送RRER报文。所有收到RRER报文的上游节点需要根据收到的报文更新相邻节点状态信息表与路由信息表(即删除断裂链路的相邻节点状态信息表项和路由信息表项);
规则2:如果节点vk的路由信息表存在其他到目的节点的路径,令p′(Lp′)为其中收益最大的路径,p′(Lp′):vk →v′k+1→…→v′n→d,则将DATA报文沿该路径发送至目的节点;以及
规则3:源节点收到RRER报文,根据路由信息表重新寻找一条路径替代原路径,若无法找到,则源节点将重启一次新的路由选择步骤。