资源描述
OPNET仿真报告
一、实验目的
1.掌握OPNET最基础的入门方法
2.验证不同条件下网络的特性
3.利用OPNET提供的网络设备,信道组件等构造期望的网络拓扑结构,最终达到灵活组合运用OPNET的目的。
二、实验步骤
1> 首先,仿真一个星形网络,因为星形网络是最基本的几种网络结构之一,从最基本的入手,由简到难,可以深入了解OPNET。下面介绍一下我仿真星形网络的步骤。
打开OPNET,新建一个工程,给工程和场景分别命名。
设置向导。设置一个office的Network scale, 再选择Technologies,使Sm_Int_Model_List后面的include变为yes。
设置拓扑结构。选择星形网络,确定此拓扑的中心节点,节点数目,位置等参数。
添加服务器。添加完服务器,用传输线连接。
选择要测量的参数。例如星形网络是测整体的延迟。
运行,仿真,查看结果。
再利用同样的方法建立一个15个节点的网络,同样测量延迟和负载情况。
下图为最后得出的仿真图形
比较仿真结果,得出结论。
结论为: 当节点数增加时延迟变大,负载量变小。
2>然后再来仿真一个Aloha 和CSMA模型。
首先,仿真Aloha模型。
创建Aloha发射机进程模型
创建一个通用发射机节点模型
创建一个通用接收机进程模型
创建一个通用接收机节点模型
构建网络模型
下面分别描述各个模型的仿真步骤。
A创建发射机进程模型:
新建process model,在工作区添加三个状态,给每个状态命名,并改变状态。
3个状态之间用传输线连接,从idle到tx_pkt之间的连接可以通过改变condition 来实现,如图所示
打开Header Block输入代码并保存。
打开State Variable Block改变Type,Name和Comments。
双击init上部打开Enter Executives输入代码并保存,同样对tx_pkt操作,只是程序段不同。
定义global attribute。选择Interfaces > Global Attributes,作如下处理
选择Interfaces > Process Interfaces,把begsim intrpt的初值变为enabled,把所有的状态都改为hidden,也可以添加comment。
7.编译这个进程模型,并以initials_aloha_tx这个名称保存。
B. 创建一个通用发射机节点模型:
1.新建节点模型,在工作区创建2个进程模型和1个总线发射机模型,给每个模型重命名,并用传输线连接。
2.确认src stream被设置为src stream [0],dest stream被置为dest stream [0]
3.打开gen,设置相应的参数。
4.新增1个进程模型和节点模型,并用传输线连接,如图:
5.打开statistic wire的对话框,把上升沿河下降沿触发器改为disabled。
6.查看tx_proc的connectivity。
7.选择Interfaces> Node Interfaces,将mobile和satellite的supported值改为no,除了promoted其他的状态都改为hidden,保存此model并命名initials_cct_tx。
C.创建通用接收机节点模型
1.创建节点模型,在工作区添加1个进程模型和1个总线接收模型,重命名,并用传输线连接.
2.选择Interfaces > Node Interfaces,在节点类型中将mobile和satellite的类型改为no,所有状态改为hidden。
3.打开Header Block,输入程序代码,保存。
4.打开状态变量,定义变量
5.打开功能模块,输入程序代码,保存
6.双击init上部,输入程序段,保存
7.选择 Interfaces > Process Interface,将begsim intrpt和endsim intrpt
的初值改为enabled,所有状态改为hidden。
8编译此进程模型,保存为initials_cct_rx。
D.创建通用接收机节点模型
1.新建一个进程模型,在工作区添加两个状态,分别命名,改变状态,并用传输线连接,如图所示
2. .选择Interfaces> Node Interfaces,将mobile和satellite的supported值改为no,所有状态改为hidden,保存为initials_cct_rx。
E.创建一个新的链路模型
1.创建一个新的链路模型,在Supported link types中将ptsimp和ptdup的类型修改为no。如图
2保存为initials_cct_link,并关闭链路模型编辑器。
3.创建网络模型
4新建一个工程,分别用initials_cct_network和aloha为工程和场景命名,然后按下图设置参数
5.弹出对话框,选择,Configure Palette...,然后Clear
按link models添加initials_cct_link;按node models添加initials_cct_rx和initials_cct_tx。
6.按Save As...键保存文件,命名为initials_cct,按ok关闭Configure Palette对话框。
7.选择Topology > Rapid Configuration,选择Bus,并进行配置,如下图所示
8.点击ok,出现network如图所示
9.点击并拖动接收节点initials_cct_rx到工作区左边,点击initials_cct_link,确定使用这个
10.画一个从总线到接收节点的tap,如图
11将此模型保存为initials_cct_network,执行aloha仿真
12.选择Scenarios > Scenario Components > Import...;Simulation Sequence然后选择cct_network-CSMA,并确定,保存此工程。
13.选择DES > Configure/Run Discrete Event Simulation (Advanced)有12个序列如图
14.右击scenario中选择Edit Attributes,扩展Execution tree node,扩展Advanced tree node,选择Application,点击Application节点。
15.确认网络模型被设置为initials_cct_network-aloha.点击Outputs和Statistics Collection,设置Probe file 为NONE,用op_stat_scalar_write()代替probe file,确认Vector file被置为initials_cct_network-aloha.
16.点击Inputs,然后Global Attributes,确认最大包得书目为1000,点击Object Attributes,点ok保存这些变化,关闭Simulation Sequence对话框,选择File > Save.
17.运行,并确认。结果如图
18仿真完成关闭DES Execution Manager对话框。
19.点击View Results,选择DES Parametric Studies,扩展Scalar Statistics,右击Channel Throughput S,选择Set as Y-Series,结果如下:
右击Channel Traffic G,选择Set as X-Series,点击show,如图;
F.Adding Deference
1.选择File > Recent Files > Process Model,选择initials_aloha_tx,选择File > Save As...,把进程模型重命名为initials_csma_tx,然后新建一个状态,命名为wt_free,用传输线将各个状态之间连线,并改变condition,如图所示:
2.在HB中添加程序,并保存,编译其,然后关闭进程编辑器。
3.选择File > Recent Files > Node Model>initials_cct_tx,选择File > Save As...,重命名节点模型为initials_cct_csma_tx,右击statistic wire,选择Edit Attributes,将falling edge trigger设置为enabled,点ok。
4.打开tx_proc 进程模型的Attributes,将process model命名为initials_csma_tx,点ok关闭对话框。
5.在工程编辑器中选择Scenarios > Duplicate Scenario...,重命名为CSMA,右击其中一个发射节点选择Select Similar Nodes。右击选中的节点,选择Edit Attributes (Advanced),选择Apply,重命名为initials_cct_csma_tx,点Yes,保存此工程。
6.选择DES > Configure/Run Discrete Event Simulation,将Seed变为11,运行此工程。点击查看结果。在结果浏览器中选择DES Parametric Studies。扩展Scalar Statistics,右击Channel Throughput S,选择Set as Y-Series;选择Channel Traffic G,选择Set as X-Series,点show。
在Results Browser中,选择Current Project,选择aloha场景,右击Series,选择Add Scenario Name as Parameter。点击show。
G.增加拥塞检测和补偿
1.选择File > Open,选择project,在install_dir目录下选择release>models>std> tutorial_req>modeler,打开ethcoax_net,选择File > Save As…,保存为initials_ethcoax_net。选择DES > Run Discrete Event Simulation。
2.在工程编辑器中选择DES > Results > View Results...,
选择Object Statistics > ethcoax_net > bus_0 [0] > utilization,将As Is改为 average,点击show,在Results Browser,选择bit_thruput,点击show,现实活动窗口如图所示:
选择Show Statistic Data,如图所示:
在utilization中选择average,如图所示;
三、结果分析
理论上,ALOHA系统的信道吞吐量S和信道流量G之间的关系是:S = Ge-2G ,当G=1/2是,S大约是0.18。低流量时冲突很少发生,高流量时信道发生拥塞,大量冲突使得数据包丢失难以被成功接收。由仿真图可以看出在G=0.5左右,S=0.18左右,在误差允许的范围内理论结果与实际结果相符合。
由上图红线知道CSMA协议能到达的最大吞吐量大约是S=0.53在G=1左右发生。
四、实验中遇到的问题及解决办法
第一次在编译CSMA的时候通过,但是在run的时候出错,如图所示
查看错误报告,如图:
仔细观察发现Multiple default transitions from state <state>,错误可能是由于进程模型中某状态之间传输线连接错误,认真检查发现
,从idle到tx_pkt的condition为改变,重新改变为之后,成功仿真。所以,我们在仿真的时候必须严格按照步骤,仔细读懂每一句话,否则,可能一步错,满盘皆输!
展开阅读全文