实用标准
图15. 连接服务器和星型网络
最后需要为网络配置业务,包括应用定义(Application definition)和业务规格定义(Profile definition),设置业务涉及的内容较复杂,本例程不作要求,因此模板中应用定义对象和业务规格定义对象的参数已经配置好(为Light database 业务),只要将他们放置在工作空间中即可。
在对象模板中找到Sm_Application_Config 对象并将其放置在工作空间中。 单击右键,光标重新移到对象模板中,单击Sm_Profile_Config,并将其放置在工作空间中,单击鼠标右键。 关闭对象模板。
文案大全
实用标准
图16. 配置完毕的网络模型
3.2.3步骤3:收集统计信息
1) 打开节点模型编辑器和进程模型编辑器。
OPNET 采用三层建模机制,最底层为进程(Process)模型,以状态机来描述协议;其次为节点(Node)模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性。
每个网络对象(链路除外)都是一个节点模型,它由一个或多个模块(Modules) 组成,模块与模块之间通过包流(Packet streams)或状态线相连。而模块实际上为进程模型,它通过状态转移图(STD, State Transition Diagram)来描述模块的行为。
现在让我们来看看第一层网络服务器的结构:
在项目编辑器中鼠标双击node_31(服务器节点),这时打开一个新的节点模型编辑器窗口,如图17所示:
文案大全
实用标准
图17为以太网服务器的内部结构,它由几个模块以及连接模块的包流和状态线组成。在仿真过程中,来自客户端的数据包被收信机hub_rx_0_0 接收,然后由下至上穿过协议栈到application 模块。经过处理后,又沿原路返回至发信机hub_tx_0_0,最后被传输到客户端,如图18 所示:
图18. 包的输入输出接口模块―收发机
接下来,我们来看看传输适应层tpal 模块的内容。
在节点模型编辑器中的tpal 模块上双击鼠标,打开一个新的进程模型编辑器,如图19所示:
文案大全
实用标准
图19. tpal进程模型
在init 状态的上半部双击鼠标,打开它的入口代码。 在init 状态的下半部双击鼠标,打开它的出口代码。
进程中的每个状态(图中红色的或绿色的圆圈)都包含一个入口代码(enter executive)和一个出口代码(exit executive),它们由C/C++代码组成。入口代码在进入状态时执行,出口代码在离开状态时执行,如图20所示:
图20. Init 状态的入口执行代码和出口执行代码
文案大全
实用标准
关闭这两个代码窗口。
状态与状态之间通过转移线transitions 相连。转移线可以是带条件的(必须满足条件才能转移)或者无条件的(直接转移)。图21包含两条转移线,一条是从wait 状态到open 状态的条件转移线(虚线表示)。虚线中间的OPEN 条件必须满足,wait 状态才能转移到open 状态。然而,从open 状态到wait 状态的转移(实线表示)是无条件的,因此当执行完open 状态的代码后立即转移到wait 状态。
图21. 状态之间的条件转移
关闭节点和进程模型编辑器。 2) 收集统计量
在网络模型中可以对单个对象收集统计量(Object statistics),也可以对整个网络收集全局统计量(Global statistics)。
到现在为止,已经建好了网络模型,现在要根据实例要求解决的问题决定收集哪些统计量:
a) 服务器有能力处理扩展网络的额外业务负载吗?
b) 一旦与扩展网络连接,整个网络的延时性能还能够接受吗?
为了找到这些问题的答案,需要选择一个对象统计量:Server Load 和一个全局统计量:Ethernet Delay。
服务器负载(Server Load)是整个网络的性能瓶颈。下面来收集与服务器负载相关的统计量:
a) 在服务器节点(node_31)上单击鼠标右键,从弹出的菜单中选择Choose Individual Statistics。这时出现node_31 的选择统计量对话框,如图22所示(统计量对话框以树型结构显示统计量,可以清楚地了解它们的隶属关系)。
文案大全