具体实施方式
本发明提出一种基于QoS的Ad Hoc网络自适应节点速度多路径路由确定方法(ANS-AOMDVQ路由算法),通过QoS设置路由算法,增加带宽、时延、开销和优先级等约束条件,采用按需过滤法进行判断和选择多路径路由,为源节点和目的节点之间所选的主备用路由具有一定的QoS保障,以解决Ad Hoc网络路由的QoS问题;提出一种基于节点移动速度的自适应维护备用路由方法,通过节点的移动速度并将其作为周期性更新备用路径的依据,即根据备用路径中属于高速移动的节点数目来判断备用路径是否失效,并根据判断结果决定是否需要替换某条备用路径或重新建立备用路径,让Ad Hoc网络能够 随网络拓扑的变化自适应地对备用路径进行调整,提高多径备用路由选择的有效性,以解决现有Ad Hoc网络基于信号强度的路由更新方式中备用路由的失效问题。
本发明具体实现方式如下,首先采用QoS约束路由提高主备用路由的QoS保障,扩展现有AOMDV路由协议规范中的路由表信息,在路由表中添加分别用于判断当前路由时延、节点可用带宽、链路开销、节点和业务等级、以及建立路由后的备用路由信息等相关的五个字段(节点处理数据分组的时延、链路最大时延、链路最小可用带宽、链路最大开销、节点和数据流业务的优先级标识符),同时对路由协议消息报文(RREQ、RREP、RRER)做相应扩展,即当节点开始选择路径时,对QoS约束条件进行排序(可按优先级→带宽→时延→开销的顺序排序)。根据上述顺序,依次选择满足QoS约束条件的路径,直到到达目的节点并回送RREP消息为止。也就是说,路径选择时首先根据第一个条件寻找可行路径,再根据第二个条件在得到的可行路径集合中进行筛选,直到满足所有的QoS约束条件才向下游节点继续广播RREQ或单播RREQ等信息,否则回送一个消息告诉上游节点不满足QoS要求,重新选择其他路径。
当源节点需要发送数据且路由表中没有到目的节点的路由,源节点便会广播带有QoS字段的RREQ包。中间节点收到RREQ消息后,比较函数类模块判断路径的优先级、带宽、时延和开销等,根据QoS约束条件,采用按需过滤法分别嵌套调用优先级、带宽、时延和开销判断函数,将四个QoS约束条件按照优先级→带宽→时延→开销的顺序排列;按照QoS约束条件顺序寻找满足所有QoS约束条件的可行路径,首先基于第一个QoS约束条件寻找可行路径,然后再基于第二个QoS约束条件在得到的可行路径集合中进行筛选,直到满足所有的QoS约束条件,才继续广播RREQ或单播RREP等信息给相应节点,否则便回送一个消息告诉上游节点该请求不满足QoS要求,直到到达目的节点并回送RREP为止。
基于节点移动速度的自适应维护备用路由。在源节点、中间节点和目的节点之间周期性发送探测消息SFM,获取备用路径中节点的移动速度,并根据 节点移动速度判断该备用路径的变化情况。若备用路径上有多个节点移动速度属于高速区域,此时有节点可能已经超出了能够建立链路的有效范围或含有该节点的备用路径可能已不是最好路径,目的节点在向源节点回复的应答消息SFMR(Speed Field Message Reply)中要求源节点替换或丢弃该备用路由(若备用路由全部失效源节点将重新建立备用路由),以确保备用路径的有效性。
由于在设置QoS约束条件时考虑了优先级,中间节点在接收到不满足QoS条件的RREQ消息时,将其放入缓存队列中而不是直接丢弃。当不满足条件的RREQ消息被放入队列中并等待了一个等待时长以后,再次判断,满足QoS约束条件则发送,否则再次进入队列等待,如此循环。为了保证实时性,在每一个报文队列中设置一个最大重复操作次数,限定从队列中取出数据重复比较QoS约束条件的次数,经过最大重复操作次数次比较后,若仍不满足,丢弃RREQ消息,以保证所有报文都能在允许的处理次数内被处理。
为了达到实时更新备用路径的目的,源节点周期性向每一条路由发送路由更新信息数据包速度域消息SFM(Speed Field Message),该消息中包含有节点停留时间值标识、移动速度域标识,QoS字段标识、主备用路径标识等字段信息。
本发明可将移动速度域分为慢速移动区域、中速移动区域和高速区域三个场景,为了接近现实的运动情况,设定节点移动速度大小的取值范围为[5m/s,35m/s],低速、中速和高速三个场景的移动速率分别定义为:[5m/s,10m/s],(10m/s,20m/s]和20m/s以上。源节点发送SFM消息的过程为:首先根据源节点的路由表信息,找出所有路径中中间节点数目最多的一条路径,并记录该路径中节点数目;然后根据节点数目值确定SFM消息中节点停留时间值和移动速度域,并在主备用路径标识字段中填入是否备用路径后发送给中间节点。中间节点转发SFM过程为:中间节点完成向下一个相邻节点的SFM信息转发,在转发发送路由更新信息数据包之前需要在SFM更新消息包中加入自己的速度域和节点停留时间值,填入SFM的相应标识字段中。目的节点处理SFM的过程为:首先将SFM消息先暂存在一个缓存队列中,然后一条一 条的取出SFM进行处理,处理过程可以分为两个步骤进行,
步骤一:目的节点根据SFM消息中的主备用路径标识字段值判断当前接受的SFM来自于哪一条路径。若为主用路径则放弃对该条路径的分析;若为备用路径再根据停留时间值和移动速度域值进行步骤二的分析;步骤二:根据停留时间值和移动速度域值的组合状态来判断路径中的移动速度属于快速区域的节点个数,通过指针指向停留时间值和移动速度域的数据列表来获取这两个字段值。
目的节点发送SFMR,根据停留时间值和移动速度域的组合状态来综合判断链路中属于高速区域的个数,若属于高速区域的节点个数较少,目的节点便向源节点回复带有备用路由可用的SFMR消息。若属于高速区域的节点个数较多,说明该路径的中间节点有多个节点移动速度属于高速移动状态,则该路径不可靠并需要替换。
此时,只有在首备用路径和次备用路径都不可靠的情况下才会发起备用路径的重新建立连接;只要首备用路径有效,不管次备用路径是否有效,目的节点都会在回送的SFMR消息中通知源节点重新建立备用路由,而不用替换和重新发起路由建立;只有在首备用路径失效,次备用路径可靠有效的情况下,目的节点才会在发送给源节点的SFMR消息中请求替换备用路由。
为使本发明的目的、实现方案和优点更为清晰,下面结合附图对本发明作进一步的详细描述,但该实施例不应理解为对本发明的限制。
本发明在AOMDV协议基础之上,结合QoS技术和自适应路由维护技术,提出了一种具备QoS保障路由、能够自适应节点移动速度实时更新路由信息的改进型多路径路由方法ANS-AOMDVQ,目的是为了在网络拓扑结构快速变化情况下及时发现具有QoS保障的多条路径,并能够根据节点移动速度实时对备用路径进行更新。根据QoS约束路由条件和基于节点移动速度自适应维护备用路由。根据QoS约束路由条件顺序(优先级→带宽→时延→开销),在源节点和目的节点之间找到一条满足QoS约束的主、备用路由。
首先,扩展Ad hoc网络路由表,在Ad hoc网络节点的路由表中添加用于判断当前路由和备用路由的链路最大时延,链路最小可用带宽,链路最大 开销,节点和业务等级的信息五个字段(Nodei_Max_Delay,Link_Max_Delay,Link_Min_Bandwidth,Link_Max_Consume,PRI_ID),扩展后的路由表如表1所示:
表1:扩展后的路由表信息
目的IP地址 |
目的序列号 |
接口 |
跳数计数 |
上一次跳数 |
下一跳 |
前去列表 |
生存时间 |
路由标记 |
Link_Max_Delay |
Link_Min_Bandwidth |
Link_Max_Consume |
PRI_ID |
Nodei_Max_Delay |
表1中,新增的5个字段分别定义为:Nodei_Max_Delay为节点处理数据分组的时延;Link_Max_Delay为链路最大时延;Link_Min_Bandwidth为链路最小可用带宽;Link_Max_Consume为链路最大开销;PRI_ID为节点和业务的优先级标识符。其中,节点和数据业务优先级的划分可通过在CANS_AOMDVQMeg类(消息类)头域的保留字段中添加3bit“xxx”来实现,如图1所示为优先级划分与PRI_ID字段取值示意图。考虑到时延、节点缓存队列容量等条件的限制,优先级的划分不易过于复杂,本实施例中将用户划分为2个等级,并将每一类用户产生的业务流再划分为3个等级,共6个等级,为了今后的进一步扩展,预留了2个未用等级(000和100)。
为了适应路由表的扩展,在ANS-AOMDVQ路由协议消息数据包RREQ中相应增加Link_Max_Delay,Link_Min_Bandwidth,Link_Max_Consume、PRI_ID和Sum_Delay等五个QoS字段,如表2所示:
表2RREQ消息的QoS字段
如表2所示,Link_Min_Bandwidth和Link_Max_Delay字段分别表示带宽和端到端时延;Sum_Delay表示累加时延,用于估算端到端的累加时延,其初始值为0。Sum_Delay与每个节点的分组处理时延关系如下:
中间节点可以通过Sum_Delay值判断端到端时延要求是否能够满足。中间节点处理带有QoS字段的RREQ消息过程如图2所示,当源节点需要发送数据且路由表中没有到目的节点的路由时,源节点便会向相邻节点广播RREQ消息。当中间节点接收到带有QoS扩展的RREQ消息时,综合考虑四个QoS约束条件,分别嵌套调用优先级、带宽、时延和开销四个判断函数进行路径过滤,即将四个QoS约束条件按优先级→带宽→时延→开销进行排列,首先基于第一个条件寻找可行路径,然后再基于第二个条件在寻找到的可行路径集合中再次筛选,直到满足所有的QoS约束条件,才向下游节点继续广播RREQ或单播RREQ消息,否则回送消息告诉上游节点该路由请求不满足QoS约束并将其存储在缓存队列或丢弃,直到RREQ消息到达目的节点并向源节点回送RREP消息为止。即收到RREQ消息后查看本地资源,是否满足最高优先级,如满足依次按照上述排列的QoS约束条件顺序判断带宽是否大于链路最小带宽,累加时延是否小于链路最大时延,如果均满足上述条件,累加时延加上该节点的时延,送入目的IP地址。当不满足QoS约束条件的RREQ消息被放入队列中并在waiting_time_x时间(等待时间)后再次判断,满足QoS约束则发送,否则再次进入队列等待,如此循环。由于本发明在设置QoS约束条件时引入了优先级,当中间节点在接收到不满足QoS约束的路由请求RREQ消息时,便将其放入缓存队列中,而不是直接丢弃。此处理方式的优点在于可以进一步反映节点和数据业务的优先级。为了保证实时性,每一个RREQ消息在队列中都有一个最大thresh_x(重复操作次数,从队列中取出数据重复比较QoS约束条件的次数),经过thresh_x次比较后,若仍不满足QoS约束条件,则丢弃该RREQ消息。保证了所有RREQ消息能在允许范围内得到最大限度的处理。
基于节点移动速度的自适应维护备用路由。通过周期性更新备用路径,使网络能够随着拓扑变化自动完成对路由的维护过程。根据备用路径中节点处于高速移动的个数判断备用路径是否失效。可以有效解决基于信号发射强度的路由更新方式中所出现的备用路径失效,以及由此带来的传输数据丢失、延时增大、链路拥塞等诸多问题。
为了达到实时更新备用路径的目的,源节点、中间节点和目的节点之间 需要周期性发送路由更新信息数据包,即速度域信息SFM(Speed Field Message),其报文格式如表3所示。
表3路由更新消息包SFM的格式
如表3所示,PauseTime(单位为秒)和AvailableSpeedField字段是一个初始化为空的纵向数据表,分别标明了节点n的停留时间值和移动速度域值,QoS字段标明了该条路由满足QoS约束条件的情况。MailableRouting字段标明了可用的路由属性,以区别备用路径和主路径。
本实施例以建立三条路由为例进行说明,所以AvailableRouting的取值用两位二进制数来表示,如图3所示,包括1条主路径和2条备用路径,建立列表根据备用路径是否有效设置相应Replace_ID字段的取值,相应的Replace_ID字段的取值为:00,01,10和11,标示符取值字段01代表主路径,10代表首备用路径,11代表次备用路径,00是不可用路径。
中间节点在转发SFM之前根据QoS约束条件进行判断是否满足约束条件,满足约束条件的在PauseTime和AvailableSpeedField纵向列表中将自身的PauseTime值和AvailableSpeedField值添加进去。目的节点接收到SFM消息后进行对比分析,分析完成后向源节点回复一个带有Replace_ID字段的SFMR(Speed Field Message Reply,速度域消息响应)消息,告诉源节点备用路径的有效性情况,并请求源节点做出相应的处理。SFMR消息格式如表4所示:
表4更新应答消息包SFMR的格式
图3中相应的Replace_ID字段的取值为:00,01,10和11,其取值所代表的含义和与之对应的操作如表5所示。
表5Replace_ID字段取值和对应的操作
其中,
(1)Replace_ID=11表示两条备用路径均有效,源节点可继续使用这两条备用路径。
(2)Replace_ID=01表示首备用路径失效,次备用路径有效,请求源节点丢弃、替换首备用路径,重新建立次备用路径。
(3)Replace_ID=10表示首备用路径有效,次备用路径无效,请求源节点丢弃并重新建立次备用路径。
(4)Replace_ID=00表示首备用路径和次备用路径均失效,请求源节点发起重新建立两条备用路由。
基于节点移动速度的自适应维护备用路由算法的工作过程包括路由发现和路由维护两个过程。
路由发现过程中,中间节点只转发其中满足QoS约束条件中性能最好的RREQ数据包,其余的作为备用路由信息添加到本地路由表中,如果所有节点都不满足约束条件,向上游节点回送消息告之路由请求不满足QoS约束条件,并将其存储在缓存队列或者丢弃。
路由维护过程如图4所示,路由维护的关键是在目的节点上对备用路径中属于高速节点的数目进行判断,并通过判断来确定备用路径的有效性,从而实现备用路由的维护。路由维护过程的实质是发送SFM-转发SFM-处理SFM-回复SFMR过程。源节点发送SFM过程、中间节点转发SFM过程、目的节点处理SFM过程和目的节点发送SFMR过程,添加本地标识符(节点移动速度和节点停留时间)。其中:源节点发送SFM过程为:源节点在发送SFM之前首先要初始化SFM消息,根据自己的路由表信息,找到所有路径中中间节点数目最多的那一条路径,并记录下节点数目;然后根据节点数目确定SFM消息中 PauseTime和AvailableSpeedField数据列表的最大行数,并把每一行的值设置为空;最后在AvailableRouting栏填上相应可用路径值(AvailableRouting_ID)后发送给中间节点,如图5所示为源节点发送SFM消息流程。
中间节点转发SFM过程为:路径上的每个节点依次接收上游节点发送的更新消息包SFM,并在转发更新包之前将自身的节点停留时间值PauseTime_ID和节点移动速度域值AvailableSpeedField_ID填入对应的数据列表之中。目的节点处理SFM过程为:当SFM消息到达时先暂存在一个缓存队列中,然后一条一条的取出SFM进行处理,处理过程包括两个步骤,如图6所示:第一步骤:目的节点根据AvailableRouting_ID值判断当前接受的SFM来至于哪一条路径。若AvailableRouting_ID=01,表示SFM来自于主路径,便放弃对该条路径的分析;若AvailableRouting_ID不等于01(表示SFM来至于非主路径),进行第二步骤处理。第二步骤:判断路径中节点移动速度属于快速区域的数目。判断过程为:在PauseTime和AvailableSpeedField数据列表中取出每个节点对应的PauseTime_ID值和AvailableSpeedField_ID值,然后进行判断,判断出现的5种情况如表6所示。目的节点依次对每个节点进行判断,直到判断完路径中的所有节点。
表6PauseTime_ID和AvailableSpeedField_ID组合状态
目的节点发送SFMR过程为:根据路径中节点移动速度属于快速区域数目 (Num)向源节点发送相应的SFMR消息。若Num<2,此路径有效且足够新,向源节点回复一个带有Replace_ID=11字段的SFMR消息;若Num≥2,该路径的中间节点有两个或两个以上节点的速度属于高速移动状态,此路径不可靠需要替换,发送的SFMR消息包括以下三种情况:
(1)如果失效路径为首备用路径,且次备用路径有效,回复带有Replace_ID=01字段的SFMR消息;
(2)如果失效路径为首备用路径,且次备用路径也失效,回复带有Replace_ID=00字段的SFMR消息;
(3)如果不可靠路径为次备用路径,且首备用路径有效,回复一个带有Replace_ID=10字段的SFMR消息。
当首备用路径和次备用路径都不可靠时,才发起备用路径的重新建立过程;只要首备用路径有效,不管次备用路径是否有效,目的节点都会回送一个带有Replace_ID=00字段的SFMR消息给源节点,告知源节点不需要替换也不需要发起路由建立,只有在首备用路径失效,次备用路径可靠有效的情况下,目的节点才会发送一个带有Replace_ID=01字段的SFMR消息给源节点,请求源节点替换备用路由。目的节点在每次判断分析完一条路由的相关信息以后,会自动恢复初值Num=0。
我们使用NS-2仿真系统对ANS-AOMDVQ路由算法与AOMDV和MP-ADMDV的性能进行了对比分析。
(1)仿真条件
网络拓扑大小为1000m×1000m,节点个数为50个,数据流类型为CBR,下层使用UDP Agents。节点移动模型采用Random Way-Point,节点移动速度取值范围为[5m/s,35m/s],并根据此速度将仿真区域划分成低速、中速和高速三个区域:[5m/s,10m/s],(10m/s,20m/s]和(20m/s,35m/s]。节点停留时间的上限值为50秒,即在[0s,50s]内随机取值,以避免节点在整个会话过程中一直处于静止状态。
仿真配置参数如表7所示。
表7仿真配置参数
(2)仿真结果
图7、8、9为仿真结果,每个图中有三条曲线,分别对应于AOMDV、MP-AOMDV和本发明中所提的ANS-AOMDVQ三种路由算法。
图7是不同移动速度下的数据包发送成功率(目的节点接收到的数据包/源节点发送的数据包)比较图,
其中横坐标为节点移动速度,纵坐标为数据包发送成功率。从图7中可以看出,节点在低速和中速移动情况下,ANS-AOMDVQ数据包发送成功率比AOMDV高、比MP-AOMDV略微低一些;当节点处于高速移动环境时,ANS-AOMDVQ的数据包发送成功率均高于另外两种,其中,相比MP-AOMDV性能约提高了2%-4%,相比AOMDV性能提高了近12%-24%。同时,从图7中还可以看出,AOMDV在低速移动环境下数据包发送成功率相对较高,但随着节点移动速率的增加性能急剧下降。这是因为在高速移动环境下,网络拓扑变化较快,由于没有自适应地维护备用路由,导致备用路由实效、数据包传输成功率降低。
图8是不同移动速率下的平均端到端延时(全网数据传输延迟的总和(秒)与全网接收数据包的总数(个)的比值)比较图,其中横坐标为节点移动速度,纵坐标为平均端到端延时。从图8中可以看出,在低速移动环境下,AOMDV的平均端到端延时表现最好,均小于MP-AOMDV和ANS-AOMDVQ,这是由于后两者对备用路由进行周期性维护造成的。但是,随着节点移动速度的增加,路径发生断裂或失效的可能性随之增加,AOMDV的延时迅速增加。在中等速度区域,ANS-AOMDVQ和MP-AOMDV的端到端延时大致相同,但进入高速移动环境后,ANS-AOMDVQ的延时迅速降低,MP-AOMDV的延迟虽有所降低但较为缓慢。相比MP-AOMDV路由算法,ANS-AOMDVQ的延时平均降低了1.5%。这是因为 ANS-AOMDVQ中对备用路由采取了周期性自适应维护,保证了备用路由的有效性,降低了主路由失效时切换到无效路由上造成的延时。若没有本发明中所提出的路由维护机制,在高速移动情况下平均端到端延时将会迅速增加。
图9是三种路由算法的路由开销(全网产生的控制包与成功接收到的数据分组的比值)比较图,其中,横坐标为节点移动速度,纵坐标为路由开销。从图9中可以看出,由于AOMDV算法没有周期性路由维护信息,在低速环境下AOMDV的路由开销相对较小,但随着移动速度的增加,AOMDV的标准路由开销迅速增加。这是因为节点移动速度增大导致路由失效的概率增大,而路由失效又引起了路由重新建立过程,从而增大了整个网络的路由开销。进入中速移动区域后,AOMDV的路由开销已高于MP-AOMDV和ANS-AOMDVQ,在高速情况下路由开销进一步增加。从图9中还可以看出,ANS-AOMDVQ的开销略大于MP-AOMDV,这是因为ANS-AOMDVQ维护的是多条备用路由(本实施例中为两条),路由维护信息的发送更为频繁。用一定程度的路由开销来换取整个网络资源利用率的提高是值得的。
以上结果表明,ANS-AOMDVQ能够提供具有高QoS性能的路径,并能自适应网络拓扑的变化对备用路径进行维护,特别是在高速移动环境下性能更为优异,数据传输成功率和延时等方面性能显著提高,并大大降低了路由发现次数、提高了网络资源的利用率。
以上所述仅为本发明的较佳实施而已,所作的扩展参数定义和数值定义都是为了更好地说明本发明的技术方案,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。