移动自组网MANET(Mobile Ad Hoc Network)[1]是由一组带有无线通信收发装置的移动终端节点组成的一个多跳、临时性无中心的网络,整个网络没有固定的基础设施,网中的每个终端都可以自由移动、自由加入和退出网络,各网络节点地位相等。Ad Hoc网络具有很高的灵活性,可以广泛应用于不易建立基础设施的环境,如地震后的紧急搜救、军用战术环境和民用应急通信。与单跳的无线网路不同,移动自组网的节点之间通过多跳数据转发机制进行数据通信,需要中间节点进行分组转发决策。
移动自组网路由协议的多数路由协议以单径路由算法为基础,而且在路由选择时以跳数最少(或称为路径最短)作为选择标准,没有考虑网络拥塞问题。由于一条路径的带宽有限,当很多节点都选择跳数最少路径作为路由路径时,骨干节点连接繁忙,从而造成端到端时延和丢包率增大,网络拥塞,影响网络整体性能[2],而且拥塞引起的路由控制消息丢失会触发更多的路由请求和路由回复,从而加剧网络拥塞。
1 AODV路由协议
网络路由协议是实现网络通信最关键和最核心的问题。目前比较成熟透明的按需距离矢量路由AODV(Ad Hoc on-Demand Distance Vector Routing)[3]基于传统的距离向量路由机制,具有简单易实现、防止循环发生、支持中间节点应答等优点,但也存在一定不足:每次由源节点发起路由请求均只得到一条路由、中间节点的应答路由可能过时等。在AODV协议的仿真实验中发现,随着网络负荷的增加,网络经常出现局部拥塞,吞吐率下降很快。网络中某些节点负荷很大,而节点的链路带宽和处理能力有限,当数据到达速率超过节点处理能力时,数据将阻塞在这些节点中等待传输。一旦这种状况持续一段时间,节点缓冲区会很快溢出,从而造成数据分组丢失。而源节点因在规定时间内没有收到确认而选择重传,这又将进一步加剧该路径节点的拥塞,导致这些节点成为影响网络效率的瓶颈[4]。
为了缓解拥塞对网络性能的影响,提出一种基于AODV路由协议,能够缓解链路拥塞的路由算法LC-AODV。在拥塞节点的上游节点处建立能绕过拥塞节点的旁路,在网络工作路由处于堵塞情况时启动备份路由分流,从而避免拥塞的发生。
2 LC-AODV路由协议
2.1 AODV路由协议的修改
在AODV路由协议中,路由查找过程只建立一条从源节点到目的节点的跳数最少、距离最短的路由。为了缓解拥塞,在一次寻找路由过程中建立多条节点不相关路由,并在路由寻找过程中加入链路拥塞度。
定义1:节点不相关路由,指所建多条路由中,任何两条路径除了源节点和目的节点外,其他节点都不共用。
定义2:链路拥塞度,描述本节点与下一跳邻居节点的拥塞状态,取值为下一跳节点的MAC层接口缓存队列中剩余空间占总队列的比率。
具体修改操作如下:
(1)在AODV路由协议的基础上,针对路由请求RREQ和路由应答RREP控制包分别增加一个条目——链路拥塞度。在源节点需要传输数据时,发送路由请求RREQ消息,当RREQ报文按照不同的路径到达目的节点时,目的节点不是简单地只处理第一个到达的RREQ,对此后到达的RREQ回复相同的RREP,并建立源节点到目的节点的备份路由。
(2)在路由维护阶段,周期性地传输Hello报文以确保链路的连接。但是在LC-AODV路由协议中,同样在Hello消息中增加链路拥塞度这一条目,检测该节点与邻居节点之间链路的拥塞度,并加以动态调整。
2.2 拥塞状态检测
在进行数据传输过程中,当传到一个节点的包个数超过它的处理能力时,节点就会变得拥塞,由于节点队列长度有限,故包会根据队列类型的方式开始丢弃,用R来表示定义2描述的链路拥塞程度[5]。根据R值的不同,设定三种拥塞状态。根据式(1)的划分,LCD为0时表示链路不拥塞,显示为绿色状态;LCD为1时表示链路出现拥塞,但是不是很严重,显示为黄色状态;LCD为2时,链路出现严重拥塞,显示为红色状态。
2.3 LC-AODV工作原理
搭建一个移动Ad Hoc网络,如图1所示,S为源节点,D为目的节点,其他为中间转发节点。当源节点有数据要向目的节点传输,而且S节点中没有到目的节点的路由时,需要建立路由。源节点广播路由请求RREQ,假设在路由建立过程中,找到了两条路由分别为路由1:S-3-4-5-D和路由2:S-1-2-D。路由1先返回路由应答,则路由2作为备份路由存在于网络中。当数据开始传输一段时间后,节点3到节点4之间发生路由拥塞,则节点3启动局部修复,发现可通过节点6到达目的节点,则产生路由S-3-6-5-D,因为通过节点6进行传输时,链路有轻微拥塞,则向上游节点通知备份路由,随时准备发送数据。如果修复不成功,则直接启动备份路由2进行数据传输。当所有路由都失效的情况下,源节点重新启动路由请求过程。
2.4 邻居拥塞表
每个节点维护一个邻居拥塞表,记录本节点所有邻居节点(除去上一跳节点)的拥塞状态。例如在表1中,对于节点S而言,LCDs1的值为0。
3 实验仿真及结果分析
实验采用NS2[6]模拟平台进行模拟,将LC-AODV算法与AODV在相同网络环境和高负载特性下进行仿真和性能对比分析,以便有效评价本算法的性能。网络拓扑结构设计为50个移动节点的网络模型,各节点随机分布在1 200 m×1 000 m的平面矩形区域,每一个节点的最大传输范围为250 m,随机任意方向运动(Random Way Point) ,节点停留时间为0 s,实验模拟时间500 s,运动最大速率为40 m/s,连接为20个CBR,大小为512 B数据流,数据流为3 packets/s,最大连接数为20。物理层选用TwoRayGround无线传播模型,MAC层采用802.11b DCF协议。仿真过程如图2所示。通过数据包的成功传输率和平均端到端传输延迟2个指标来比较。