为评价无线传感器网络协议算法的性能,仅通过实验是无法实现的,特别是包含大量节点的大规模无线传感器网络,更是很难通过实验来实现(实际上,上百个节点的实验己经比较难以管理与实现)。
为了实现无线传感器网络的仿真,研究人员设计开发(或在现有平台建立无线传感器网络模型)了许多的仿真平台,包括NS-2, OPNET, SensorSim, EmStar, OMNet, G1oMoSim, TOSSIM, PowerTOSSIM等。
NS-2
NS-2 (Network Simulator-2)是著名的用于网络研究的离散事件仿真工具,里面包括了大量的用于在有线或无线、本地连接或通过卫星连接进行TCP协议、路由算法、多播协议仿真的网络协议、调度器和工具。NS-2主要致力于OSI模型的仿真,包括物理层的行为。NS-2可以对仿真进行详细的跟踪并用仿真工具“网络动画播放器”C Network Animator } NAM)进行回放。NS-2是开放源码的自由软件,可以免费下载[[1]。有一些研究小组对NS-2进行了扩展,使它能支持无线传感器网络的仿真,包括传感器模型、电池模型、小型的协议栈、混合仿真的支持和场景工具等。由于NS-2对数据包级进行非常详细的仿真,接近于运行时的数据包数量,使得其无法进行大规模网络的仿真。
OPNET
OPNET建模工具是商业化的通信网络仿真平台。OPNET采用网络、节点和过程三层模型实现对网络行为的仿真。其无线模型是采用基于流水线的体系结构来确定节点间的连接和传播,用户可指定频率、带宽、功率和包括天线增益模式和地形模型在内的其它特征。OPNET提供了很多的模型,包括TCP/IP, 802.1 I , 3G等。并已有一些研究人员在OPNET上实现对TinyOS的NesC程序的仿真. 但要实现无线传感器网络的仿真,还需要添加能量模型,而OPNET本身似乎更注重于网络QoS的性能评价。
SensorSim
SensorSim是建立在NS-2的一个采用DSR的802.11网络模型上的。SensorSim是用于WINS平台的,需要用SensorWare Tel脚本进行设计。SensorSim在仿真时跟踪了节点的能量使用情况,其能量模型来自WINS节点,使得其无法用于Mote平台的仿真。另外,SensorSim已经停止开发和支持,也无法下载到程序代码。
EmStar
EmStar提供了在仿真和基于iPAQ的运行Liunx的节点之间灵活切换的环境,用户可以选择在一个主机上运行多个虚拟节点进行仿真,也可以在一个主机上运行多个与真实的节点进行桥接的虚拟节点。EmSta:可以将无线传感器网络部署在一个友好的基于Linux的环境中,并进行跟踪和调试程序。EmTOS是用于在EmStar中进行TinyOS程序仿真的工具。 EmStar虽然不是一个真正意义上的无线传感器网络仿真工具,但却是一个很有用的用于对传感器网络的应用程序进行测试的环境。
OMNeT++
OMNeT++ ( Objective Modular Network Testbed in C++)是一个面向对象的模块化离散事件仿真工具。和NS-2一样,主要面向OSI模型,可以执行上千个节点的仿真。OMNeT++提供了图形化的网络编辑器和网络、数据流查看工具。仿真环境采用C++语言开发,并采用自定义的配置语言“NED”进行配置定义。OMNeT++的主要目标是提供可灵活配置仿真的组件体系。组件采用C++编程,并通过NED配置成更大的组件。OMNeT++在仿真802.11的MAC和Directed Diffusion协议时,比NS-2要决一个数量级.
GloMoSim
GloMoSim (Global Mobile Information Systems Simulation Library )是一个可扩展的用于无线和有线网络的仿真系统,根据OSI进行分层的建模设计。应用层、传输层、网络层、数据链路层、数据包接收模型、无线电模型和无线电波传播模型等不同的层次之间采用标准的APIs进行仿真。GIoMoSim采用Parsec进行设计开发,提供了对并行离散时间仿真的支持。G1oMoSim目前仅支持纯无线网络的协议仿真,可用于仿真传感器网络中的物理信道特征和数据链路协议的时延等特性。
TOSSIM
TOSSIM (TinyOS mote simulator)是用于对采用TinyOS的Motes进行bit级的仿真的工具。TOSSIM将TinyOS环境下的NesC代码直接编译为可在PC环境下运行的可执行文件,提供了不用将程序下载的真实的Mote节点上就可以对程序进行测试的一个平台。TOSSIM还提供了用于显示仿真情况的用户界面TinyViz. TOSSIM的缺点是没有提供能量模型,无法对能耗有效性进行评价。
PowerTOSSIM
PowerTOSSIM是对TOSSIM的扩展,采用实测的MICA2节点的能耗模型对节点的各种操作所消耗的能量进行跟踪,从而实现无线传感器网络的能耗性能评价。PowerTOSSIM的缺点是,所有节点的程序代码必须是相同的,而且无法实现网络级的抽象算法的仿真。
OMNeT++仿真WSN相关开放源码网站
Mobility Framework for OMNeT++
http://mobility-fw.sourceforge.net/hp/index.html
EYES WSN Simulation Framework
http://wwwes.cs.utwente.nl/ewsnsim/download/
NesCT: A language translator (使用NesC基于TinyOS平台开发, 然后使用omnet来模拟,提供界面支持)
http://www.omnetpp.org/pmwiki/index.php?n=Main.NesCT wiki
一般来说,仿真是一种科学实验方法。通常情况下,你有了一些想法,为了证明这种想法,就建立一个模型来仿真,对于得到的仿真结果进行分析,如果和你的想法结果一致,就等于是一种证明方法,如果和你的想法不一致,排除仿真实验错误的情况后,可能也可以帮助你修正你的想法。
总得说了,如果你对于仿真,从概念上比较生疏,建议你参考清华大学出版的modeling simulation and analysis英文影印教材。然后就是选择仿真工具。
OMNet++相对于其它工具,入门非常简单,并且也有相应的支持WSN仿真的开源项目,所以很适合。
协议的性能评价方法
在计算机网络的理论研究中,设计一个新型的网络协议,需要对该协议的性能进行合理的评价。可以进行这种评价的方法大致有以下三种:
数学分析的方法。这一种方法有数学理论基础的支持,因此可以得出精确而合理的结果。但是另一方面,进行数学分析前需要首先建立一个合理的数学模型来对网络状况进行合理的描述。而这种模型的建立,往往又是无法全面兼顾各种情况的。因此,对网络协议的数学分析之余,需要还有具体的实践来证实这样的分析的有效性。
网络模拟器。这是一种将一些网络环境量化后,通过计算机来进行模拟的方法。实践证明这种方法是行之有效的,因为它可以利用软件模拟硬件环境,节省了开销,也节省了网络协议性能评价的代价。GloMoSim[1][2][3]就是现在比较流行的模拟器之一,其他比较著名的网络性能模拟器还有:NS2(Network Simulator Version 2)、OPNET(事实上是NS2的商业版)、QualNet(GloMoSim的商业版)。
试验台(Test bed)。这种方式就是把需要的试验做到硬件上,利用现实的环境,进行确实的测验。这种方式一般在网络模拟器性能估价比较完备的基础上进行。当然,现在有很多设备都支持对该设备进行编程(比如可以将软件在Palm上运行),现在利用这种方式进行实验的代价也已经大大降低。
对于大多数网络理论的研究者来说,除了从数学分析上对所做的协议进行评估以外,使用网络模拟器是一种快速而有效的方法。
在现有的网络模拟器中,OPNET和QualNet是商业软件。NS2加上CMU模块,也可以支持ad hoc网络环境。GloMoSim对大型可扩展的无线网络支持的比NS2/CMU好。在ad hoc网络研究方面,很多的研究模拟都是基于GloMoSim的。
在使用网络模拟器的过程中,我们往往需要对模拟器进行添加和修改,以满足我们的试验要求。如果能对模拟器的结构和实现机制深入了解,实验的过程也会事半功倍。
References
http://www.idsia.ch/~andrea/simtools.html
仿真, 建模工具集合
官方网站
Applying image processing techniques to simulate a self organized sensor network for tracking objects
http://www.citeulike.org/user/rafamayo/article/1005959
Simulating Wireless Sensor Networks with OMNeT++
http://wwwes.cs.utwente.nl/ewsnsim/download/
EYES WSN Simulation Framework
http://ctieware.eng.monash.edu.au/twiki/bin/view/Simulation/OMNeTppComparison?rev=1.5
OMNeT++ vs. NS-2