基于NS2的无线传感器网络仿真平台设计 2011-05-29 20:29:53来源:互联网

0 引言
无线传感器网络是当前国际上备受关注的、涉及多学科高度交叉、知识高度集成的前沿热点研究领域。未来的无线传感器网络将向海、陆、空、天立体化网络系统的方向发展,最终将成为人类生产和生活不可分割的一部分。无线传感器网络无论是在国防,还是在国民经济的各个领域均有着广阔的应用前景。对该技术的深入研究与推广应用将推动我国信息化建设的进程,并极大地带动相关产业和学科的发展。
在开展的无线传感器网络的研究中,我们都力求围绕网络的各种关键性能对无线传感器网络的各种技术进行改进。然而受有限的资金和网络条件的限制,在实验室构建大规模的实验平台比较昂贵。因此,充分利用现有资源,构建虚拟的仿真环境是非常有意义的。
本文在无线传感器网络特点和协议栈的研究基础上,利用网络仿真软件NS2进行了研究和二次开发,构建了一个基于各种无线传感器网络关键性能的仿真界面。使得用户可以通过仿真界面来自主配置网络元素,搭建网络,运行并直观地显示各种关键性能,以对其研究起到一定的指导作用。

1 无线传感器网络体系结构及NS2仿真机制
1.1 无线传感器网络体系结构
网络体系结构是网络的协议分层以及网络协议的集合,是对网络及其部件所应完成功能的定义和描述。对于无线传感器网络来说,图l是传感器节点使用的最典型的网络协议体系结构,包括物理层、数据链路层、网络层和应用层,与互联网协议栈的五层协议相对应。此外,还包括网络管理模块。这些管理平台使得传感器节点能够按照能源高效的方式协同工作,在节点移动的传感器网络中转发数据,并支持多任务和资源共享。该模型既参考了现有通用网络的TCP/IP和0sI模型的架构,同时又包含了传感器网络特有的电源管理、移动管理及任务管理。应用层为不同的应用提供了一个相对统一的高层接口;如果需要,传输层可为传感器网络保持数据流或保证与Internet连接;网络层主要关心数据的路由;数据链路层协调无线媒质的访问,尽量减少相邻节点广播时的冲突;物理层为系统提供一个简单、稳定的调制、传输和接收系统。除此而外,电源、移动和任务管理负责传感节点能量、移动和任务分配的监测,帮助传感节点协调感测任务,尽量减少整个系统的功耗。

点击看大图

1.2 NS2的仿真机制
NS是美国加州Lawrence Berkeley国家实验室于1989年开始开发的软件。NS是一种可扩展、以配置和可编程的事件驱动的仿真工具,可以提供有线网络、无线网络中链路层及其上层,精确到数据包的一系列行为的仿真。最值得一提的是,NS中的许多协议代码都和真实网络中的应用代码十分接近,其真实性和可靠性高居世界仿真软件的前列。
NS底层的仿真引擎主要由C++编写,同时利用0TCL语言作为仿真命令和配置的接口语言,网络仿真的过程由一段OTCL的脚本来描述,这段脚本通过调用引擎中各类属性、方法,定义网络的拓扑,配置源节点、目的节点,建立连接,产生所有事件的时间表,运行并跟踪仿真结果,还可以对结果进行相应的统计处理或制图。
通常情况下,NS仿真器的工作从创建仿真器类(simulator)的实例开始,仿真器调用各种方法生成节点,进而构造拓扑图,对仿真的各个对象进行配置,定义事件,然后根据定义的事件,模拟整个网络活动的过程。
仿真器封装了多个功能模块:
(1)事件调度器:由于NS是基于事件驱动的,调度器也成为NS的调度中心,可以跟踪仿真时间,调度当前事件链中的仿真时间并交由产生该事件的对象处理。
(2)节点:是一个复合组件,在NS中可以表示端节点和路由器,节点为每个连接到他的节点分配不同的端口,用于模拟实际网络中的端口。
(3)链路:有多个组件复合而成,用来连接网络节点。
(4)代理:代理类包含源及目的节点地址,数据包类型、大小、优先级等状态变量,每个代理链接到一个网络节点上,通常连接到端节点,由该节点给他分配端口号。
(5)包:由头部和数据两部分组成。
NS采取对真实网络元素进行抽象,保留其基本特征,并运用等效描述的方法来建立网络仿真模型。他们由大量的仿真组件所构成,用于实现对真实网络的抽象和模拟。

2 仿真平台设计
2.1 系统整体结构
NS2的主代码主要采用Tcl和C++两种语言进行编写。C++的程序运行时间很短,转换时间很长,适合具体协议的实现,而Tcl运行较慢但转换很快,正好用来仿真的配置。Tcl提供了一个强有力的平台,可以生成面向多种平台的应用程序、协议、驱动程序等等。他与Tk(too1kit)协作,可生产GUI应用程序。Tk是基于Tcl的图形程序开发工具箱,是Tcl的重要扩展部分。利用Tcl/Tk进行界面编程速度快,