一种改进跨层拥塞控制的无线传感网络蚁群路由算法

2019-07-09 06:09胡国伟
浙江工商职业技术学院学报 2019年2期
关键词:队列数据包路由

胡国伟

(宁波职业技术学院,浙江 宁波 315800)

1 问题提出

蚁群算法因其具有的自组织、分布式和自动寻优特性,尤其适合应用于同样具有动态、自组织特点的无线传感网络 (Wireless Sensor Networks,简称WSNs),近年来引起中外研究人员的广泛兴趣。文献[1]提出了一种典型的基于蚁群算法的能量高效路由协议IEEABR,IEEABR 通过使用固定大小的蚂蚁代理以及把能量和跳数这两个度量引入到信息素更新机制中,来建立能量有效的路径,达到减少在路由发现时的通信开销来延长网络的寿命的目标。文献[2]针对IEEABR 蚁群路由算法能量分布不够均匀问题,提出了改进的网络均衡算法EEIABR。但是IEEABR 和EEIABR 路由算法都未考虑网络拥塞的问题,而网络拥塞容易引起丢包,降低网络性能。本文针对上述路由算法的不足,提出了一种改进跨层拥塞控制的WSNs 蚁群路由算法CCIEEABR。主要做出如下改进:(1)利用跨层联合优化机制,允许层间交互,多层共享数据及本地信息,从整体上提高网络性能;(2)针对单一缓存占用率或队列长度无法精确度量网络拥塞的不足,引人指数加权移动平均法计算节点平均队列长度;(3)当检测到节点发生拥塞时,提出一种带惩罚机制的信息素更新机制,调整节点转发数据包的概率,有效缓解网络拥塞。

2 改进的网络跨层拥塞控制算法

蚁群路由算法采用启发式策略来选择最优下一跳节点,大量报文会被转发至那些信息素值较高的节点,当报文接收速率远大于报文离开速率时,这些节点的剩余缓存空间不断减小,直至溢出,这就形成了节点的拥塞。本文提出的改进拥塞控制机制由两部分组成:拥塞检测和拥塞解除。拥塞检测是拥塞解除的前提。拥塞控制算法的具体实施如下。

2.1 CCIEEABR 跨层优化机制

跨层优化机制是以Media Access Control,即802.11MAC 为媒介,网络层可以实施获取数据链路层(logic link layer,简称LL)的缓冲队列信息。首先通过添加和修改MAC 层的函数,达到在MAC 层中可以调用LL 层中队列长度值;其次,在保留MAC层和路由层结构分离的基础上,允许路由层访问MAC 层从LL 层中获得的缓存队列长度信息,通过MAC 层和路由层的信息交互、协同优化网络性能[3]。该机制具有简单高效、队列信息实时性高等优点。

2.2 拥塞检测机制

当网络出现拥塞后,传感器节点采取合理方法及时检测到网络的队列缓存状况,准确判断是否出现网络拥塞是实现拥塞解除的前提。本研究基于对传感器节点缓冲队列长度的判断来检测,不占用额外的网络资源,简单快键。为了准确度量节点当前缓存队列长度信息,引人指数加权移动平均(EWMA)算法来更新节点的平均队列长度。

式中:avgnew为节点缓冲区更新后的平均队列长度;为节点自己保存的平均队列长度;q_w 为节点缓存占用率,0≤q_w≤1,表示某一时刻节点数据缓存已被使用的比例;cur_que 为当前节点的队列长度的采样值,即

其中,q_w 值越小说明节点的缓存被占用的就越少。Q0表示节点允许的最大缓存队列长度,网络中每个节点的最大缓存一致。由式(2)可知,q_w 与cur_que的值成正比。如果当前节点的缓存占用率很高,即q_w 值很大,在更新avgnew的过程中的比重较小,即avgnew的值更多的依赖于当前队列长度cur_que。反之,q_w 很小,avgnew更多的取决于因此avgnew能够直观的反映当前节点的拥塞状况。

2.3 防拥塞控制机制

在算法的搜索过程中,若所有蚂蚁都采用最优路径的进行路径搜索,网络中的部分节点就会由于蚂蚁数量过多而导致节点拥塞现象的出现,使得大量的数据只通过少量的节点进行传输,这必然会导致网络出现拥塞。为了解决上述问题,本文预先设置一个节点缓冲队列长度阀值Thr,当avgnew>Thr时,则认定为节点拥塞现象的发生,需要对当前节点引人惩罚机制。即对文献[1]中的信息素挥发式(3)进行修正:

其中μ 为惩罚因子。这样处理的好处是可以提前预测拥塞节点,加强算法对最优路径以外路径进行搜索,便于缓解最优路径的负载压力,实现流量的分散,减缓拥塞状态。

3 仿真实验及结果分析

3.1 仿真环境及参数设置

本文采用NS2.35 环境构建无线传感器网络的模拟环境,在1100 m×1100 m 的区域内随机部署80个传感器节点(包含1 个Sink 节点),其通信范围为250 m。源节点由25 个发送CBR 流节点组成,每个包的大小为512bytes,数据包的发包速率为5byte/s。仿真时间设置为100 s。设置初始条件α=1,β=1,C=20J,ρ=0.1,Q0=50,Thr={38,40,42}。从网络的丢包率、端到端平均时延以及吞吐量方面,将提出的CIEEABR 路由算法与IEEABR 路由算法进行性能比较和分析。

3.2 仿真结果

3.2.1 分组丢包率

分组丢包率是是网络丢弃的数据包数目与源节点发送的数据包数据之比,反映了网络的可靠性,分组丢包率越低,网络可靠性越高。本研究分别选取3组不同的队列拥塞检测阀值系数的CIEEABR 路由算法与IEEABR 路由算法进行比较。由图1可知,不同阀值系数下,本研究算法所测得的丢包率始终低于IEEABR 算法,由于IEEABR 路由算法缺乏拥塞机制,会由于最优路径节点数据传输过于集中而出现拥塞现象,从而出现了大量的丢包。而本文提出的防拥塞惩罚机制能够缓解最优路径上节点的负载压力,将一部分数据转发压力依概率转移到次优路径节点,减少了丢包现象。

图1 网络丢包率

图2 平均端到端时

3.2.2 平均端到端时延

平均端到端时延是指数据包从源节点成功到达目的节点对应的投递时延之和与数据包数量的比值。由图2可知,随着网络仿真时间的增加,CIEEABR 算法在3 组不同阀值系数下测得的平均端到端时延均小于IEEABR,平均端到端时延分别下降了18%,21%,20%。分析其主要原因有以下两点:(1) CIEEABR 路由算法在蚂蚁搜素最优路径中考虑了节点的缓存占用率,最大化地降低了数据包的排队时延;(2)通过网络拥塞惩罚机制,能够有效缓解最优路径节点的网络拥塞,从而减少了网络拥塞缓解的时间。

3.2.3 网络吞吐量

网络吞吐量是单位时间内sink 节点接收到的数据包数量。由图3可知,本文提出的算法在不同阀值系数下,相比于IEEABR 算法能够获得较好的网络吞吐量,这是因为拥塞控制的路由能够获得较高的数据成功传输概率。从而使得CIEEABR 算法节点成功接收的数据包数量显著增加。

图3 网络吞吐量

4 结束语

本文基于能量高效蚁群路由算法(IEEABR),提出了一种改进跨层拥塞控制蚁群路由算法。实现了网络的拥塞检测和拥塞缓解。仿真结果表明,该算法在数据包传输时延和网络丢包率性能上,比现有的路由算法具有明显的优越性。

猜你喜欢
队列数据包路由
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
队列里的小秘密
基于多队列切换的SDN拥塞控制*
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
路由重分发时需要考虑的问题
在队列里
C#串口高效可靠的接收方案设计