《OPNET仿真设计技术ppt课件》由会员分享,可在线阅读,更多相关《OPNET仿真设计技术ppt课件(60页珍藏版)》请在金锄头文库上搜索。
1、OPNET仿真仿真设计技技术研究生技能研究生技能训练计划划毛玉明毛玉明2019年年9月月1IntroductionlOpnet 仿真开仿真开发OPNET仿真设备组件构建仿真网络环境定义统计数据运行仿真仿真结果分析2实现仿真任仿真任务l常常规网网络仿真仿真l使用使用OPNET提供的网提供的网络设备、信道、信道组件件l图形形编辑,构建期望的网,构建期望的网络拓扑拓扑结构构l定定义需收集的需收集的统计数据数据l运行仿真,运行仿真,结果分析果分析l自定自定义网网络仿真仿真(自定自定义设备、协议、功能等、功能等)l设计自己的网自己的网络设备l设计设备协议栈:自定:自定义协议模模块+系系统提供提供协议模模
2、块l自定自定义协议模模块:设计协议的状的状态机机l协议状状态机:机:设计状状态转移关系和移关系和处理函数理函数l用常用常规网网络仿真,并加入自行仿真,并加入自行设计的网的网络设备l如果掌握了自定如果掌握了自定义网网络设备的的设计,就掌握了灵活运用,就掌握了灵活运用OPNET的主的主动权!Introduction3自定自定义设备的的设计Process model rip_udp_v3设备模型Network(Consists of Device)Node(Consists of Process)Process(Consists of State Machine)State Processing(C
3、onsists of Proto-C)设计设备的协议栈,其中某个(某些)协议进程是自行设计的设计协议的状态转移模型设计状态处理函数Introduction4掌握掌握OPNET的使用技巧的使用技巧l任任务驱动式的学式的学习和掌握和掌握OPNETl1、掌握、掌握OPNET使用的最基使用的最基础的入的入门方法方法l2、从最、从最简单的的场景入手,景入手,为自己定自己定义一个仿真一个仿真任任务l3、设计中学中学习,有,有针对性的需要什么就学性的需要什么就学习什什么么l4、步步、步步为营,循序,循序渐进l5、勤、勤查阅OPNET的帮助的帮助l6、对不清楚的不清楚的问题,连猜猜带蒙其关蒙其关键字字(帮助文
4、帮助文档档)Introduction重要提示: 等学习完OPNET的所有(部分)后,才开始动手做 开始就面对完整的仿真方案,因为可能遇见的未知因素太多5OPNET 仿真仿真设计任任务驱动lALOHA系系统仿真仿真l场景景: 无无线信道上信道上N个站点的个站点的简单网网络lN个个发送站点、一个接收站点送站点、一个接收站点(便于仿真便于仿真统计)l站点:自定站点:自定义ALOHA设备l链路路层实现的功能的功能l有数据有数据报文,就直接文,就直接发送到无送到无线信道上信道上l从无从无线信道上收到信道上收到报文,文,统计后后销毁l仿真内容仿真内容l运行仿真运行仿真k次,每次次,每次变化化报文文发送送总
5、量量lG:归一化一化值= 发送送总量量/信道容量信道容量l0.1,0.2,0.3,0.9l1.0,1.5,2.0,2.5,3.0,3.5,4.0l每次仿真,得到每次仿真,得到统计量量为接收接收报文文总量量lS:归一化一化值=接收接收总量量/信道信道总量量l结果果l期望与已知的期望与已知的ALOHA的的G-S曲曲线吻合吻合TxTxTxTxTxRx0.50.18GSIntroduction6ALOHA设计任任务l安装安装Opnet14.5l安装安装Visual Studio(若未安装若未安装)l安装主系安装主系统l安装仿真模安装仿真模块l安装帮助文件安装帮助文件l安装安装Licensel连接接Op
6、net与与Visual Studiol设计节点及点及协议栈l节点点设计l节点点图标l节点属性点属性设置置l协议栈设计l协议栈结构构设计l指派指派Process的的协议状状态机机l协议属性属性设置置l设计协议状状态机机l设计状状态转移移图l定定义转移事件移事件l定定义处理函数理函数l设计函数功能函数功能l设计状状态机机软件件l状状态内嵌入口函数、出口函数内嵌入口函数、出口函数l状状态转移函数移函数l仿真仿真场景景设计及仿真运行及仿真运行l设计网网络拓扑拓扑结构构l设置仿真运行参数置仿真运行参数l仿真运行仿真运行l仿真仿真结果分析果分析l仿真数据曲仿真数据曲线图l曲曲线图分析分析Introduct
7、ion7l装置装置 Visual Studio 6.0/2019/2019l安装安装Opnet主系主系统l安装安装Opnet 模模块库l安装安装Opnet 帮助文件系帮助文件系统l安装安装Opnet Licensel配置配置Opnet 与与VS 连接接LAB1:装置:装置 Opnet 14.58装置装置lVisual Studio 2019/2019/2019l若已安装,跳若已安装,跳过此步此步骤l自行解决安装自行解决安装问题l安装安装Opnet(需在断网情况下安装需在断网情况下安装)lOpnet 主系主系统lmodeler_100A_PL1_win32.exelOpnet 模模块库lmode
8、ls_145A_PL1_27Feb08_win.exelOpnet Lisence lOPNET.Modeler.11.5.License.MakerFFS.exe装置装置 OPNET9配置配置OpnetlOpnet 与与Visual Studio的的连接接l若安装的是若安装的是Visual Studio 2019 l不需要配置,直接可用不需要配置,直接可用l若安装的是若安装的是2019或或2019,需重新,需重新编译op_runsim_devl编译op_runsim_devl参照参照说明明l14.5.Asysetcreadme.c+ (编译说明文本)明文本)l: opnet 安装路径安装路径
9、l编译方法方法l启启动Visual Studiol进入入Visual Studio的命令提示的命令提示dos界面界面l工具工具 Command Promptl将将readme文件中的两个文件中的两个LINK 命令在命令在dos下运行下运行即可即可Command Prompt装置装置 OPNET10配置配置Opnetl设置运行置运行环境境l控制面板控制面板 性能与性能与维护 系系统 高高级 中中设置置环境境变量量l需需设置的置的环境境变量量lPATH= ;%path%lINCLUDE=;%include%lLIB=;%lib%lLIBPATH=;%libpath%l的内容的内容l开启开启dos窗
10、口:窗口:“运行运行 cmd”l开启开启Visual Studio “command prompt” dos 窗口窗口l分分别两个窗口中两个窗口中键入入“PATH”l两个窗口不同的部分即是两个窗口不同的部分即是的内容的内容lINLCUDE、LIB、LIBPATH环境境变量量处理理类似似装置装置 OPNET11LAB1小小结l安装安装Visual Studio 和和Opnet后后l连接接使使Opnet能用能用VS 编译Opnet的代的代码l能用能用VS调试Opnet代代码l编译op_runsim_devl使使Opnet的运行的运行软件与安装的件与安装的VS系系统匹配匹配l设置置环境境变量量l为O
11、pnet提供提供VS文件的路径文件的路径装置装置 OPNET12l设计节点及点及协议栈l节点点设计l节点点图标l节点属性点属性设置置l协议栈设计l协议栈结构构设计l指派指派Process的的协议状状态机机l协议属性属性设置置LAB2:设计节点及点及协议栈13ALOHA节点点协议栈设计lALOHA节点的最点的最简协议栈l物理物理层:lOPNET的无的无线收、收、发模模块l链路路层:lOPNET的的Process模模块AMacl需要定需要定义该模模块的状的状态机机l上上层lOPNET的的报文文发生器模生器模块(Gen)lOPNET的的报文文销毁模模块(Sink)l说明明lGen按按设定参数定参数产
12、生生报文,文,递交到交到AMac上上lAMac将将报文送到文送到WTx模模块,在那儿送上无,在那儿送上无线信道信道l接收情况接收情况类似似lAMac功能功能l似乎除了上下似乎除了上下传递报文,没干什么事了文,没干什么事了l验证Aloha G-S性能曲性能曲线,证明仿真方法的正确性明仿真方法的正确性l为Slot-Aloha设计奠定基奠定基础节点点设计WTxGenSinkAMacWRx14节点点协议栈编辑lOpnet的的节点点编辑器器lFile newNode Modell图形形编辑协议栈结构构lProcess、ConnectionlProcess 属性定属性定义lName:定:定义名称名称lPr
13、ocess Model:配置:配置协议l上上层:simple source和和sinkl系系统提供的提供的报文文发生器和生器和销毁器器lAMac:协议在后面自行在后面自行设计l完成自主完成自主设计后,菜后,菜单上才会出上才会出现节点点设计编辑协议栈定义属性ProcessConnectionOpnet提供非常多的协议模型15Process接口定接口定义l概念:概念:Opnet采用索引号采用索引号标识报文的流向,供文的流向,供FSM使用使用l输入索引:入索引:0,1,2,l输出索引:出索引:0,1,2,l用用连接接线的的Attribute定定义索引号索引号l索引号的作用索引号的作用l状状态机的机的
14、输入入输出出编程操作程操作lpacket = op_pk_get(in_index);lop_pk_send(out_index,packet);l编程的宏定程的宏定义l#define STRM_WTX 1l#define STRM_WRX 1l#define STRM_GEN 2l#define STRM_SINK 2l发送送lPacket = op_pk_get(STRM_GEN);lop_pk_send(STRM_WTX, Packet);l接收接收lPacket = op_pk_get(STRM_WRX);lop_pk_send(STRM_SINK, Packet);节点点设计建建议:
15、同一个方向上的:同一个方向上的输入入输出用出用相同的索引号相同的索引号#define STRM_WCHN 1#define STRM_UPPR 216无无线收收发信机参数信机参数设置置l重点关注参数重点关注参数lData Rate(1024 bps)信道容量信道容量lBand Width(10kHz)lMin Frequency(30MHz)lPower(100W)l建建议修改后的参数修改后的参数lData Rate = 1000000bps (1Mbps)l若若报文文长度取度取1000bits,则信道信道报文容量文容量=1000报文文/秒秒lBand Width = 10000kHz (10
16、MHz)l带宽保守点,取信道速率的保守点,取信道速率的210倍倍lMin Frequency = 2400MHz(2.4GHz)l2.4G上上视距距传播几百米播几百米lPower 取取 1W足足够l注意:注意:l接收模接收模块要和要和发送模送模块的参数要的参数要设置成一致才能接收置成一致才能接收节点点设计17节点点(设备)接口接口设置置lInterface Node InterfacelNode Type:选择设备图标l有三种有三种类型,任型,任选一种即可一种即可lAttributes设置置l除了除了altitude(高度高度)外,其它先不管外,其它先不管(改成改成Hidden)l节点高度需要
17、大于点高度需要大于0,否,否则无无线发送不出去送不出去节点点设计报文文发生器参数生器参数设置置lProcess(Gen) Attributesl分分组到达到达间隔隔l设置置为 Promote to higher levell提供提供给多次运行仿真多次运行仿真时设定不同定不同值(G值)l分分组长度度l注意注意对信道信道报文容量的影响文容量的影响l开始开始时间:开始:开始产生生报文的文的时间(默默认10秒秒)18节点点设计小小结l根据根据节点功能需求,点功能需求,设计节点的点的协议栈l简单的的图形形编辑操作即可操作即可l为每个每个Process配置配置协议l构成需要的构成需要的协议栈结构构lOpn
18、et 提供了丰富的提供了丰富的协议模模块l配置自定配置自定义协议,需完成,需完成协议状状态机和机和编程后程后进行行l设置置Process 的接口索引的接口索引l为Process 的状的状态机提供事件接口机提供事件接口l出出/入接口索引号分入接口索引号分别定定义l建建议:同一个方向的出入口索引用相同的索引号:同一个方向的出入口索引用相同的索引号l信道机参数配置信道机参数配置l注意信道的注意信道的bit容量和容量和报文容量文容量l注意其它参数与信道容量要相匹配注意其它参数与信道容量要相匹配l报文文发生器配置生器配置l报文速率、文速率、报文文产生概率分布生概率分布(注意与信道容量的匹配关系注意与信道
19、容量的匹配关系)l注意注意产生生报文的开始文的开始时间l节点配置点配置l配置一个配置一个图标即可即可(除非有必要,可配置多个除非有必要,可配置多个)l节点属性配置,通常不需要,点属性配置,通常不需要,Hiden=隐藏不可藏不可见l设备名称名称l节点的文件名即成点的文件名即成为该节点点设备的名称的名称节点点设计19LAB3:设计协议状状态机机l设计协议状状态机机l设计状状态转移移图l定定义转移事件移事件l定定义处理函数理函数l设计函数功能函数功能20设计协议状状态转移移图lAMac的的ALOHA协议功能描述功能描述l不管信道情况,想不管信道情况,想发就就发l收得到就收收得到就收lAMac协议状状
20、态转移移图设计l状状态:描述:描述协议过程中的不同工作程中的不同工作阶段段lAMac只需一个只需一个阶段段(一个状一个状态)即能即能实现要求的功能要求的功能l其中其中Init状状态是是Opent要求的初始状要求的初始状态l定定义转移事件移事件l定定义了两个了两个转移事件移事件l产生了生了报文文(PKT_ARVL)l收到了收到了报文文(PKT_RCVD)l定定义处理函数理函数lPKT_ARVL事件,用事件,用pkt_send()函数函数处理理lPKT_RCVD事件,用事件,用pkt_recv()函数函数处理理状状态机机设计IdlePKT_ARVL/pkt_send()PKT_RCVD/pkt_r
21、ecv()事件/处置Init21状状态机仿真属性机仿真属性设置置l设置状置状态机的开始仿真事件机的开始仿真事件lInterface Process Interface : Attributeslbegsim intrpt: Enable ; 允允许仿真开始事件,(初始化)仿真开始事件,(初始化)l其它属性不用考其它属性不用考虑,统一一设置置为Hiddenl目的:目的:让仿真开始事件触仿真开始事件触发状状态机的初始化操作机的初始化操作l否否则,第一个事件被当做仿真开始事件,第一个事件被当做仿真开始事件处理理lendsim不用不用Enable,状,状态机没有机没有设置置该事件的事件的转移操作移操作
22、状状态机机设计22状状态机的机的说明明l初始化初始化l状状态机完成初始化后,机完成初始化后,转移到移到Init状状态l协议动作描述作描述l当当gen产生了生了报文文(PKT_ARVL事件事件)l调用用pkt_send()函数函数处理理l当当WRx收到收到报文文(PKT_RCVD事件事件)l调用用pkt_recv()函数函数处理理l设计函数功能函数功能lpkt_send():l从从Gen取得取得报文,送文,送给WTx发送,更新送,更新发送送统计lpkt_recv():l从从WRx取得取得报文,送文,送给销毁器,更新接收器,更新接收统计IdleInitPKT_RCVD/pkt_recv()PKT_
23、ARVL/pkt_send()状状态机机设计23状状态机与机与处理函数的关系理函数的关系l不同的状不同的状态机机设计,事件定,事件定义、处理函数功能也将随之改理函数功能也将随之改变l对比比AMac两种等效的状两种等效的状态机模型机模型状状态机机设计IdleInitPKT_RCVD/pkt_recv()PKT_ARVL/pkt_send()IdleInitPKT_EVNT/pkt_proc()模型模型1 1模型模型2 2提示:提示:1 1、状、状态机模型有多种形状的机模型有多种形状的设计,需有,需有针对性的性的设计处理函数理函数2 2、模型、模型1 1图形复形复杂些,但更清楚的描述出每种事件的些
24、,但更清楚的描述出每种事件的处理理动作、作、处理函数理函数单纯3 3、模型、模型2 2图形形简单些,但些,但对事件的事件的处理描述模糊一些,理描述模糊一些,处理函数复理函数复杂4 4、状、状态机与机与处理函数需要理函数需要联合合设计,在状,在状态图和和处理函数理函数间复复杂性取得平衡性取得平衡两个事件、两个两个事件、两个处理函数理函数 报文到达事件:文到达事件: 调用用pkt_send()处置置 (把把报文交文交WTx发送送) 收到收到报文事件:文事件: 调用用pkt_recv()处置置 (把把报文送文送销毁器器)一个事件、一个一个事件、一个处理函数理函数 报文事件:文事件: 调用用pkt_p
25、roc()处置置假假设(报文来自文来自Gen) 把把报文交文交WTx发送送假假设(报文来自文来自WRx) 把把报文送文送销毁器器24LAB3小小结l状状态机机图形形l简单的的图形形编辑完成完成l状状态、事件、事件、处理函数理函数间的关系的关系l状状态的的设置影响事件的定置影响事件的定义l事件的定事件的定义影响影响处理函数的功能理函数的功能l状状态的含的含义l协议的不同的不同处理理阶段、或段、或协议的等待事件的位置的等待事件的位置l状状态不是越多越好,不是越多越好,应在在简化状化状态图和清晰描述和清晰描述间取得平衡取得平衡l实例:例:协议的描述与状的描述与状态的的设计l两个两个对等等实体体A和和
26、B间的交互,的交互,A发送命令送命令给B,B向向A发回响回响应l不正确的描述不正确的描述lA向向B发送命令,然后接收送命令,然后接收B的响的响应,若收到,若收到则,否否则l正确的描述正确的描述lA向向B发送命令,然后等待送命令,然后等待B的响的响应,若响,若响应到达到达则,否否则l原因原因lA和和B是不同的是不同的设备上的上的对等等实体,不能期望下一个事件就是体,不能期望下一个事件就是B的响的响应!l等待等待B的响的响应预示着示着对多种可能性的多种可能性的处理:理:B没有收到、没有收到、B不回答或延不回答或延迟回答、回答、B的响的响应未能正确送回、未能正确送回、A等待中又出等待中又出现了其它事
27、件了其它事件(如定如定时器超器超时)l状状态设计l等待等待B的响的响应应设置置为一个状一个状态l期望接收期望接收对等等实体的体的报文是一个相文是一个相对漫漫长、且不确定性的、且不确定性的过程程l其它:如等待上其它:如等待上层的的报文、等待定文、等待定时器超器超时等等IdleWait请求对方/发送命令超时/Next响应/下一步准备重发?重发?/重发超次数/报告其它事件/处置强制状态(过渡)状状态机机设计25LAB4:协议状状态机机编程程l协议状状态机机软件件设计l状状态机机编程程环境境26状状态机机编程程环境境l编程程环境境状状态机机编程程头文件状态机全局变量状态机功能函数IdleInitPKT
28、_RCVD/pkt_recv()PKT_ARVL/pkt_send()状态入口代码状态出口代码27状状态机机编程程环境境lHB:头文件文件l状状态机接口定机接口定义,如:,如:l#define STRM_WTX 1l#define STRM_GEN 2l状状态机机转移事件定移事件定义,如,如l#define PKT_ARVL (op_pk_type() = xxx)l#define PKT_RCVD (op_pk_type() = yyy)l函数原型定函数原型定义,如,如lvoid pkt_send(void);l数据数据结构定构定义lSV: 状状态机全局机全局变量定量定义l定定义状状态机所有
29、函数可直接使用的机所有函数可直接使用的变量定量定义,如,如lint Total_Sent_counter;lInt Total_Recv_counter;lFB: 状状态机功能函数机功能函数l各种功能函数体,如:各种功能函数体,如:lvoid pkt_send(void)ll 。l 状状态机机编程程28状状态机机编程程环境境l双双击状状态的上下半部,可分的上下半部,可分别编辑出入、口代出入、口代码l入口代入口代码(Enter_Exec)l每次每次进入入该状状态时需需执行的代行的代码l可嵌入自己的代可嵌入自己的代码l例如:在例如:在Init的入口代的入口代码处可嵌入可嵌入lTotal_Sent_
30、Counter=0;lTotal_Recv_Counter = 0;l完成完成对统计变量的初始化操作量的初始化操作l出口代出口代码(Exit_Exex)l当从当从该状状态转移出去移出去时首先需要首先需要执行的代行的代码l可嵌入自己的代可嵌入自己的代码状状态机机编程程Enter_ExecExit_Exec29状状态机机软件件结构构l状状态机机软件整体架构件整体架构状状态机机编程程当有事件(ev)发生时Switch(FSM_State)Init_Exit_Exec();FSM_State = Idle;Idle_Enter_Exec();Break;Case Init:If(PKT_ARVL)If
31、(PKT_RCVD)break;Case Idle:Idle_Exit_Exec();pkt_send();FSM_State=Idle; Idle_Enter_Exec();Idle_Exit_Exec();pkt_recv();FSM_State=Idle; Idle_Enter_Exec();IdleInitPKT_RCVD/pkt_recv()PKT_ARVL/pkt_send()状态机的软件整体结构由Opnet根据状态机图自动生成注意框架结构中: 转出状态前,先执行Exit_Exec() 转入状态前,先执行Enter_Exec()30AMac状状态机机软件件设计l编辑头文件文件(HB
32、)Opnet 提供的、常用于组成转移事件的判断函数op_intrpt_type() 确定事件类型(各种事件类型见该函数的帮助文件!)op_intrpt_strm() 确定报文来源(接口索引号)op_pk_type() 确定报文类型状状态机机编程程/ 事件类型=报文流/ 报文流来源 = 上层/ 事件类型=报文流/ 报文流来源 = 信道机31AMac状状态机机软件件设计l定定义状状态变量量 (SB)l状状态机的全局机的全局变量,任何位置都可量,任何位置都可访问到到这些些变量量l表格形式添加状表格形式添加状态变量量l可以添加任何可以添加任何类型的状型的状态变量量l任何任何类型的状型的状态变量量lOp
33、net定定义的的类型型l各种各种类型的指型的指针变量量l数据数据结构构变量量l需要在需要在头文件中先定文件中先定义该数据数据结构构lAMac中定中定义的状的状态变量量l见图状状态机机编程程32AMac状状态机机软件件设计状状态机机编程程l定定义状状态机功能函数机功能函数(FB)l目前定目前定义的两个函数的两个函数lpkt_send()lpkt_recv()l利用的利用的Opnet函数函数lPakcet* op_pk_get(int in_index)l从指定接口从指定接口获得得报文文lop_pk_send(Packet *p, int out_index)l从指定接口送出从指定接口送出报文文3
34、3AMac状状态机机软件件设计l入口、出口代入口、出口代码设计l若某个状若某个状态没有入口、出口代没有入口、出口代码考考虑,则可不管可不管lAMac需要需要对统计变量量进行初始化行初始化l初始化位置在几个地方可考初始化位置在几个地方可考虑:lInit的入口代的入口代码lInit的出口代的出口代码l在在Init向向Idle的的转移中移中(需定需定义一个函数来一个函数来实现)l在在Init的入口代的入口代码中中实现,见图状状态机机编程程34AMac状状态机机软件件设计lOpent的的强制、非制、非强制状制状态含含义l非非强制状制状态:有限状:有限状态机意机意义下的状下的状态l强制状制状态:Opne
35、t编程意程意义下的下的过渡状渡状态lOpnet编程意程意义下的状下的状态l非非强制状制状态l等待事件等待事件发生的状生的状态l转入入该状状态后,停留在此,直到后,停留在此,直到满足足转出条件的事件出条件的事件发生生l非非强制状制状态l条件判断的状条件判断的状态l转入入该状状态后不停留,根据条件判断后不停留,根据条件判断实现转移移lOpnet将条件判断将条件判断强制制设置置为“状状态”状状态机机编程程转入转出等待事件转入条件判断转出非强制状态强制状态35AMac状状态机机软件件设计l强制状制状态的利用的利用l利用状利用状态的入口、出口代的入口、出口代码实现操作操作状状态机机编程程IdleInit
36、PKT_RCVD/pkt_recv()PKT_ARVL/pkt_send()IdleInitSendRecvPKT_ARVLPKT_RCVD将发送和接收处理代码分别嵌入Send和Recv的入口代码中,省却了编写处理函数InitIdlePKT_PPKT_EVNTFROM_CHN/pkt_recv()FROM_UP/pkt_send()功能等效的三种状功能等效的三种状态图头文件中头文件中#define FROM_UP (from = STRM_HIGHER)#define FROM_CHN (from = STRM_WCHN)PKT_P入口代码中入口代码中int from=op_intrpt_st
37、rm()36AMac状状态机机软件件设计状状态机机编程程l状状态机机软件件编译l见图l编译成功后成功后l回到回到节点点协议栈l在在协议模模块中可以找到中可以找到该状状态机机l将将AMac配置成配置成该协议状状态机机37LAB4:小:小结l状状态机机软件件组成成l软件框架件框架结构构(状状态机的完整的机的完整的软件件结构构)l头文件、状文件、状态变量、功能函数、入口、出口代量、功能函数、入口、出口代码l灵敏、灵敏、组合运用合运用l强制状制状态的出入口代的出入口代码、功能函数、功能函数l理解状理解状态机机软件的事件件的事件驱动运行机制运行机制l每一个每一个发生的事件触生的事件触发状状态机机软件件动
38、作一次作一次l状状态机机软件从当前非件从当前非强制状制状态开始运行开始运行l根据根据发生的事件生的事件产生生转移,直到下一个非移,直到下一个非强制状制状态l期期间,执行了行了转移路径上的功能函数和出入口代移路径上的功能函数和出入口代码lOpnet重要重要约定定l某个状某个状态下下发生了没有定生了没有定义转移的事件,移的事件,该事件将被事件将被Opnet丢弃弃l优点:在某个状点:在某个状态下下专注于特定的事件注于特定的事件l可能的可能的问题:某些重要事件被:某些重要事件被丢弃弃l设计细节l仔仔细考察每个状考察每个状态下可能下可能发生的事件,确定哪些事件必生的事件,确定哪些事件必须处理理状状态机机
39、编程程38总结:l自主自主设计网网络设备l定定义设备的功能和接口的功能和接口l设计设备的的协议栈结构构l现有有协议与自主与自主协议的的组合合l设计协议的功能和的功能和动作作l设计协议的状的状态机模型机模型l设计协议状状态机机软件件39LAB5:仿真:仿真场景景设计l设置仿真置仿真场景景l配置仿真参数配置仿真参数l仿真仿真试运行运行40设置仿真置仿真场景景l定定义Opnet仿真中的仿真中的projectlFile new projectl为project取个名取个名lInitial topology:Create empty scenariolNetwork scale:CampuslSize:
40、 10*10 kmlTechnology: lChoose your aloha nodelNode Models fixed Node by namel找到自己找到自己设计的的ALOHA节点,布置到点,布置到场景中景中仿真仿真场景景设计41配置仿真参数配置仿真参数lDES ConfiglInputs Object Attributes: Addl添加添加Node设计中的中的Prompt项仿真仿真场景景设计42配置仿真参数配置仿真参数lPrompt项l报文文产生生间隔:指数分布,均隔:指数分布,均值=0.05l注意均注意均值:信道速率:信道速率=1M,报文文长度度=10000bitsl报文文产
41、生最小生最小间隔隔=0.01(低于次低于次值,信道将,信道将过载!)l产生生报文开始文开始时间=0.01仿真仿真场景景设计43配置仿真参数配置仿真参数lExecution OPNET Debuggerl开启开启Debug仿真仿真场景景设计44仿真仿真试运行运行lRun 运行仿真运行仿真l可以看各种可以看各种级别的的动画画显示示仿真仿真场景景设计看到什么情况?45LAB6:ALOHA系系统仿真仿真l仿真仿真场景分析景分析l配置仿真参数配置仿真参数l仿真运行仿真运行设置置l仿真运行仿真运行l仿真仿真结果分析果分析46仿真仿真场景分析景分析l基本基本场景景l10个无个无线ALOHA站点,都在无站点,
42、都在无线覆盖范覆盖范围内内l站点有站点有报文就文就发送送l仿真分析仿真分析l报文文发送送总量量l所有站点所有站点发送量之和送量之和l报文接收文接收总量量l任一站点的接收量任一站点的接收量l场景景设计l增加一增加一统计节点点l统计从信道上接收的从信道上接收的报文数文数l各站点各站点发送量在送量在统计节点上累加点上累加l仿真仿真结束束时,保存,保存统计信息信息ALOHA仿真仿真TxTxTxTxTxTxTxTxTxTxST47仿真参数仿真参数设计l信道容量信道容量l信道速率信道速率1Mbps、报文文长度度10000bitsl信道信道报文容量文容量 100/秒秒l参数配置参数配置l信道信道负载率率 G
43、=发送送报文文总量量/信道信道报文容量文容量l信道效率信道效率 S=报文成功接收文成功接收总量量/信道信道报文容量文容量l站点站点发送量送量 g = G*报文容量文容量/站点站点总数数l报文平均到达文平均到达时间 t = 1/glG = 0.1 g = 1, t =1秒秒lG = 0.3 g = 3, t = 0.3秒秒lG = 0.5 g = 5, t = 0.2秒秒lG = 0.7 g = 7, t = 0.14秒秒lG = 1.0 g = 10, t = 0.1秒秒lG = 1.5 g = 15, t = 0.07lG = 2 g = 20, t = 0.05lG = 2.5 g = 2
44、5, t = 0.04lG = 3 g = 30, t = 0.033ALOHA仿真仿真0.50.18GSALOHA性能曲线图48仿真仿真场景景设计l增加一个增加一个统计节点点l自己接收并自己接收并统计报文文l设置一个全局置一个全局发送送统计变量,供量,供发送送节点累点累计发送次数送次数lAloha站点修改站点修改l将将发送累送累计计数置数置换成成对全局全局统计变量的累量的累计ALOHA仿真仿真STTx全局变量:int Total_Sent_Counter保存统计信息Op_stat_scalar_write(str,cnt)引用全局变量:extern int Total_Sent_Counte
45、r访问全局变量 +Total_Sent_Counter;49ALOHA 统计节点点FBHB结束仿真时,保存统计信息全局变量50设计结果果仿真仿真场景景l10个个发送送节点点l1个个统计节点点l配置参数配置参数l信道速率信道速率=1Mbpsl报文文长度度=10000bitsl报文速率文速率=100个个/秒秒l仿真仿真时间=60秒秒51设计结果果发送站点送站点52设计结果果统计站点站点53仿真运行仿真运行设置置lDES Config(advanced)lInputs Object Attributesl添加分添加分组产生生时间间隔:隔:exponential(1.0)lEnter multiple
46、 value (根据根据G的序列,添加相的序列,添加相应分分组间隔隔)54仿真运行仿真运行设置置l为G的每个的每个值,仿真运行一次,仿真运行一次G=0.1G=0.3G=0.5G=0.7G=1G=1.5G=2G=2.5G=355仿真运行仿真运行56仿真仿真结果分析果分析lDES Results View ResultslDES parameter study57LAB7:Slot ALOHA仿真仿真lSlot-Aloha 状状态机机设计58sAloha 状状态机机设计lsAloha协议l信道在信道在时间上分割成一系列上分割成一系列时间段,称段,称为“时隙隙”l节点开始点开始发送送时刻必刻必须在在时隙的开始隙的开始处l时隙隙长度度 报文文发送送时间 (T = Len / Rate)lsAloha设备协议栈l与与ALOHA设备协议栈相同相同l用状用状态机如何描述机如何描述l该设几个状几个状态?l会有哪些事件?会有哪些事件?l状状态下下动作如何?作如何?信道接收的报文Gen产生的报文发送的报文时隙时隙时隙时隙59OPNET DU and ICI lData Flow DUPacket Format EditorIntegerFloat PointStructurePacketImformation60