一种基于QoS的改进AODV路由协议设计及其实现

2015-09-14 09:24何超男林威刘佳
物联网技术 2015年8期

何超男 林威 刘佳

摘 要:无线自组网是一种特殊的无线移动通信网络,是由一组带有无线收发装置的移动终端组成的一个动态自组织网络系统。随着无线自组网应用领域的日益扩大,提供端到端的服务质量(QoS)也越来越重要。文中在传统AODV协议基础上进行了改进,引入跨层思想并进行QoS设计,在一些较关注某些具体性能的应用场景下,可根据所关注的性能指标进行选路以满足对性能的要求,具有更强的实用性,最后在实现中验证了该改进协议的有效性。

关键词:无线自组网;QoS;链路质量等级;AODV

中图分类号:TN711 文献标识码:A 文章编号:2095-1302(2015)08-00-03

0 引 言

与传统的有线网络不同,无线自组网是一种复杂的分布式网络系统,网络中的无线移动节点能够动态地自组织成任意的网络拓扑,从而能够实现在没有预设通信基础设备的条件下的互连通信[1]。无线自组网中的每个无线移动节点都能够持续地监听和寻找附近节点,以确定在当前网络条件下将数据分组传送给其它节点的最优路径[2]。正由于无线自组网的特殊性,其本身具有的带宽有限和拓扑动态变化等特点,使得在有线网络或传统无线网络中性能表现良好的路由技术在无线自组网中均不适用,必须根据无线自组网的具体特点研究专门的路由技术。

随着无线自组网应用领域的日益壮大,提供端到端的服务质量(Quality of Service,QoS)也成为了衡量自组网的一个重要准则。QoS通常定义为把分组流从源节点传输到目的节点时网络必须满足的一个服务要求集合,期望网络向终端用户提供端到端的服务保证以及基于策略的网络性能的服务属性,例如,时延、时延抖动、带宽、分组丢失率等[3]。对于一些较关注某些性能指标的业务来说,如视频、电话等,应重点考虑这些业务所关注的指标,根据这些指标选择合适的传输路径,以增强其实用性。同时由于无线自组网中带宽资源的有限性,降低不必要的系统开销也是非常有必要的,以充分利用宝贵的带宽资源,将其用于具体的数据业务传输。

1 路由协议设计

1.1 AODV路由协议的不足

按需距离矢量路由协议[4](Ad-Hoc On-Demand Distance Vector Routing Protocol,AODV)是无线自组网中最经典的路由协议之一。AODV协议采用按需的思想,在有通信请求时才启动路由发现机制去寻路,按照序列号最新时延最小的标准来选择最后使用的路径。

然而,对于某些对QoS要求较高的通信业务来说,依据该准则选取的路径对于业务的通信需求来说并不一定是最好的,在这种情况下,应该根据具体问题进行具体分析。本文提出一种改进方案,通过跨层的设计,依据物理层和MAC层上传的具体链路信息来衡量链路的质量,将其加入到路径选择时所需要考虑的因素范围,使得改进后的路由协议实用性更强。

在AODV协议中各节点为维护自己周围的邻居节点信息,需要周期性地广播Hello消息,在没有业务通信请求时,这种周期性广播的维护信息会耗费一定的带宽,带来不必要的系统开销,在改进协议中利用物理层和MAC层上传的链路信息获得节点与邻近的邻居节点连接情况,减小了系统开销。改进协议充分利用了已有的控制消息,将相关的QoS因素放在其路由请求(Route Request,RREQ)消息和路由应答(Route Reply,RREP)消息的保留字段中,在不额外增加控制消息负载的条件下,实现了对QoS因素的考虑。

1.2 改进协议的机制

改进协议的主要思想是,在AODV路由协议的基础上,通过跨层设计,根据物理层和MAC层上传的一些具体的链路QoS信息计算出链路质量等级指标,并将该指标加入到RREQ消息和RREP消息中,作为选路依据之一,从而选择出性能最优路径,具有更强的实用性。同时,根据物理层和MAC层上传的链路信息判断节点间的连接情况,能够减小系统不必要的开销,更有效地利用系统带宽资源。在不增加其它控制消息的前提下,更能满足通信业务对某些QoS性能的要求,并且提高分组投递率,降低链路断开引起的路由重寻概率。其工作过程主要包括:跨层通知步骤、寻路步骤、应答步骤和选路步骤。

1.2.1 跨层通知步骤

跨层设计示意图如图1所示。物理层和MAC层实时为路由层提供节点周围环境内的链路信息,如信噪比、信干噪比、误包率、丢包率、误帧率、信道总带宽、信道可用带宽、传输延时等,选取应用场景中关注的因素计算得到用来表示链路整体质量的物理量,以用于后续的路由过程,增强了协议的实用性,本文中将其称为链路质量等级,用LQ表示。同时路由层也不再需要为维护邻居节点信息额外地进行周期性广播Hello消息,节省带宽资源。

这里对链路质量等级作如下定义:

用BW(u,v)表示节点u和节点v之间的信道可用带宽,用SNR(u,v)表示节点u和节点v之间的信噪比,用DL(u,v)表示节点u和节点v之间的传输延时。在本文中使用信道可用带宽BW(u,v)、信噪比SNR(u,v)和传输延时DL(u,v)的加权来表示一条链路或路径的QoS状态信息,将其称为链路质量等级。在具体使用时,可以根据应用场景的具体业务需求,选取业务较关注的因素更换有关QoS信息。假设节点ui有n个邻居节点u1,u2,…,un,那么它与每一个邻居节点间的链路都有一个信道带宽信息、信噪比信息和传输延时信息,所以,节点上应有n个信道可用带宽信息BW(ui,u1),BW(ui,u2),…,BW(ui,un)、n个信噪比信息SNR(ui,u1),SNR(ui,u2),…,SNR(ui,un)和n个传输延时信息DL(ui,u1),DL(ui,u2),…,DL(ui,un)。

1.2.2 寻路步骤

将计算得到的链路质量等级信息包含在RREQ消息中,在不额外添加其他控制消息的前提下,充分利用协议中已有的控制消息,并进行单播或者广播,每经过一个中间节点的转发都对RREQ消息中的链路质量等级字段进行更新。

源节点广播RREQ消息时,将该消息中的链路质量等级字段初始化为0,当非目的节点收到该消息时,更新RREQ消息中的链路质量等级字段的值。

RREQ消息每经过一个节点,对比收到该RREQ消息的链路所对应的链路质量等级字段以及该RREQ消息中的链路质量等级字段,取其中的较大值来更新RREQ消息中的链路质量等级字段,即在RREQ消息中保存较差链路的链路质量等级,使得RREQ消息中的该字段保存的是所经过所有链路中最差链路的链路质量等级。

用LQ(path)表示保存在RREQ消息中的链路质量等级,该RREQ消息经过了一系列节点i1,i2,…,in,每一条链路都有各自的链路质量等级LQ(im,in),则利用公式LQ(path)=max(LQ(i1,i2),LQ(i2,i3),…,LQ(in-1,in))更新RREQ消息中的链路质量等级字段,即每经过一条链路,就对比该链路的链路质量等级与RREQ消息中链路质量等级字段的值,并将较大值更新到RREQ消息的链路质量等级字段中。各节点均据此规则来更新RREQ消息中的链路质量等级字段,使得该字段中保存的是RREQ消息已经经过的链路中最差链路的链路质量等级。

1.2.3 应答步骤

为使得RREQ消息中的链路质量等级字段保存的是最终连接源节点与目的节点的整条路径的链路质量等级信息,本文中规定只有目的节点能对RREQ消息进行回复,中间节点只能转发而不能应答。对于一条路径而言,经过该路径的控制消息的链路质量等级字段上,保存的是组成这条路径的所有链路中最差链路的链路质量等级。该字段的值越小,说明该消息经过的所有链路中最差链路的质量越好。并且对于同一个下一跳节点,目的节点只回复从这个下一跳节点上收到的第一个RREQ消息,而后续再从该节点上收到的其它RREQ消息,只有当其链路质量等级字段中的值小于上一个回复的RREQ消息中的链路质量等级,才会再次进行回复,其余的RREQ消息全部丢弃。

1.2.4 选路步骤

在RREP_WAIT_TIME时间内,源节点可能收到N个应答的RREP消息,从中选出最稳定的路径。

其中,ω,ξ为计算所需的加权因子,依据对跳数和链路质量等级的关注度,可对加权因子进行相应调整,以改变其所占有的权重。源节点对收到的N个应答的RREP消息分别进行路由尺度的计算,然后从中选择具有最小路由尺度的路径。路由尺度越小,说明该路径的跳数越小,且所经过的链路中最差链路的质量也越好。由于路由尺度综合考虑了跳数和链路质量,路由尺度最小的路径应最稳定,故据此选出来的路径应为所有路径中最稳定的。

2 路由协议的实现

2.1 实现场景

根据上述工作机制对AODV协议改进后进行实现,本次实现中共四个节点,在搭建的四节点硬件平台上完成实现工作,并测试协议性能。硬件基带板加上射频模块即为一个完整的节点,硬件部分的核心是Marvel公司的FWPXA270C1,软件环境使用嵌入式Linux操作系统,内核版本为2.6.32.30。

2.2 实现设置

四个硬件平台的IP地址配置如表 1所列,协议中使用的主要参数如表2所列。

四个硬件平台的拓扑连接关系如图2所示。其中S是业务发起的源节点,D是业务的目的节点。为示意直观,将根据物理层上报的链路信息计算出的链路质量等级标于该链路上,而不列出进行计算的具体过程。

在传统协议中,只考虑路由跳数,而不考虑其他因素,因此在选路时只选择具有最短跳数的路径。在图2的拓扑连接情况下,只从跳数最短的路径1和路径2中选择,RREQ消息从哪条路径先到目的节点D就选择哪条路径使用,而不考虑链路质量。

在上述情况中,从S到D的业务虽然可通,但是效果并不好,在实验中发现ping包测试时掉包较多,语音测试时话音质量不好。

而在改进协议中,同时使用链路质量和跳数作为判决依据,设置ω=0.5,ξ=0.5,LSmax=9,HCmax=5,使用公式(2)作为路由选择依据。

当源节点S还未发起业务请求时,各节点的路由表中均只有其一跳邻居节点。

当源节点S发起朝节点D的业务请求时,节点S发起路由寻路过程,在全网中广播RREQ消息,以跳数和链路质量计算得到的路由尺度作为路由选择依据,计算得到路径1的路由尺度为0.422 2,路径2的路由尺度为0.477 8,路径3的路由尺度为0.411 1,路径4的路由尺度为0.577 8,最后选择具有最小路由尺度的路径3。

在ping包还在继续发送的时候,节点A和节点B的路由表发生变化,具体如图3和图4所示,它可将一个本可一跳到达的邻居节点通过另一个邻居节点中继到达。

尽管选择的路径跳数稍长,但从业务体验的角度看,还是比传统协议要好。在实验中发现,ping包基本不丢,语音测试时效果也很好,话音清晰流畅。

由于业务对时延的要求并不是特别高,而对业务具体体验效果有较高要求,在经过改进的协议中,通过牺牲部分时延换取了更好的体验效果,在设定的场景中该改进协议取得了预期效果。

3 结 语

本文基于某些业务对具体性能的要求,在AODV协议的基础上进行了改进,加入QoS,并在硬件平台上进行实现,通过实现中得到的具体业务体验效果。改进后的协议在业务要求的性能上得到了改善,表明该改进在该具体应用场景中是有效的。

参考文献

[1]陈林星,曾曦.移动AdHoc网络——自组织分组无线网络技术[M]. 北京:电子工业出版社,2006.

[2]李腊元,李春林. 计算机网络技术(第2版)[M]. 北京:国防工业出版社,2004.

[3]王海涛,郑少仁,宋丽华. Ad Hoc 网络中QoS保障机制的研究[J]. 通信学报,2002, 23(10): 114-121.

[4] C.E. Perkins, E.M. Royer, S.R. Das. Ad Hoc on Demand Distance Vector Routing[J].IETF Draft, 2002,6.