基于NS2的无线传感器网络仿真平台设计

相关专题: 无线

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进行界面编程速度快,且界面编程工作可以从应用程序的其余部分分离开来,开发人员可以先集中精力实现程序的核心部分,然后逐步建立用户界面。

本文主要就是采用Tk工具包来作出友好的无线传感器网络用户操作界面,将所要运行的ns代码嵌入其中,通过Nam动画演示来展现网络运行的过程,用Xgraph静态图表来分析网络的各种关键性能。通过Tcl脚本来描述在用户界面上所定义的网络拓扑、场景参数以及网络协议等网络场景信息。

系统体系结构如图2所示。系统主要有网络场景模块和性能分析模块组成,网络场景模块主要包括环境参数设定、拓扑生成以及网络协议添加的实现。当设定好基站以及普通节点拓扑范围后,随机生成一个网络节点拓扑文件,结合其余的环境参数和网络协议,便可完成网络环境的初始化。

在NS2仿真器中,模拟的配置被作为一种程序设计而不是一种静态的配置。一次模拟的场景为模拟的运行定义了一个输入配置,NS采用Tcl脚本来描述用户提交的网络模拟场景。

当提交网络模拟场景后,根据参数便会生成Tcl模拟脚本并调用NS仿真器进行模拟运行网络,模拟结束后性能分析模块即被激活,性能分析模块主要包括Nam动画演示和Xgraph静态性能分析的实现。其中静态分析实现了网络能量、延时、丢包以及吞吐量等关键性能的仿真。

2.2 系统具体实现

系统具体的用户操作界面如图3所示:

在网络场景模块中,场景参数的设定仅由用户界面输入便可完成,提交参数时可自动添加至后台运行的Tcl脚本中并调用NS仿真器进行运行,然而如若添加自定义网络协议,则需进行相应的NS二次开发,先开发出想添加的网络协议,并添加至后台运行的Tcl脚本中,然后才能添至用户界面中。

在性能分析模块中,网络动画演示主要是通过调用Nam可视化工具来实现,网络主要关键性能的静态显示则是通过gawk语言对网络运行的跟踪文件进行读取、处理,最后通过Xgraph图表化得到的。

3 仿真性能分析

我们以经典层次路由协议leach协议的运行为例,来观察系统用户操作界面的使用。

在用户界面中输入需要的环境参数,在MAC协议下拉选项中选取Mac/Sensor,在routing协议中选取leach,然后确认输入点击控件0K?进行提交网络模拟场景设置。然后点击控件Run调用Ns仿真器进行运行模拟网络(其中Clear控件用来清楚输入,Reset控件用来恢复默认设置)。待模拟完成后,性能分析模块被激活,如图4所示。

 

   来源:电子科技
微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5GNTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《R1623501-g605G的系统架构1
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 本周热点本月热点

     

      最热通信招聘

      最新招聘信息

    最新技术文章

    最新论坛贴子