基于NS-MAC协议的节能传感器网络仿真设计
2021-07-03吕宗明
吕宗明
(宣城职业技术学院 信息与财经学院,安徽 宣城 242000)
媒介访问控制(MAC)协议是无线传感网络实现高效通信的重要基础,它能够使网络信息完成多节点单信道传输,从而降低多信息在同一节点发生碰撞的风险[1]。然而,传统的MAC层协议设计,例如IEEE 802.11协议,由于其节点传输周期较长,不能随意切换收发状态与空闲状态,导致无线网络信息传输耗能较大,无法满足WSN设计的实际需求[2]。针对不同传感器网络应用与降低能耗的目标,科研工作者根据不同需求提出了多种MAC协议,如T-MAC、S-MAC、TRAMA和SMACS/EAR协议等[3]。其中,S-MAC协议在WSN信息传输过程中设置了空闲监听状态以降低能量损耗,同时引入了竞争接入的信息收发特性,降低了冗余信息占比[4]。但是,S-MAC协议也存在着不能根据通信流量负载情况实时调整收发时间占比的缺陷[5]。因此,本研究在原有S-MAC协议的基础上添加低功耗的通信流量调整功能,提出了一款节能的新型传感器媒介访问控制(new sensor-medium access control,NS-MAC )协议方案,并通过NS-2仿真平台对优化后的协议进行仿真实验,以期为无线传感器网络的节能设计提供参考。
1 NS-MAC协议与实现
1.1 NS-MAC协议的改进
1.1.1退避算法的改进机制
S-MAC协议一般采用二进制指数退避算法(BEB),通过退避时间判断数据包的收发。退避时间计算如下:
退避时间=Random()*aSlottime,
式中:aSlottime为物理层的时隙;Random()是均匀分布于[O,CW]的随机整数。因BEB算法的退避窗CW依赖于数据包的碰撞次数,故对BEB算法进行优化,在维持信息接入公平性的同时保证信息的吞吐量,即乘性增加线性递减退避算法(MILD)[6]。运算过程如下:
发送失败的CW=min(a*CW,CWmax);发送成功的CW=max(CW-b,CWmin)。
1.1.2NS-MAC协议活动时间改进
NS-MAC协议融合了S-MAC协议与T-MAC协议的活动时间调整机制,具体优化机制如图1所示。NS-MAC协议的睡眠/空闲监听区间与S-MAC协议一致,但活动时间区间则通过优化缓存区的分组数量对网络流量进行预测,从而减少协议的活动状态时间。其中,给定时间TA是一个动态的时间,节点被周期性唤醒进行监听,如果在给定时间TA中没有发生激活事件,则指令结束。
图1 S-MAC与NS-MAC协议活动时间对比Fig.1 Comparison of S-MAC and NS-MAC protocol activity time
1.2 NS-MAC协议的实现过程
NS-MAC协议的入口采用recv(Packet*p,Handler*h)函数来进行数据传递,输出包括两个方向:发送和接收。
1.2.1NS-MAC协议的发送过程
NS-MAC协议发送过程如下:首先,节点监听信道状态,假如监听时段为忙,则节点进入退避阶段;退避结束后,若信道为空闲状态,则说明节点竞争信道成功,开始准备发送数据。然后,节点判断目的地址,如果是广播,就直接把分组传播出去,不需要RTS/CTS;若是单播,节点就开始计算发送这些数据包的时间,等到填充完RTS帧的其他项后发出RTS,再定时进入WAIT_CTS状态。如果在规定时间内收到了送来的CTS,那么就发送DATA,同时进入WAIT_ACK状态。在接收到正确的ACK应答后,如果节点没有数据,就结束发送过程并返回进入休眠状态。具体发送流程如图2所示。
图2 NS-MAC协议发送流程Fig.2 Flow chart of NS-MAC protocol sending process
1.2.2NS-MAC协议的接收过程
在接收过程中,如果节点处于睡眠状态、数据发生冲突或射频处于发送状态,就不会完成分组的接收,同时会自动删除分组以释放缓存。如果节点处于活动状态,则需要先确定分组类型,再进行后续处理。接收流程如图3所示。
图3 NS-MAC协议接收流程Fig.3 Flow chart of receiving process of NS-MAC protocol
2 仿真与分析
2.1 仿真实验网络拓扑结构设置
利用NS-2平台对IEEE 802.11、S-MAC及NS-MAC协议进行仿真实验,分别进行能量耗损计算和延时性能测试。其中,能量耗损=初始能量-剩余能量,延时性能测试包括测试睡眠延时、MAC层重传延时、介质访问延时、传输延时等。仿真实验采用11个节点组成的10连跳线性网络拓扑结构,每次传输的节点都是固定的,传输最多跳跃10次,不会超出节点的范围,每个节点只能与周围节点连接,这样就可以使其一次一跳传送,同时在实验中进行能量耗损计算和延时性能测试。
2.2 能量耗损测试
实验中,能量耗损仿真测试参数设置如下:节点数为11,节点间距为200 m,节点间通信距离为250 m,数据分为50组,仿真时长为1 000 s。计算仿真时长内网络消耗的总能量即实验开始时与结束时的能量差,结果如图4所示。
图4 3种协议的能量消耗对比Fig.4 Comparison of energy consumption of the three protocols
通过对比可以清晰地发现IEEE 802.11的MAC协议完全不适合传感器网络的节能设计要求,S-MAC相比IEEE 802.11的MAC协议有更好的表现,节能效果突出。本研究提出的NS-MAC协议取得了更好的成绩,由此可见本研究提出的协议更加符合无线传感器网络的节能设计要求。
2.3 网络延时性能测试
S-MAC协议与NS-MAC协议都引入了周期性睡眠机制以达到节省能量的目的。通过延时性能测试,可以验证两者的延时与睡眠状态耗能周期情况。延时的测试方式与途径较多,本研究提出的网络延时性能指的是仿真分组的平均延时,选取数据的规则为从源节点至最后一个汇聚节点共分成50组,使用总时间除以分组数得平均延时。分别采用IEEE 802.11的MAC协议、S-MAC协议及NS-MAC协议进行测试,结果如图5所示。其中,1~9组为网络大流量组,10~15组为网络小流量组。
图5 3种协议的延时性能对比Fig.5 Delay comparison diagram of the three protocols
从图5中可以看出,3种协议在网络流量很小时延时差距很小,只有网络流量加大到一定程度后三者才会有较大差距。其中,IEEE 802.11的MAC协议平均延时随着分组间隔的增加趋于线性增加,平均延时最低。这主要是因为IEEE 802.11的MAC协议不存在空闲监听状态,节点接收到信息后立即传输到下一个节点,但是要花费较多的能量。而S-MAC协议和NS-MAC协议在1~9组的分组间隔出现较为明显的延时,主要是因为空闲监听状态有降能作用,节点在不接收信息时会处于低能耗状态。同时,NS-MAC协议的通信流量调整功能能够在大流量阶段延长协议的活动时间至原来的1.5倍,从而减少后续分组的等待时长,所以NS-MAC协议的平均延时比S-MAC协议的平均延时要少。综上所述,三者相比,IEEE 802.11的MAC协议虽然延时少但只适用于网络流量较大的时候,而且能耗太高,S-MAC协议在网络流量较大时延时过长,而基于S-MAC协议的改进后的NS-MAC协议却在节能与延时上都有不错的表现。
3 结语
能量的高效利用一直是人们追求的目标,节能无线传感器网络MAC协议也吸引了越来越多的学者。本研究着重于MAC协议的性能分析及改进,对目前有一定节能作用的S-MAC协议进行了详细分析,主要分析了其二进制退避算法及周期性监听/睡眠固定占空比,并在此基础上提出了新的退避算法及周期占空比算法,新算法比S-MAC协议更加节能高效。