Glomosim 2.03安装步骤及仿真过程

准备工作:下载glomosim.zip和parsec.zip;安装VC++6.0;安装java jdk1.2以上版本,我安装的是jdk 1.5.

一:安装parsec
1 在C盘根目录下建立文件夹c:\glomosim\parsec
2 将glomosim.zip解压至c:\glomosim,解压后c:\glomosim下面应有两个文件夹glomosim和parsec
3 将parsec.zip解压,解压后的文件夹windowsnt-4.0-vc6里面的所有内容拷贝到c:\glomosim\parsec
4 设置pcc环境变量
  1)我的电脑-属性-高级-环境变量
  2)新建系统变量PCC_DIRECTORY,value = "C:\glomosim\parsec\bin"
  3)设置path ";C:\glomosim\parsec\bin"
5 设置VC6.0环境变量
  1)设置include:   ";C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include; C:\Program Files\Microsoft Visual Studio\VC98\Include"
  2)设置lib:  ";C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib;C:\Program Files\Microsoft Visual Studio\VC98\Lib"
  3)设置path:   ";C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin" 
  注释:设置环境变量的值时,如果当前环境变量已经有值,需要在其后面加“;”

二:安装glomosim

1 编译VC++文件: 在命令行状态下进入 C:\Program files\Microsoft Visual Studio\VC98\bin目录,输入:vcvars32

2 编译glomosim源文件: 在命令行状态下进入C:\glomosim\glomosim\main目录,输入: makent。就可以成功编译了。这时可以在./glomosim/bin下看到要执行程序"glomosim.exe"。检查安装是否正确,可以运行"./glomosim config.in"。这时产生一个"glomo.stat"文件。将它与相同目录下的"glomo.stat.sample"文件进行比较来确保输出文件的有效。这时GloMoSim就成功安装了。

三:安装可视化工具
1  在“系统变量”中将classpath项的后面加上分号,添加  "C:\Program Files\Java\jdk1.5.0_04\bin"
2  将path项的值后加上分号,添加上"C:\Program Files\Java\jdk1.5.0_04\bin"
3  在“系统变量”中将jdk_home的值设为"C:\Program Files\Java\jdk1.5.0_04\bin"
   注释:步骤1中的路径以jdk安装的路径为根目录。

四:   GloMoSim的运行

在完成以上编译和安装之后,如果不需要可视化工具,可以在命令行状态下进入C:\glomosim\glomosim\bin目录,输入:glomosim config.in,则会产生仿真结果文件glomo.stat.如果安装了可视化工具,那么在命令行状态下进入C:\glomosim\glomosim\java_gui目录,输入:java GlomoMain。就可以进入可视化界面。在可视化工具中,从“仿真菜单选择“实时”模式,将弹出一个对话框请求输入要执行的程序的名称。默认文件是:.. \glomo..\bin\config.in。点击“确定“按钮继续。

一旦点击了“确定“按钮,可视化工具将运行glomosim,glomosim中捕获标准输出(stdout)并且在屏幕上显示图形化结果。

值得注意的是:一个普遍的错误是当通过实时或者写追踪选项执行可视化工具一旦开始执行时,屏幕上并没有显示任何东西,这样给你的印象好像是程序并没有执行。对此问题的通常解决方法是拷贝配置文件(nodes.input, mobility.in, app.conf and config.in)/java_gui目录下。这时,可视化工具中仿真配置文件config.in.. \glomo..\bin\目录下的config.in文件,另外三个配置文件在C:\glomosim\glomosim\java_gui目录下,产生的结果文件glomo.stat也在C:\glomosim\glomosim\java_gui目录下,当然可以通过前面执行模式的默认路径将config.in修改到C:\glomosim\glomosim\java_gui目录下。这时运行可视化工具时,配置文件都在C:\glomosim\glomosim\java_gui目录下,但是这样的修改只能是一次性的,每次运行时都必须进行这样的修改。

另一种更优越的办法是打开配置文件config.in,将其中的:

NODE-PLACEMENT-FILE     ./nodes.input      改为 :

NODE-PLACEMENT-FILE   C:\glomosim\glomosim\bin\ nodes.input

MOBILITY-TRACE-FILE     ./mobility.in      改为 :

MOBILITY-TRACE-FILE   C:\glomosim\glomosim\bin\ mobility.in

BER-TABLE-FILE          ./ber_bpsk.in      改为 :

BER-TABLE-FILE       C:\glomosim\glomosim\bin\ ber_bpsk.in APP-CONFIG-FILE      ./app.conf             改为 :

APP-CONFIG-FILE      C:\glomosim\glomosim\bin\app.conf

     这样就不需要C:\glomosim\glomosim\java_gui目录下的nodes.input, mobility.in, app.conf and config.in配置文件,可以完全解除C:\glomosim\glomosim\java_gui目录和C:\glomosim\glomosim\bin目录下双重配置文件带来的不少麻烦。不过这时产生的glomo.stat就还是在C:\glomosim\glomosim\bin目录下。

五:仿真示例

移动Ad hoc网络的路由算法主要分为两类:表驱动路由(table-driven)和按需路由(on-demand) 目前,在移动自组网中,针对路由协议的设计这个热点和难点问题,提出了许多有效的路由协议, AODVDSRDSDVZRPWRP等。这里,我们从完整的应用角度,来将两个具有代表意义的移动自组网路由协议AODV (自组网按需路由协议) DSR (动态源路由协议)的平均延时来进行比较,了解随着结点数的变化,在平均延时上AODVDSR性能的差异。

C:\glomosim\glomosim\bin目录下的app.conf文件中,使用12条从开始就一直存在的CBR,每个流中每秒发送564字节的数据包。此处不使用TCP,因为TCP流中提供的拥塞控制、重传特性在我们的模拟中并不需要,而且会导致各流发送的数据包数目不一。

C:\glomosim\glomosim\bin目录下的Config.in文件的配置如下:

SIMULATION-TIME     500                    # 仿真时间(s

TERRAIN-DIMENSIONS  (500, 500)             # 区域范围

NODE-PLACEMENT      RANDOM                 # 结点放置策略

MOBILITY              NONE                 # 结点是否可以移动

PROPAGATION-PATHLOSS   FREE-SPACE          # 传播路径丢失模式

NOISE-FIGURE    10.0                       # 噪音数值

TEMPARATURE     290.0                      # 环境温度(K

RADIO-TYPE              RADIO-ACCNOISE     # 无线广播类型

RADIO-FREQUENCY     2.4e9                  # 频率

RADIO-BANDWIDTH     2000000                # 带宽

RADIO-RX-TYPE           SNR-BOUNDED        # 接收类型

MAC-PROTOCOL        802.11                 # MAC层使用的协议

APPLICATION-STATISTICS          YES        # 是否跟踪应用层

根据前面仿真环境的性能参数配置,在结点数分别为3050100150200250300时得到路由协议为AODVDSR两种情况下平均延时的统计结果如表1所示。

Average Delay

AODV

DSR

30nodes

0.011592359

0.011882228

50nodes

0.011595843

0.011911026

100nodes

0.011605044

0.011891148

150nodes

0.011638710

0.011899828

200nodes

0.011614832

0.011930346

250nodes

0.011657757

0.011930346

300nodes

0.011642720

0.011921894

1.平均延时对照表

从表1统计结果可以得到:由于AODV协议是在DSDV协议的基础上结合类似DSR中按需驱动的思想而提出的。它与DSR协议的不同之处在于报头并不携带路由信息,中继节点隐式地将路由请求和路由应答分组中的路由信息保存于自身的路由表中。而DSR协议基于源路由概念,数据分组头部必须包含完整的路由信息,DSR有比AODV更多的路由信息;DSR不区分路由信息的新旧造成网络负担不同 DSR只能把出错链路通知给源端。 这些缺点造成DSRAODV路由开销大,带宽利用率低,平均延迟的时间更长。

需要重点说明的是:在前面例子中产生的数据量很少,允许对glomo.stat文件进行直接分析,然而由于网络规模和仿真时间的进一步增大,大部分情况是不可能的。那么可以利用其它工具来分析glomo.stat文件,还可以产生图形化结果。本文使用awk语言和gnuplot画图工具。awk 是一种用于读取和处理结构化数据的极佳工具,而gnuplot能够从文本文件中直接读取数据并绘制图形  

在每一次仿真结束时,glomo.stat文件的结果必须单独地保存(如下面的aodv50.stat等)。然后用一个脚本文件(如下面的aodv.bat文件)将所有的结果文件导出生成一个只包含平均延时的文件result.txt。 那么就可以用自编的awk 程序(如下面的delay.awk)对结果文件进行统计分析,得到另一个结果文件result2.txt。再进行整理形成如表1所示的result3.txt文件。

# delay.awk   分别统计不同路由下相同结点数时的平均延时

BEGIN{

count=0;

sum=0;

}

{

 sum +=$10;

count++;

if ( count%12==0)

{

    printf("Average Delay = %f\n",sum/12);

  sum = 0;

}

}

END{

}

# aodv.bat   将所有结果文件整理成单个只包含平均延时的文件

awk "/delay/{print$0}" /aodv30.stat /aodv50.stat /aodv100.stat /aodv150.stat /aodv200.stat /aodv250.stat  /aodv300.stat /dsr30.stat /dsr50.stat /dsr100.stat /dsr150.stat /dsr200.stat /dsr250.stat /dsr300.stat  > result.txt

 

cd\

 

awk -f  delay.awk result.txt > result2.txt

然后编辑一个图形脚本文件(如下面的aodv.plt),用图形工具GnuPlot来直接运行这个文件,就可以得到如图1所示的Delay.gif图形文件。

# aodv.plt   gnuplot直接从文本文件result3.txt中读取数据并绘制图形

set terminal gif

set size 1/2.,1/2.

set output "Delay.gif"

set xlabel "number-of-nodes"

set ylabel "Average Delay(s)"

set key left top box

set title "The figure of Average  Delay"

plot [0:300][0.0100:0.0124] "result3.txt" using 1:2 title 'AODV' with linespoints, \

"result3.txt" using 1:3 title 'DSR' with linespoints

 

1 平均延迟性能比较图

至于其它参数例如报文投递率、路由负荷、数据包丢失率和源结点发送数据包数量的比较,只要对源程序进行简单的修改,就可以直接仿真了。还可以通过配置文件改变数据包的大小、数据包的发送速率、结点的移动速度和区域形状,来研究Ad Hoc 在不同情况下表现出的性能

可视化工具的作用:This tool allows to debug and verify models and scenarios; stop, resume and step execution; show packet transmissions, show mobility groups in di®erent colors and show statistics.

系统环境变量和用户环境变量
环境变量分为系统环境变量和用户环境变量。系统环境变量,对所有用户起作用 ,而用户环境变量只对当前用户起作用。
 
初次安装Glomosim,安装步骤是自己根据网上资料慢慢摸索的,希望能对大家有所帮助!

转载于:https://www.cnblogs.com/Aioria0622/archive/2008/06/16/1223264.html

第一章 无线传感器网络概述 6概述 61.1 NS-2 61.2 OPNET 61.3 SensorSim 71.4 EmStar 71.5 GloMoSim 71.6 TOSSIM 71.7 PowerTOSSIM 8第二章 OMNET++简介 9概述 92.1 OMNeT++框架 92.1.1 OMNeT++组成 92.1.2 OMNeT++结构 102.2 OMNeT++的安装 112.3 OMNeT++语法 122.3.1 NED语言 122.3.1.1 NED总概述 122.3.1.2 Ned描述的组件 132.3.1.3函数 152.3.2 简单模块 172.3.2.1 OMNET++中离散事件 172.3.2.2 包传输模型 172.3.2.3定义简单模块 182.3.2.4 简单模块中的主要成员函数 202.3.3 消息 212.3.3.1 cMessage类 212.3.3.2 消息定义 212.3.3.3 消息的收发 222.3.4 模块参数、门及连接的访问 232.3.4.1消息参数的访问 232.3.4.2门和连接的访问 242.3.4.3门的传输状态 262.3.3.4连接的状态 262.4 仿真过程 272.5 配置文件omnetpp.ini 282.6 结果分析工具 292.6.1 矢量描绘工具Plove 292.6.2 标量工具Scalar 2927、结束语 30第三章 物理层仿真(信道) 323.1 UWB的基础知识 323.1.1 UWB信号的应用背景 323.1.2 UWB信号的定义 323.1.3 UWB的脉冲生成方式(高斯脉冲,非高斯脉冲) 343.1.4 UWB的调制方式 343.1.5 用功率控制多址接入方法来进行链路的建立控制 363.2 用OMNeT++对UWB进行仿真 373.2.1 算法仿真的概述 373.2.2 算法的具体流程 393.2.3 算法的主要代码 413.2.4 仿真结果分析 583.2.5 应用前景 58参考文献 59第四章 MAC层仿真 60概述 604.1 无线传感器网络MAC层特性及分类 604.1.1 无线信道特性 604.1.2 MAC 设计特性分析 614.1.3 无线传感器网络典型MAC协议的分类 614.2 基于随机竞争的MAC协议 624.2.1 S-MAC协议[12] 624.2.2 T-MAC协议 644.2.3 AC-MAC协议 654.3 基于时分复用的MAC协议 654.3.1 D-MAC协议 654.3.2 TRAMA协议 664.3.3 AI-LMAC协议 664.4 其他类型的MAC协议 674.4.1 SMACS/EAR协议 674.4.2 基于CDMA技术的MAC协议 674.4.3 DCC-MAC 684.5 基于OMNeT++的MAC层协议仿真 694.5.1 S-MAC协议的仿真 694.5.2 S-MAC协议流程图 704.5.3 S-MAC协议的分析 714.6 小结 86参考文献 86第五章 网络仿真 88概述 885.1 无线传感器网络路由协议研究 885.1.1 无线传感器网络协议分类 885.1.2无线传感器网络中平面路由 905.1.3无线传感器网络中层次化路由 915.1.4 经典算法的OMNET仿真 935.2 无线传感器网络路由协议研究的发展趋势 1045.3 无线传感器网络层路由协议与OMNET++仿真 1045.3.1 无线传感器网络层路由与OMNET++仿真的基本概念[19] 1045.3.1.1 传感器网络的体系结构 1055.3.1.1.1 传感节点的物理结构 1055.3.1.1.2 传感器网络的体系结构与网络模型 1065.3.2 传感器网络层路由协议的基本概念 1065.3.2.1 网络通信模式[28] 1065.3.2.1.1 单播: 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值