2 开发环境及开发工具的介绍
本文是在NS-2下通过对AODV协议和802.11协议的修改实现隐蔽信道,所以下面主要介绍NS-2平台的相关内容。
2.1 NS-2平台介绍
本文采用NS-2作为无线自组网下隐蔽信道技术的仿真平台。NS-2是美国DARPA支持的项目VINT开发的一个通用多协议网络模拟软件,它是一个源代码开房的离散事件模拟器,主要针对有线局域网、无线局域网、Ad hoc网络、卫星通信网、路由选择协议、组播路由协议等进行网络模拟仿真。
NS-2的主要优点有:1 源代码开放;2 基于离散事件驱动的仿真方式;3
仿真效率高,支持各种业务模型和多重通信协议。NS-2与NAM(network animaor)软件结合,能够动画显示仿真结果,适合用于实现具体的协议。采用了2种面向对象的语言:c++和Otcl,c++即高效的编译执行语言,用于实现构件的主要功能;Otcl是面向对象的TCL脚本程序设计语言,适合用来进行仿真的配置。Tclcl模块则把出现在2种语言里的变量、对象结合起来。NS-2仿真器的结构如图1所示:
图1 NS-2仿真器结构
NS2仿真一般分为以下几个步骤:
Step1编写所需构件:即新构件的添加或移植。
Step2测试:测试自己编写的构件能否通过。当NS库中的构件满足仿真需要(例如对Ns库已有的协议进行仿真),则仿真过程直接从第3步开始。
Step3编写Otcl脚本文件:配置仿真网络的拓扑结构,确定链路基本特性,移动节点所使用的路由协议,节点的数鼍等,并进行端设备的协议绑定,设置仿真使用的场景和传输负载(TCP流或CBR流),设置仿真的开始和结束时间等,并在脚本文件里设置trace对象,trace文件是记录仿真过程中所发生的所有事件的文件,也可以同时设置nam对象,nam是用于演示网络运行动画的工具。
Step4 用NS命令执行脚本文件:执行后会在与脚本文件同一目录下生成木.tr的文件,记录仿真结果。如果在脚本文件中设置了nam对象,则会在同一目录下生成木.nan的文件。
Step5分析trace文件:由于trace文件比较大,我们需要编写gawk程序进行仿真后期的数据处理(计算分组投递率、路由负载、吞吐量等),再用绘图工具将所得数据绘制成图以便直观分析。
2.2 NS-2平台架构及运行方式
平台架构如图2所示:
图2 平台结构
图中Node为节点入口,LL为链路层,Queue为队列,MAC为媒介访问控制层,Channel为物理层。本文主要是在传输层和MAC层进行试验仿真。
2.3 平台语言介绍
2.31 Tcl语言
Tcl(最早称为“工具命令语言”"Tool Command Language", 但是目前已经不是这个含义,不过我们仍然称呼它为TCL)是一种 脚本语言。 由John Ousterhout创建。 TCL很好学,功能很强大。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。TCL念作“踢叩” "tickle". Tcl的特性包括:
任何东西都是一条命令,包括语法结构(for, if等)。
任何事物都可以重新定义和重载。
所有的数据类型都可以看作字符串。
语法规则相当简单
提供事件驱动给socket和文件。基于时间或者用户定义的事件也可以。
动态的域定义。
很容易用C, C++或者Java扩展。
解释语言,代码能够动态的改变。
完全的Unicode支持。
平台无关。Win32, UNIX, Mac上都可以跑。 无线自组网络下隐蔽信道的研究与实现(3):http://www.youerw.com/tongxin/lunwen_9848.html