桂林理工大学本科毕业设计·论文
3.3 NS2安装
安装NS2准备工作:
在主机硬盘上格出一个容量为22G的本地磁盘I。 下载并安装Ubuntu 。 安装NS2
①首先下载NS2安装包ns-allinoen-2.35.tar.gz,然后将其放在home/ll/ns/ns- allinoen-2.35下(ll是我的文件名,ns是自建的一个文件夹)。通过ctrl+ alt+打开终端,输入
cd ll<回车>
tar zxvf ns-allinoen-2.35.tar.gz<回车>
②为了能更好的安装NS2,首先需要更新Ubuntu 系统文件,在终端输入下面命令完成:
sudo apt-get update sudo apt-get upgrade sudo apt-get dist- upgrade
首先采用sudo时,需要用户密码,也就是安装Ubuntu时设置的系统密码。同时还需进行一下package的安装,输入以下命令:
sudo apt-get install build-essential
sudo apt-get install TCL18.5 TCL18.5-dev tk8.1.5 tk8.1.5-dev sudo apt-get install libxum-dev libxum-headers ③准备工作做好之后,开始安装NS2 $cd ns-allinoen-2.35 $./install ④配置环境变量 $sudo gedit. bashrc $sudo gedit. bashrc
在弹出来的窗口的文件末尾加入:(注意:下列代码中ll/ns/是我的ns-allinone-2.35文件路径)
exportPATH=$PATH:home/ll/ns/ns-allinone-2.35/bin:/home/wangtiantian/mysoft/ns-allinone-2.35/TCL8.4.18/unix:/home/wangtiantian/mysoft/ns-allinone-2.35/tk8.4.18/unix exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:home/ll/ns/ns-allinone-2.35/oTCL-1.
11
桂林理工大学本科毕业设计·论文
13: home/ll/ns/ns-allinone-2.35/lib
export TCL_LIBRARY=$TCL_LIBRARY: home/ll/ns/ns-allinone-2.35/TCL8.4.18/library 保存退出。
⑤验证测试
重新打开一个终端,输入ns并回车 $ns(如果正常的话,会出现―%‖操作提示符)
3.4 NS2仿真
实现NS2仿真主要通过以下三个方面:
①编写仿真代码TCL/OTCL。编写仿真代码TCL/OTCL是仿真中必不可少的一个步骤。大部分的NS2仿真工作实际就是编写TCL代码来定义网络结果、网络构件属性、控制调度网络仿真事件的启动停止过程。
②修改源代码。主要在仿真需修改代码时进行。由于NS2采用C++和OTCL两种语言编写,因此修改源代码时,一定要谨记修改相应的OTCL代码。
③仿真结果分析。结果分析是体现仿真成果的证明。要求熟悉trace文件的结构,并能够使用GAWK来分析该结果文件,及根据分析结果使用Gnuplot绘制相应的数据图表。使用NS2进行无线网络仿真的基本流程图如图3-1所示。
图3-1 NS2仿真基本流程图
12
桂林理工大学本科毕业设计·论文
3.5 GAWK的介绍
GAWK由GUN所开发的AWK不断改进和更新而来,包含了AWK的所有功能,是一种对文档资料具有很强处理能力的程序语言。
利用NS2进行仿真时,运行TCL脚本之后会产生一个trace文件,trace文件记录了整个仿真过程的所有信息。要对无线网络进行研究,提取或者计算出需要的数据,可以通过编写AWK程序读取trace文件获得。
AWK程序可以直接在终端中输入,但是比较长的AWK程序直接终端输入比较麻烦,可以把AWK程序编写成一个文档,直接调用。使用AWK读取trace文件的语句是在终端(shell)$下输入:GAWK –f delay.awk out.tr。(delay是AWK文档名,out.tr为trace文件名。)如果需要把AWK读取出的数据保存到一个文档,可以在终端(shell)$下输入:GAWK –f delay.awk out.tr >d(d为保存数据的文档名)。
3.6 Gnuplot介绍
Gnuplot是由Colin Kelly和Thomas于1986开始开发的,是一种免费的,命令驱动的交互式函数与数据测绘程序。其功能是把数据资料和科学函数装换成直观的二维和三维图形,易于进行数据分析,因此适合于科学研究过程中的数据曲线绘制和理论模型对比的曲线化、图形化工作。虽然Gnuplot不如Matlab强大,但却非常小巧实用,而且绘制出来图形质量也好。Gnuplot并不是NS2软件自带的工具,所以必须需要另外安装。Gnuplot可以在Windows、Dos、Os2、Linux 系统中运行。
在Linux系统下只要简单的输入Gnuplot就可以启动Gnuplot绘图环境,输入exit或者是quit退出。进入Gnuplot绘图环境以后有两种工作方式:一种是交互式,一直是批处理方式。交互式就是直接在绘图环境下编写绘图命令,批处理就是将绘图命令代码写入到一个文件中,使用load命令载人文件。
3.7 本章小结
本章首先介绍了NS2仿真平台的特点及其工作环境,对NS2和OPNET进行比较,介绍在Ubuntu环境下NS2的安装及环境配置的方法,及使用NS2实现仿真的基本流程。并对GAWK程序和绘图工具Gnuplot进行了认识。
13
桂林理工大学本科毕业设计·论文
4 基于NS2的AODV协议仿真
4.1 仿真环境场景的配置
本次设计的仿真场景从设置相同仿真场景区域不同节点数和设置相同节点数不同仿真区域两个方面着手。
场景采用NS2自带的场景生成器随机生成。运动场景生成器位于NS/ns-allinone-2.35/ns-2.35/indep-utils/cmu- scen-gen/setdest。
生成随机运动场景文件的命令是:
Setdest [-n num_ of_ nodes] [-p pausetime] [-s maxspeed] [-t simtime] [-x maxi] [-y maxy] > [movement-file];
如本次仿真场景需要生成一个节点数是9、平均停留时间为0秒(不停留)、节点移动速度为0.00001米/秒,仿真时间为12秒、仿真范围为50*50一个场景,使用如下命令:
Sedest –n 9 –p 0 –s 0.00001 –t 9 –x 50 –y 50 >cj.scn
本设计中设置相同仿真区域不同节点数的仿真场景设置的参数如4-1表:
表4-1 仿真场景参数表一
参数类型 仿真时间 节点数 路由协议 广播范围 节点停留时间 参数值 12S 9、12、15??33、36 AODV 15M 0 参数类型 仿真区域 最小传输速率 最大传输速率 通信代理 节点移动速度 参数值 50*50(m) 1.2Ms 1.4Ms TCP 0.00001m/s 本次设计的仿真区域中节点的分布均为随机生成,设置了区域大小恒定,节点数变化的10个不同场景,每个场景均有10个随机的节点分布方式。
按照以上思路和方法,本方案设置了一共10*10个不同的场景进行仿真。所以,每个场景都有十组的数据,共100组数据,统计、整理的时候取数据的平均值,这样可以比较客观地模拟并反映实际的通信网络的情况和网络性能。
14
桂林理工大学本科毕业设计·论文
设置相同节点数不同仿真区域的仿真场景设置的参数如4-2表:
表4-2 仿真场景参数表二
参数类型 仿真时间 节点数 路由协议 广播范围 节点停留时间 参数值 30S 20 AODV 15M 0 参数类型 仿真区域 最小传输速率 最大传输速率 通信代理 节点移动速度 参数值 30*30,35*35?70*70,75*75 1.2Ms 1.4Ms TCP 0.00001m/s 采用类似上述的场景生成方法,在设置相同节点数不同仿真区域的仿真场景的时候,本方案设计生成节点数目一定,仿真区域变化的10个大小不同的仿真场景,每个仿真场景均有10个随机的节点分布方式,设置了一共10*10个不同的场景进行仿真。
4.2 AODV协议场景代码的编写
编程使用的是TCL可扩展脚本语言,由脚本语言和相应的解释器组成。通过添加预编译的C函数来扩展TCL解释器。直接用C语言编写好相应的.tcl脚本,调用即可。具体代目如下:
第一,设定各项属性:
set val(chan) Channel/WirelessChannel #无线信道类型 set val(prop) Propagation/TwoRayGround #无线传播模式 set val(netif) Phy/WirelessPhy/802_15_4 #物理层类型 set val(mac) Mac/802_15_4 #MAC类型 set val(ifq) Queue/DropTail/PriQueue #接口队列类型 set val(ll) LL #逻辑链路层类型 set val(ant) Antenna/OmniAntenna #天线模型
set val(ifqlen) 50 #接口队列接受最大包数量 set val(nn) 13 #通信节点个数 set val(rp) AODV #路由协议 set val(x) set val(y)
30 #仿真场景尺寸X坐标轴 30 #仿真场景尺寸Y坐标轴
set val(traffic) ftp #数据包类型
15