谭 龙,张伟平,王 敏,李宏伟,杨 艳,吕成国,玄 萍
(1.黑龙江大学 计算机科学技术学院 ,哈尔滨 150080;2.哈尔滨体育学院 现代教育中心,哈尔滨 150096;3黑龙江省教育厅,哈尔滨 150001)
无线传感器网络(Wireless Sensor Network,WSN)是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者[1]。它综合了传感器技术、嵌入式技术、现代网络及无线通信技术、分布式信息处理技术等,能够通过各类集成化的微型传感器协作地实时监测、感知和采集各种环境或监测对象的信息,这些信息通过无线方式发送,并以自组多跳的网络方式传送到用户终端。其低成本、自组织、撒布灵活等特点及强大的数据获取能力使传感器网络在军事侦察、环境信息检测、空间探索、建筑与家居、工业生产控制、交通控制以及商业领域有着极其广阔的应用前景[2]。
MAC(Media Access Control)协议处于网络协议的底层部分,对网络的性能有较大的影响,是WSN的研究重点之一。MAC协议的研究对WSN的研究具有重要的理论及实际意义,而在当前的研究工作中对协议进行实际的实验成本过高、一些大型的模拟仿真工具需要对整个网络进行完整的配置且操作复杂,针对以上问题本文所实现的MAC协议实验模拟系统针对MAC层多个经典协议提供了一个完整的模拟分析平台,从而使研究人员可通过此平台比较和分析不同算法中的多个参数及其他网络信息,大幅度提高研究工作的效率。
目前针对不同的传感器网络应用,研究人员从不同方面提出了多个MAC协议,但对WSN中MAC协议还缺乏一个统一的分类方式。本文按其是采用固定分配信道方式还是随机访问信道方式,将传感器网络的MAC协议分为3类:
第一类是采用无线信道的随机竞争方式,节点在需要发送数据时随机使用无线信道,重点考虑减少节点间的干扰;该类协议采用按需使用信道的方式,它的基本思想是当节点需要发送数据时,通过竞争方式使用无线信道,如果发送的数据产生了碰撞,就按照某种策略重发数据,直到数据发送成功或放弃发送。无线局域网IEEE802.11MAC协议[3]的分布式协调工作模式采用带冲突避免的载波侦听多路访问(CSMA/CA)协议,它可以作为基于竞争 MAC协议的代表。在IEEE802.11MAC协议的基础上,研究者提出了多个用于WSN的基于竞争的MAC协议,其中具有代表性的有SMAC协议[4]、T-MAC协议[5]及Sift MAC协议[6]等。
第二类是采用无线信道的时分复用方式(Time Division Multiple Access,TDMA),给每个传感器节点分配固定的无线信道使用时段,从而避免节点之间的相互干扰。在传感器网络中采用TDMA机制,就是为每个节点分配独立的用于数据发送或接收的时槽,而节点在其他空闲时槽内转入睡眠状态。其典型代表为 DEANA 协议[7]、TRAMA 协议[8]及 DMAC 协议[9]等。
基于TDMA的MAC协议虽然具有很多优点,但网络扩展性较差,需要节点之间严格的时间同步,对于能量和计算机能力都有限的传感器节点而言其实现比较困难。人们考虑通过FDMA或者CDMA与TDMA相结合方法,为每对节点分配互不干扰的信道实现消停传输,从而避免了共享信道的碰撞问题,增强了协议的扩展性,其代表为采用EAR(Eavesdrop-And-Register)算法[10]的SMACS协议[11]。
本文采用WINDOWS系统下的Microsoft Visual Studio 2005+SQL SERVER 2000为开发平台,使用C#作为主要开发语言,配合使用标准化SQL查询语言实现。由于无线传感器网络采用分层思想实现,各层自底向上透明,本文不讨论与MAC相邻各层具体实现情况,即直接给定相应的MAC协议所需数据,不考虑路由协议及物理层协议的具体执行情况,且假设路由表信息已生成。
模拟环境系统主要由两大部分组成:①节点的客户端程序,主要完成节点的数据通信、能量消耗计算以及相邻节点的状态的收集和处理等功能;②MAC协议数据统计分析部分,完成不同算法的相同无线工作环境下通信过程的比较分析操作功能。主要采用C#语言实现,显示为WINDOWS桌面应用程序。两个程序通过读取后台数据库中的有关信息得知当前网络的状态、状况,并即时地改变自己的工作模式,从而实现模拟传感器网络的MAC层有关协议。
首先,本环境实现的节点主要有两种类型:①汇聚节点(Sink Node);②传感器节点(Sensor Node)。后者部署在传感器网络的监测区域,前者通过与其他网络的交互获得当前的任务,并实现向传感器节点发布监测任务及收集信息的功能,当Sink节点发布信息时,设其传输方向为路径A(采用广播发送),该路径信息保存在一个路由表Route中,从该表中可以查到任意节点的下一跳位置,还可通过相关函数判断是否到达了目的节点。
当数据沿某一路径进行传递时采用IEEE802.11的虚拟载波侦听冲突避免技术(CSMA/CA)的方式。如图1所示,C在A的无线通信范围内,D在B的无线通信范围内,但不在A的无线通信范围内。A要向B发送数据,A首先向B发送一个请求帧(Request-To-Send,RTS),B返回一个清除帧(Clear-To-Send,CTS)进行应答,在这两个发送帧中都有一个字段表示这次数据交换需要的时间长度,称为网络分配矢量(Network Allocation Vector,NAV),其他帧的 MAC头也会捎带这一信息。C和D在侦听到这个信息后,就不再发送任何数据,直到数据交换完成为止。NAV可看作一个计数器,以均速递减计数到零,当计数器为零时,虚拟载波指示信道为空闲;否则,指示信道为忙,从而实现无线通信IEEE802.11协议的环境模拟。
传感器节点程序实现的基本界面见图2,输入某一ID即可登入,登入后程序会自动判断其节点类型,并从数据库中读出节点名称、地理坐标、消息半径、当前状态及收到的任务等相关信息,此时节点状态被锁定,节点开始进行自组织的运行,不需其他外界程序进行控制。
图1 虚拟载波监听方式示意图(左)及拓扑图(右)Fig.1 Monitoring by virtual waves and its topology
图2 传感器节点程序运行示意图Fig.2 Program working of sensor nodes
当输入的节点ID为Sink型节点时,会出现两个与其他普通节点登入时间不同的按钮。Sink运行是指可以手动的进行一次信息的收集,此时Sink节点将向它的邻居节点发出收集信息的命令,其他节点会根据协议进行自己的下一步工作。根据运行时间的长短,节点能量会以时间为单位减少;除此之外探测、发送、接收信息及进入睡眠和唤醒等操作都会引起能量消耗,这些都可根据不同算法定制。
普通节点也通过同样的方式轮询数据库查询新任务,在对任务处理的过程中通过改变数据库中相应字段的值完成相应的功能,传感器网络是自组网,他会自动判断自己的下一步工作。每当一个普通节点接收到数据后它会判断此数据的最终目标是不是自身,是则根据任务通过路由表找到下一跳并将自己信息通过路由反馈给Sink节点;否则,继续传送直至数据到达其目标节点。最后当Sink节点收到了各节点的有关信息后会写入数据库并重新回到网络初始化后的空闲—休眠模式,即等待下一次的Sink启动。
本文所实现的模拟系统是以数据库中数据作为数据源进行的,这样有利于实验数据的分析,各节点在运行时以并行方式进行,统计分析程序除对网络中发生的数据及日志信息进行记录外,也可对整个网络从全局的角度进行复位控制。如图3所示,在网络全局信息浏览面板中可以整体地查看当前网络中各个节点的有关信息。在节点运行过程中,节点每发生一次状态的转换及进行一次数据的收发都会将其行为写入数据库中的日志文件中,在统计模块里就可以将这些信息以统计报表的形式展示,其中能量部分还通过柱型图的形式显示出来以方便用户进一步分析,同时系统还具有将节点及网络中有关数据以EXCEL表格的格式被导出以供进一步分析和研究的功能,所有的历史信息可在图4左中面板查看。
图3 模拟系统统计分析程序Fig.3 Statistical analysis program of virtual system
最后一个模块(图4右)为能量分析模块,通过对数据库中有关节点能量信息的查询,获得各个节点当前所存的能量数据,能量柱型图给用户提供当前网络中能量的一个直观展示,所有的能量数据会随着各节点能量的损耗而变化。
除以上所描述的各面板外本系统还有可查看、修改、更新网络中各节点信息的详细信息查看模块和进行报表统计打印的报表模块等。
图4 模拟系统统计的历史数据和分析Fig.4 Historical records and analysis in virtual system statistics
如图5所示,此图即为通过本系统收集的不同算法下相同3个节点Sin、A、B能量变化的统计分析图,横坐标表示网络运行时间,纵坐标为各节点能量值,可以看出,左侧Sink节点在时间2结束时发送一次数据;右侧节点在时间2及时间3结束时两次发送数据从而出现更多的能量消耗。通过此方式即可直观比较出不同算法下能量数据的变化情况。
图5 模拟系统数据分析结果比较Fig.5 Comparison of virtual system data result
本文在无线传感器网络MAC协议的研究基础上,基于现有传感器网络普遍的实验研究方法比较复杂,无线通信环境比较复杂的情况,通过设计和实现了一个WSN中MAC协议的模拟环境,仿真实现了经典的具有代表性的IEEE802.11MAC层协议,通过这样模拟环境系统的实现,达到了模拟各节点并行自组成网络进行工作的目的,并且提供了与实际网络工作时相近的网络信息的收集、通信等功能,该模拟环境还提供了相应的分析统计接口,为有关无线传感器网络MAC协议的研究提供了一种更简单方便的研究方式,为今后的研究工作提供了一种较便捷的工具,可提高相关研究的效率,为MAC协议的深入研究打下了坚实的基础。
[1]孙利民,李建中.无线传感器网络 [M].北京:清华大学出版社,2005.
[2]Akyikliz I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:A survey [J].Computer Networks,2002,38:393-422.
[3]IEEE Computer Society LAN MAN Standards Committee [S].IEEE Std 802.11-1999,Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)specifications.1999.
[4]Ye W,Heidemann J,Estrin D.An energy-efficient MAC protocol for wireless sensor networks [C]//INFOCOM 2002,New York,USA:2002:1567-1576.
[5]Dam T,Langendoen K.An adaptive energy-efficientMAC protocol for wireless sensor networks [A].1st ACM Conf.on Embedded Networked Sensor Systems,Los Angeles,USA:ACM press,2003:171-180.
[6]Jamieson K,Balakrishnan H,Tay Y C.Sift:A MAC protocol for event-driven wireless sensor networks [J].MIT-LCS-TR-894,2003.
[7]Bao L,Garcia-Luna-Aceves J J.A new approach to channel access scheduling for ad hoc networks [A].In:Proc 7th Annual Int′l Conf on Mobile Computing and Networking(MobiCOM 2001)[C].Rome,Italy,July 16-21,2001:201-221.
[8]Rajendran V,Obraczka K,Garcia-Luna-Aceves J J.Energy-efficient,collision-free medium access control for wireless sensor networks [A].In:Proc 1st Int’l Conf on Embedded Networked Sensor Systems(Sen-Sys′03) [C].November 2003,Los Angeles,CA .181-192.
[9]Lu G,Krishnamachari B,Raghavendra C.An adaptive energy-efficient and low-latency MAC for data gathering in wireless sensor networks [A].In:Proc 18th Int′l Parallel and Distributes Processing Symp(IPDPS′04)[C].April 26-30,2004,Santa Fe,New Mexico.224-230.
[10]K Chen,S.H Shah,K Nahrstedt.Cross-layer design for data accessibility in mobile Ad Hoc Networks[J].Wireless Personal Communications,2002,21:49-76.
[11]Shih E,Cho S,Ickes N,et al.A Physical layer driven protocol and algorithm design for energy-efficient wireless sensor networks [C]//Proceedings of the ACM MobiCom 2001.Rome:ACM Press,2001:272-286.