OPNET仿真报告一、实验目的1.掌握OPNET最基础的入门方法2.验证不同条件下网络的特性3.利用OPNET提供的网络设备,信道组件等构造期望的网络拓扑结构,最终达到灵活组合运用OPNET的目的。二、实验步骤1首先,仿真一个星形网络,因为星形网络是最基本的几种网络结构之一,从最基本的入手,由简到难,可以深入了解OPNET。下面介绍一下我仿真星形网络的步骤。打开OPNET,新建一个工程,给工程和场景分别命名。设置向导。设置一个office的Networkscale,再选择Technologies,使Sm_Int_Model_List后面的include变为yes。设置拓扑结构。选择星形网络,确定此拓扑的中心节点,节点数目,位置等参数。添加服务器。添加完服务器,用传输线连接。选择要测量的参数。例如星形网络是测整体的延迟。运行,仿真,查看结果。再利用同样的方法建立一个15个节点的网络,同样测量延迟和负载情况。下图为最后得出的仿真图形比较仿真结果,得出结论。结论为:当节点数增加时延迟变大,负载量变小。2然后再来仿真一个Aloha和CSMA模型。首先,仿真Aloha模型。创建Aloha发射机进程模型创建一个通用发射机节点模型创建一个通用接收机进程模型创建一个通用接收机节点模型构建网络模型下面分别描述各个模型的仿真步骤。A创建发射机进程模型:新建processmodel,在工作区添加三个状态,给每个状态命名,并改变状态。3个状态之间用传输线连接,从idle到tx_pkt之间的连接可以通过改变condition来实现,如图所示打开HeaderBlock输入代码并保存。打开StateVariableBlock改变Type,Name和Comments。双击init上部打开EnterExecutives输入代码并保存,同样对tx_pkt操作,只是程序段不同。定义globalattribute。选择InterfacesGlobalAttributes,作如下处理选择InterfacesProcessInterfaces,把begsimintrpt的初值变为enabled,把所有的状态都改为hidden,也可以添加comment。7.编译这个进程模型,并以initials_aloha_tx这个名称保存。B.创建一个通用发射机节点模型:1.新建节点模型,在工作区创建2个进程模型和1个总线发射机模型,给每个模型重命名,并用传输线连接。2.确认srcstream被设置为srcstream[0],deststream被置为deststream[0]3.打开gen,设置相应的参数。4.新增1个进程模型和节点模型,并用传输线连接,如图:5.打开statisticwire的对话框,把上升沿河下降沿触发器改为disabled。6.查看tx_proc的connectivity。7.选择InterfacesNodeInterfaces,将mobile和satellite的supported值改为no,除了promoted其他的状态都改为hidden,保存此model并命名initials_cct_tx。C.创建通用接收机节点模型1.创建节点模型,在工作区添加1个进程模型和1个总线接收模型,重命名,并用传输线连接.2.选择InterfacesNodeInterfaces,在节点类型中将mobile和satellite的类型改为no,所有状态改为hidden。3.打开HeaderBlock,输入程序代码,保存。4.打开状态变量,定义变量5.打开功能模块,输入程序代码,保存6.双击init上部,输入程序段,保存7.选择InterfacesProcessInterface,将begsimintrpt和endsimintrpt的初值改为enabled,所有状态改为hidden。8编译此进程模型,保存为initials_cct_rx。D.创建通用接收机节点模型1.新建一个进程模型,在工作区添加两个状态,分别命名,改变状态,并用传输线连接,如图所示2..选择InterfacesNodeInterfaces,将mobile和satellite的supported值改为no,所有状态改为hidden,保存为initials_cct_rx。E.创建一个新的链路模型1.创建一个新的链路模型,在Supportedlinktypes中将ptsimp和ptdup的类型修改为no。如图2保存为initials_cct_link,并关闭链路模型编辑器。3.创建网络模型4新建一个工程,分别用initials_cct_network和aloha为工程和场景命名,然后按下图设置参数5.弹出对话框,选择,ConfigurePalette...,然后Clear按linkmodels添加initials_cct_link;按nodemodels添加initials_cct_rx和initials_cct_tx。6.按SaveAs...键保存文件,命名为initials_cct,按ok关闭ConfigurePalette对话框。7.选择TopologyRapidConfiguration,选择Bus,并进行配置,如下图所示8.点击ok,出现network如图所示9.点击并拖动接收节点initials_cct_rx到工作区左边,点击initials_cct_link,确定使用这个10.画一个从总线到接收节点的tap,如图11将此模型保存为initials_cct_network,执行aloha仿真12.选择ScenariosScenarioComponentsImport...;SimulationSequence然后选择cct_network-CSMA,并确定,保存此工程。13.选择DESConfigure/RunDiscreteEventSimulation(Advanced)有12个序列如图14.右击scenario中选择EditAttributes,扩展Executiontreenode,扩展Advancedtreenode,选择Application,点击Application节点。15.确认网络模型被设置为initials_cct_network-aloha.点击Outputs和StatisticsCollection,设置Probefile为NONE,用op_stat_scalar_write()代替probefile,确认Vectorfile被置为initials_cct_network-aloha.16.点击Inputs,然后GlobalAttributes,确认最大包得书目为1000,点击ObjectAttributes,点ok保存这些变化,关闭SimulationSequence对话框,选择FileSave.17.运行,并确认。结果如图18仿真完成关闭DESExecutionManager对话框。19.点击ViewResults,选择DESParametricStudies,扩展ScalarStatistics,右击ChannelThroughputS,选择SetasY-Series,结果如下:右击ChannelTrafficG,选择SetasX-Series,点击show,如图;F.AddingDeference1.选择FileRecentFilesProcessModel,选择initials_aloha_tx,选择FileSaveAs...,把进程模型重命名为initials_csma_tx,然后新建一个状态,命名为wt_free,用传输线将各个状态之间连线,并改变condition,如图所示:2.在HB中添加程序,并保存,编译其,然后关闭进程编辑器。3.选择FileRecentFilesNodeModelinitials_cct_tx,选择FileSaveAs...,重命名节点模型为initials_cct_csma_tx,右击statisticwire,选择EditAttributes,将fallingedgetrigger设置为enabled,点ok。4.打开tx_proc进程模型的Attributes,将processmodel命名为initials_csma_tx,点ok关闭对话框。5.在工程编辑器中选择ScenariosDuplicateScenario...,重命名为CSMA,右击其中一个发射节点选择SelectSimilarNodes。右击选中的节点,选择EditAttributes(Advanced),选择Apply,重命名为initials_cct_csma_tx,点Yes,保存此工程。6.选择DESConfigure/RunDiscreteEventSimulation,将Seed变为11,运行此工程。点击查看结果。在结果浏览器中选择DESParametricStudies。扩展ScalarStatistics,右击ChannelThroughputS,选择SetasY-Series;选择ChannelTrafficG,选择SetasX-Series,点show。在ResultsBrowser中,选择CurrentProject,选择aloha场景,右击Series,选择AddScenarioNameasParameter。点击show。G.增加拥塞检测和补偿1.选择FileOpen,选择project,在install_dir目录下选择releasemodelsstdtutorial_reqmodeler,打开ethcoax_net,选择FileSaveAs…,保存为initials_ethcoax_net。选择DESRunDiscreteEventSimulation。2.在工程编辑器中选择DESResultsViewResults...,选择ObjectStatisticsethcoax_netbus_0[0]utilization,将AsIs改为average,点击show,在ResultsBrowser,选择bit_thruput,点击show,现实活动窗口如图所示:选择ShowStatisticData,如图所示:在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的时候出错,如图所示查看错误报告,如图:仔细观察发现Multipledefaulttransitionsfromstatestate,错误可能是由于进程模型中某状态之间传输线连接错误,认真检查发现,从idle到tx_pkt的condition为改变,重新改变为之后,成功仿真。所以,我们在仿真的时候必须严格按照步骤,仔细读懂每一句话,否则,可能一步错,满盘皆输!