APP下载

Z—MAC协议改进算法

2018-01-09卢玫欣苏胜君施伟斌

软件导刊 2017年12期
关键词:包率网络流量空闲

卢玫欣+苏胜君+施伟斌

摘要:为改善Z-MAC协议在不同网络流量下的表现,通过对Z-MAC协议的分析,在该协议原有退避算法基础上,提出了一种基于流量的自适应退避算法。相对于原有算法固定长度的退避窗口,该算法可以根据网络流量的变化动态调整退避窗口的大小,从而提高了协议的灵活性。通过NS2.26软件仿真分析,实验结果表明,该算法在吞吐量、丢包率、延迟等多个方面均优于原有算法。基于流量的自适应退避算法可有效改善Z-MAC协议的性能。

关键词:

无线传感器网络;Z-MAC;退避算法;NS2仿真

DOIDOI:10.11907/rjdk.172595

中图分类号:TP312

文献标识码:A 文章编号:1672-7800(2017)012-0078-03

Abstract:In order to improve the performance of Z-MAC protocol, this paper analyzes a hybrid MAC protocol called Z-MAC, and based on its backoff algorithm we present a new backoff algorithm according to the contention of the network. Compared with the constant backoff window in original algorithm, this algorithm can adjust its backoff window dynamically due to the network traffic. Then analyzed through the NS2.26, the results showed that it is better than using a constant backoff window of Z-MAC protocol in the network delay, energy consumption and throughput. The adjust algorithm can improve the performance of Z-MAC.

Key Words:wireless sensor network;Z-MAC;backoff algorithm;NS2 simulation

0 引言

WSN中,节点能量主要消耗在无线通信上[1]。在通信协议中,数据链路层中的介质访问控制协议(Medium Access Control Protocol,MAC Protocol)[2]决定着无线信道的使用方式,控制着节点工作状态,对节点和网络寿命起决定性作用。其中,Z-MAC协议是Injong Rhee等[3]根据无线传感器网络特点并结合CSMA和TDMA各自优点所提出的一种混合型MAC协议。本文在Z-MAC协议原基础上进行改进,使之能够动态适应网络流量的变化,从而在性能上有更好的表现。

1 Z-MAC协议及其退避算法

Z-MAC协议是一种混合型MAC协议,根据网络流量的大小,在低竞争状态(LCL)下Z-MAC类似CSMA,而在高竞争状态(HCL)下类似TDMA,同时使用了更简单的时钟同步对应节点的拓扑变化[4]。

Z-MAC协议的具体实现过程:首先所有节点进行一个邻居发现过程,即每秒广播一个Ping消息,持续30s;在得到了两跳邻居表后利用DRAND算法进行时隙分配(该算法确保了任何一个节点在和一跳邻居节点进行数据传输时不会被其两跳邻居所影响)[5];随后Z-MAC利用Time Frame rule(TF rule)对每个节点进行时隙分配,每个节点将被分配到一个时隙。其中节点分为owner和non-owner,处于被分配时隙的节点为owner,owner具有更高的发送权限。Z-MAC协议退避算法的具体实现:

步骤a:当一个节点准备传输数据时,首先判断是否为该时隙的owner。如果是,就进行步骤b,如果不是,则步骤c。

步骤b:节点先经过一个随机的backoff[0,T0](退避时间窗口),然后进行clear channel assessment(CCA)判断信道是否空闲,如果信道空闲,就开始传输数据;如果信道忙,则等待至信道空闲,回到步骤a。

步骤c:判断节点是否处于LCL状态或者处于HCL状态,但是该节点两跳的邻居都不是该时隙的owner。如果是,就进行步骤d;如果不是,则进行步骤e。

步骤d:等待T0时间,再经过一个随机的backoff[T0,Tn0]后,進行CCA判断。如果信道空闲,就开始传输数据;如果信道忙,则等待至信道空闲,回到步骤a。

步骤e:节点开始睡眠,直到满足以下任意一个条件后醒来:该节点两跳内的邻居都不是该时隙的owner;该节点自己成为owner。节点醒来后进行步骤a。

显然Mac802_11::takeZMACBackoff()的功能是执行Z-MAC协议的退避算法。对该函数进一步分析可以发现,在整个Z-MAC协议代码中,Mac802_11::CHECK_BACKOFF_TIME(),Mac802_11::navHandler(),Mac802_11::send_timer(),Mac802_11::tdmasend()四个函数均调用了该函数,也就是说在NAV结束后、检查节点发送状态时、时隙分配结束后都会进行该退避算法。在该函数内部,isOwner_是判断节点是否为owner的标志位,当isOwner_为1时该节点为owner;mhBackoff_.stop()调用了s.cancel(&intr)方法,目的是重置该定时器;mhBackoff_.start()用来启动新的backoff计时,其中第一个入参用来计算backoff持续时间,第二个入参表示当前信道状态,如果当前信道不空闲则暂停backoff timer;如果节点为non-owner,就计算newRand的值,然后执行mhBackoff_.start(),此时第一个入参的值为To_+ newRand。

其中T0=8 contention window slots(如果希望协议执行效率更高可以将该值设为2),T-n0=32 contention window slots。其中为了避免在同一时隙存在多个owner,T0的值应大于1,而Tn0的值则是参照IEEE 802.11协议中初始化竞争窗口的大小来设定的[7]。从以上描述可以看出,Z-MAC协议的T0与Tn0仅仅是作者通过以往经验和直觉设定的定值,并不会根据实际网络情况进行调整,不够灵活的退避机制一定程度上会影响网络性能,且仿真分析表明根据经验确定的固定退避参数确实影响了网络性能。针对这种情况,本文提出了一种基于网络流量动态调整退避时间的新型算法。

2 改进的退避算法

新型退避算法的基本思路是根据网络流量动态调整退避窗口的大小,如何获取网络流量的大小以及通过何种参数定量地描述网络流量大小是首先需要解决的问题。通过查阅文献并且结合Z-MAC协议的实际情况确定网络流量,比较合适的方法分别为:根据丢包率间接确定和利用CCA直接判断[8]。下面分析两种方法的优缺点。

利用CCA对网络流量进行判断可以不消耗额外的能量,即不需要发送额外数据包获得网络流量信息。在数据传输开始阶段会进行一次CCA判断,如果得到的值大于预先设定的阈值,就认为该节点处于HCL状态。但是通过进一步了解仿真软件发现NS2并没有提供实现CCA过程的函数,该过程的实现只能在硬件上完成,因此本文采取第二种方法,即通过丢包率判断网络流量。

网络流量增加的直接后果就是丢包率的上升,因此通过丢包率判断网络流量是可行,下面分析相关的Z-MAC协议代码。

分析以上代码,其中CurrentLoss_为节点当前丢包率,由于仿真软件本身的局限性,NS2并不能完全模拟真实WSN环境[9],从代码中可以看出丢包率是根据接收到的ACK消息数量进行计算得到,即便如此,变量CurrentLoss_也能大致反映节点的期望丢包情况。

显然当网络流量增大时丢包率也会随之上升,因此可以通过增加backoff时间改善这一状况,即当CurrentLoss_超过某一阈值时,增加T0和Tn0的值;而当丢包率衰减至正常水准时减少T0和Tn0的值。

通过多次仿真实验,最终确定了改进的退避算法各项参数,如表1所示。

3 算法仿真

仿真软件NS2能够模拟真实的WSN环境[10],本论文使用NS2.26平台以及NAM(Network Animator)网络运行工具,对Z-MAC协议退避算法以及改进的退避算法进行了一系列仿真实验。具体参数如表2所示。

本文采用两种不同的节点拓扑图对原有的退避算法以及改进的退避算法分别进行了仿真(见图1、图2)。其中中间单独的节点为网关节点,其余节点为待定的源节点。

本文安排了两次实验,对应两个不同的网络(分别为19节点和25节点),分析了原协议及改进方案中流量变化对网络的影响,并观察吞吐量以及信道利用率等指标。仿真结果如图3至图6所示。

从图3-图6可以看出,无论是在19节点的情况下还是在25节点的情况下,改进后的流量自适应退避算法在绝大部分情况下都表现出了优于原有退避算法的性能。

4 结语

从仿真结果可以看出,本文提出的基于Z-MAC协议的新型退避算法通过网络流量动态调整backoff时间,无论在吞吐量或是信道利用率方面均优于传统Z-MAC协议退避算法,网络性能有了一定的提高。

参考文献:

[1] 惠蕾放.无线网络中的资源管理问题研究[D].西安:西安电子科技大学,2012.

[2] 方飞.宽带无线局域网MAC协议研究[D].成都:电子科技大学,2014.

[3] INJONG RHEE, AJIT WARRIER, MAHESH AIA, et al. ZMAC:a Hybrid MAC for wireless sensor networks[C]. Dept. of Computer Science, North Carolina State University Raleigh, NC 27695.

[4] SHOIEB ARSHAD, AZZAT AL-SADI, ABDULAZIZ BARNAWI. Z-MAC: performance evaluation and enhancements[J]. Procedia Computer Science, 2013,21:485-490.

[5] INJONG RHEE, AJIT ARWRIER, LISONG XU. Randomized dining philosophers to TDMA scheduling in wireless sensor networks[C].Dept of Comp. Sci. and Eng. University of Nebraska Lincoln,2005.

[6] 徐雷鳴,庞博,赵耀.NS与网络模拟[M].北京:人民邮电出版社,2003.

[7] 黄惠芳,李宁,王发鹏,等.基于IEEE802.11n的长距离无线链路性能分析[J].计算机科学,2017, 44:110-113.

[8] 王春侠.TDMA系统中的时隙分配策略研究[D].西安:西安电子科技大学,2014.

[9] 姜誉,任健,周黎明. NS2中TCP连接建立模拟的改进[J].通信学报,2012,33:15-19.

[10] 李雅蓉.无线局域网新型MAC层接入机制仿真研究[D].成都:西南交通大学,2017.

(责任编辑:何 丽)

猜你喜欢

包率网络流量空闲
恩赐
基于多元高斯分布的网络流量异常识别方法
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
基于神经网络的P2P流量识别方法
“鸟”字谜
一种新的VANET网络链路丢包率估计算法
AVB网络流量整形帧模型端到端延迟计算
TCN 协议分析装置丢包率研究
网络流量监控对网络安全治理的重要性