无线传感器网络 第4章_第1页
无线传感器网络 第4章_第2页
无线传感器网络 第4章_第3页
无线传感器网络 第4章_第4页
无线传感器网络 第4章_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4 4章章 节点编辑器节点编辑器第4章 节点编辑器4.1 节点编辑器对象和操作节点编辑器对象和操作 4.2 节点编辑器开发界面节点编辑器开发界面 4.3 节点编辑器应用举例节点编辑器应用举例M/M/1队列仿真队列仿真 第第4 4章章 节点编辑器节点编辑器知识点:知识点:节点编辑器的对象和操作节点编辑器主菜单节点编辑器弹出菜单节点编辑器工具栏本章导读本章导读:OPNET中的网络模型主要由两种对象构成:通信节点和通信链路。这些对象的大部分内部结构对于OPNET网络级编辑是不可见的。本章主要学习通过节点编辑器开发通信节点内部结构的过程,并通过构建一个具有M/M/1队列性质的实际网络仿真来进一步学

2、习节点编辑器的使用。第第4 4章章 节点编辑器节点编辑器4.1 节点编辑器对象和操作节点编辑器对象和操作在局域网中,带网络接口的一台计算机构成网络中的一个节点;在卫星网络中,每一颗卫星、每一个使用碟型卫星天线的地球站和微波中继站等都是一个节点;在公司的电话网络中,每个固定电话设备、每个用户小交换机也都是一个节点。笼统地讲,节点是通信中的一个设施或资源,数据在节点中产生、传输、接收和进行处理。节点由硬件和软件两部分组成。一个节点至少应具有以下六种功能:第第4 4章章 节点编辑器节点编辑器 创建功能; 传输数据功能; 接收数据功能; 存储功能; 内部路由功能; 内部处理、维护和升级功能。节点编辑器

3、的对象就是网络中的设备节点模型。节点编辑器用来指定节点模型的内部结构。这些设备模型可以作为网络域中的节点对象使用(如计算机、数据包交换机和网桥等)。除了指定内部结构外,节点模型的开发者还可以定义节点模型的接口,以方便节点的使用者使用。节点模型的接口包括节点模型的属性和统计量,这些属性和统计量可以是节点模型本身的,也可以来自对节点下层对象属性和统计量的提升。第第4 4章章 节点编辑器节点编辑器在不同的仿真系统中,网络节点结构的复杂性和节点的活动范围可能存在很大差别。简单的终端(包括通过串行线路连接到客户计算机的终端)是星型网络中的节点;国家主干网上的公用包交换网络中心也可看作一个大型星型网络的节

4、点。OPNET可以创建和仿真从小型办公室网络节点到洲际和国家主干链路节点的不同等级的网络通信节点,所有节点都可以归类为几种典型的节点模型,如表4-1所示。第第4 4章章 节点编辑器节点编辑器表表4-1 典型节点模型典型节点模型 第第4 4章章 节点编辑器节点编辑器为了建立实际可用的通信网络仿真模型并保证整个网络仿真行为的准确性,OPNET必须对实际节点的内部功能进行充分和准确的模拟。对于节点的多样性,OPNET提供足够的能力来定制任何形式的通信节点。OPNET还支持节点内部结构的重用,在OPNET中共享一个设计开发团队不同成员的开发成果十分方便。第第4 4章章 节点编辑器节点编辑器4.1.1

5、节点编辑器对象节点编辑器对象OPNET的节点建模类似于搭积木,这种方式广泛地应用于建模系统中,为多数工程师所熟悉。我们知道,数据通信中的OSI参考模型也使用搭积木的方式定义,每一块积木对应于一个不同的协议层次。OPNET采用与OSI参考模型相似的分层结构,将节点模型分解成不同层次的块(Block)对象,以便与协议模型进行良好匹配。第第4 4章章 节点编辑器节点编辑器组成节点模型的不同类型的块对象通常称为模块(Module)。每一个模块包含一系列输入和输出、一些状态存储器以及通过模块输入和状态存储器计算其输出值的计算方法。在节点级,模块都是黑匣子,内部结构对用户不可见,但用户可以通过配置其属性的

6、方式来控制模块的行为。节点模型中的每一个模块代表了节点操作中的一个特定功能。第第4 4章章 节点编辑器节点编辑器节点内的数据流通过多种类型的连接线在模块间进行交换。节点模型指定了不同模块的输入和输出接口应怎样通过连接线对象进行连接。有两种类型的连接线对象,一种用于承载数据包,另一种用于传输单独数据。承载数据包的连接线称为数据包流,模块将数据包输出到数据包流上来发送数据包,或从数据包流上接收数据。传输单独数据的连接线称为统计线,模块通过向统计线输出统计量来发送单独的统计数值,或通过统计线接收输入统计量。表4-2描述了用于构建节点模型的主要模型对象,包括各种模块和连接线。第第4 4章章 节点编辑器

7、节点编辑器表表4-2 节点模型对象节点模型对象 第第4 4章章 节点编辑器节点编辑器第第4 4章章 节点编辑器节点编辑器从功能的角度看,模块代表了节点硬件或软件不同功能域的实现。对于硬件实现的功能域,整个硬件系统划分为许多独立的硬件模块,每个硬件模块对应于一个特定的硬件子系统。硬件子系统之间通过并行总线或串行线路进行连接。对于软件实现的功能域,每个软件模块对应于一个软件子层。这些软件子层之间通过函数调用或共享内存的方式进行进程间通信和数据传递。第第4 4章章 节点编辑器节点编辑器1. 模块定义模块定义模块代表了通信节点中用于数据生成、数据销毁和数据处理的部分。在OPNET中,根据在节点中功能的

8、不同,模块可以被分为五种类型:处理机、队列、数据包发生器、收信机和发信机。其中,处理机、队列和数据包发生器具有内部节点功能,而发信机和收信机具有到外部数据传输链路的连接。处理机和队列的行为可以在处理机和队列包含的进程模型中进行精确定义。其他模块的行为只能通过设置其属性值进行修改。第第4 4章章 节点编辑器节点编辑器当影响模块状态的外部事件发生时,该模块内部的算法被调用。这是OPNET事件驱动仿真机制的必然结果。例如,当一个数据包到达模块的某一个输入流,或与模块连接的某个统计量发生变化时,该模块的处理机模型内部算法被调用。有时模块也可以自己安排其内部算法被调用的时间。1) 处理机模块处理机模块是

9、节点模型中最重要的通用构造模块。处理机模块的行为可以通过设置其包含的进程模型的属性值来指定。进程模型可以响应各种外部事件和中断,它为处理机模块提供特定的功能。处理机可以通过数据包流连接到其他模型,进行数据包流的发送和接收。第第4 4章章 节点编辑器节点编辑器处理机模块主要用来对数据包进行一般性处理,该模块处理数据包的一个典型过程是:通过数据包流从输入流上接收数据包,处理该数据包,并通过输出流将该数据包发送出去。处理机模块处理完数据包后,输出的数据包可能会有短暂延时,并且数据包的内容也可能与输入有所不同。处理机模块通常用于模拟分层协议栈中单独一层的实体。分层协议栈中的每一层协议实体都进行该层的数

10、据处理,并通过对上层的接口向上层实体提供预定义的服务。在OPNET中,将一个处理机映射到协议对应层的实体上,通过处理机间数据包流的连线来模拟数据的走向,通过处理机接口来模拟下层向上层提供的服务。第第4 4章章 节点编辑器节点编辑器为处理机模块指定适当的进程模型后,处理机模块可以作为网络流量发生器使用。在网络流量发生器中,包含于进程模型的用于流量配置的属性(如到达时间间隔、数据包大小和数据到达的概率密度函数等)被提升到节点的处理机模块属性列表中。网络流量发生器有多种标准类型,例如突发流量发生器和自相似流量发生器等。第第4 4章章 节点编辑器节点编辑器虽然处理机模块经常通过成对的数据流(输入流和输

11、出流)连接到其他模块,但是并不总是如此。例如,节点可能将处理机模块作为一个控制器。这时,处理机模块通过统计线路或远端中断直接与其他模块通信。处理机模块同样可以作为数据源(发生器)或数据池使用,作为数据源或数据池的处理机模块一般只有一个输出流,或只有一个输入流。有时,处理机模块甚至根本不需要使用或处理任何数据包流,这也是可能的。第第4 4章章 节点编辑器节点编辑器节点模型既可以使用处理机模块,又可以使用队列模块来实现一般的数据处理。通常,节点模块在响应数据包到达中断或数据包生成中断时就能对数据包进行完全处理的情况下,应该使用处理机模块。如果节点模块必须缓存到达的数据包以等待随后事件的处理,或多个

12、数据包必须同时进行缓存处理,则使用附带缓存资源的队列模块将更为合适。与所有对象一样,处理机具有多个可配置的内建属性。这些属性可以通过节点编辑器提供的图形化用户界面在节点域中进行编辑。在这些属性中,有一种特殊的所谓的“模型”属性。通过“模型”属性,用户可以选择处理机包含的根进程模型。当改变一个处理机模块的“模型”属性时,处理机的 第第4 4章章 节点编辑器节点编辑器其他属性可能随之发生变化:或出现新的属性;或改变已有属性的值;或有某些属性消失。属性的变化依赖于处理机包含的进程模型中声明的属性接口。进程模型的属性接口允许进程模型开发者为处理机内建属性预定义值。当添加新的进程模型属性后,新属性将被处

13、理机对象自动继承。有时为了隐藏细节,一个处理机属性可被设置为隐藏状态,意味着虽然该属性存在并具有特定的值,但它并不会出现在节点编辑器中处理机的属性列表里。第第4 4章章 节点编辑器节点编辑器2) 队列模块队列模块和处理机模块有许多相似之处。像处理机模块一样,队列模块可以包含任何描述一个特定进程或协议的进程模型,并可以通过数据包流连接到其他模块来发送和接收数据包。进程模型影响队列模块的属性列表,就如同进程模型对处理机模块的影响一样。队列模块扩展了处理机模块的功能。队列模块与处理机模块最大的区别在于队列模块包含额外的内部资源子队列。子队列用于缓存和管理一组队列中的数据包。虽然可以使用一般的处理机模

14、块实现队列管理,但是使用子队列和子队列核心函数,用户可以更加灵活地实现数据通信中不同的排队规则。此外,子队列自动计算仿真中的队列操作相关统计量(可以使用探针编辑器直接进行采集)。第第4 4章章 节点编辑器节点编辑器每个队列模块都包含一组数量可定制的子队列。子队列是队列对象的从属对象,但它有一些专门的配置属性。它以队列的子队列属性方式包含在队列之中。子队列属性是一个复合属性,其中每个属性单元代表一个相应的子队列。通过定义子队列的访问和管理方式,OPNET能够模拟数据通信中的任何排队协议。队列模块的每个子队列长度(数据容量)默认是无限长的,可以通过在子队列中设置数据包的总量或总长度来限制队列长度。

15、队列中的相关进程决定当子队列满时应采取的行动,例如删除队列中以前的数据包为新来的数据包腾出空间,或将新到来的数据包直接丢弃。如果某个子队列已满而又试图对它进行数据插入操作,则仿真内核不会报错,而仅向用户提供一个子队列满的通知消息。第第4 4章章 节点编辑器节点编辑器多数与队列模块相关的OPNET核心函数都直接对指定的子队列进行操作(例如数据包的插入和删除,访问队列相关统计量或子队列释放等)。另一些核心函数将队列模块的性质作为一个整体进行访问,它们不单独考虑子队列的操作。队列模块内的每个子队列可以直接通过物理序号访问,也可以通过抽象的索引编号访问。抽象索引编号根据子队列间的相对关系来定义。通过抽

16、象索引编号,用户容易选出队列中的最短子队列,或选出具有最大排队延时的子队列。第第4 4章章 节点编辑器节点编辑器3) 外部系统模块外部系统模块主要用于OPNET的协同仿真,它扩展了队列模块的功能。除了队列模块具有的所有属性外,外部系统模块还提供一个被称为“External System Definition Model(外部系统定义模型)”的属性。该属性指定了在协同仿真中使用的外部系统定义(External System Definition,ESD)。如果将“外部系统定义模型”属性设置为“NONE”(默认值),则外部系统模块就是一个队列模块。当外部系统模块作为ESD模型使用时,该模块的进程模

17、型将作为外部系统与OPNET其他部分的接口。第第4 4章章 节点编辑器节点编辑器4) 发信机模块发信机模块是节点模型内各数据包流和节点外部通信链路之间的外向接口。对应于不同类型的通信链路,发信机模块有两种类型:总线型和点到点型。由于通信机制的不同,这两种类型的发信机模块行为有一定差异。发信机模块可以从一个或多个输入数据流中收集数据包并在通信链路对应的信道上中继这些数据包。发信机接收到的数据包将以相同的索引号发送到通信链路的信道上。每个信道单独定义信道数据率,信道数据率和数据包大小共同决定了数据包的传输时间。当一个数据包到达发信机而发信机对应的外部链路信道还忙于处理前一个数据包时,到达的数据包会

18、自动进入发信机中的缓冲区进行排队。第第4 4章章 节点编辑器节点编辑器在节点模型内,一个发信机模块被看作一个数据池。因此,虽然发信机模块可能拥有很多输入数据包流,但它们并不具有输出数据包流。从网络模型的角度来看,发信机模块充当了节点模型的输出端口,而输出端口与相应类型的通信链路相连接:单工和双工链路连接到点到点发信机,总线链路连接到总线发信机。图4-1显示了发信机模块与网络和节点模型的关系。第第4 4章章 节点编辑器节点编辑器图4-1 发信机模块与网络和节点模型的关系 othermodulesin nodemodelp_0p_1p_2packet streamscomm.linknodeoth

19、ernode(s) innetworkmodel第第4 4章章 节点编辑器节点编辑器在发信机模块中,外部信道是发信机的从属对象。发信机模块将信道包含在其“channel”属性中。“channel”属性的取值代表一个组合对象,它是发信机模块包含的所有信道对象的父对象。发信机的每个信道单独维护一套属性,这些属性控制数据包传输的不同方面。其中某些属性还决定发信机、收信机和链路对象之间在项目编辑器中形成通信链路时的兼容性。第第4 4章章 节点编辑器节点编辑器发信机信道对象能够计算多个统计量,这些统计量可被其他模块通过统计线路进行监控或用探针编辑器进行采集。例如,“bit_thruput”和“pk_th

20、ruput”统计量可被用于监控指定发信机信道的吞吐量和数据包的总量。发信机信道对象通过OPNET的op_ima_obj_command()核心函数响应“abort”命令(见第7章),该命令使信道对象放弃对当前数据包的传输。第第4 4章章 节点编辑器节点编辑器5) 收信机模块收信机模块是节点外的通信链路和节点内的数据包流之间的内向接口。与发信机模块一样,对应于两种不同的通信链路,有两种不同的收信机模块:点到点模块和总线型模块。由于通信机制的不同,这两种类型的收信机模块行为有一定差异。收信机模块从通信链路的相应信道接收数据包后,将数据包分配到一个或多个模块内的输出数据包流上。在给定输入信道上接收到

21、的数据包将被中继到具有相同索引号的输出流上。信道是收信机模块的从属对象。收信机将信道包含在其“channel”复合属性中。“channel”属性的取值是一个组合第第4 4章章 节点编辑器节点编辑器对象,它是收信机模块包含的所有信道对象的父对象。收信机的每个信道单独维护一套属性,这些属性控制数据包传输的不同方面。其中某些属性还决定发信机、收信机和链路对象之间在项目编辑器中形成通信链路时的兼容性。在节点模型内,一个收信机模块被看作一个数据源。因此,虽然收信机模块可能拥有很多输出数据包流,但收信机模块并不具有输入数据包流。从网络模型的角度来看,收信机模块充当了节点模型的输入端口,而输入端口与相应类型

22、的通信链路相连接:单工和双工链路连接到点到点发信机,总线链路连接到总线发信机。图4-2显示了收信机模块与网络和节点模型的关系。第第4 4章章 节点编辑器节点编辑器图4-2 收信机模块与网络和节点模型的关系 othermodulesin nodemodelp_0p_1p_2packet streamscomm.linknodeothernode(s) innetworkmodelpc_0第第4 4章章 节点编辑器节点编辑器与发信机相同,收信机信道对象也能够计算多个统计量,这些统计量可被其他模块通过统计线路进行监控或用探针编辑器进行采集。例如,通过指示收信机关联链路上数据包的接收,“busy”统计

23、量可用来进行载波侦听。又如,总线链路的“collision_status”统计量用于发现特定总线信道上多个数据包间的冲突。第第4 4章章 节点编辑器节点编辑器2. 连接线定义连接线定义连接线代表节点内不同模块间的通信路径和关联。OPNET节点模型包括三种形式的连接线:数据包流(支持模块间传递的数据流)、统计线(支持在模块间传递数值统计信息)和逻辑关联线(指示两个模块间的绑定以允许两个模块共同完成一个功能)。需要读者注意的是,虽然模块间的通信通常使用连接线完成,但模块间数据的传递还有其他方式。第第4 4章章 节点编辑器节点编辑器1) 数据包流数据包流是将数据包从源模块传送到目的模块的连接,它穿过

24、一个通信节点的硬件和软件接口。在OPNET中,数据包流默认是完全可靠的(没有数据丢失,不会引入任何错误)连接,它具有无限的带宽(一个相当大的数据包可以没有延时地通过一个数据包流)和无限的容量(无限缓存数据包)。也可以通过设置包丢失率、传输时延和传播时延等,来模拟不可靠的数据包流。第第4 4章章 节点编辑器节点编辑器OPNET提供了三种在数据包流上传输数据的方式:预定方式(Scheduled)、强制方式(Forced)和安静方式(Quiet)。在预定方式下,系统为目的模块预定一个“流中断”,这个中断将在当前时刻所有已预定的更低优先级的事件发生之后发生。在强制方式下,“流中断”在其他任何预定的事件

25、之前立即发生。在安静方式下,不会发生任何“流中断”,数据包仍然缓存在数据流中。目的模块在处理其他事件时,如果明确检测到数据包的到来,则目的模块接收数据包。对应不同的数据传输方式,OPNET使用op_pk_send()、op_pk_send_delay()、op_pk_send_force()或op_pk_send_quiet()核心函数来将数据包发送到数据包流。第第4 4章章 节点编辑器节点编辑器数据包流支持传输时延的设定,它允许设定数据包从源模块传递到目的模块的延时。延时的默认值为0,在大多数仿真情况下,这都是合理的。非零的延时值一般用于模拟一段持续的处理时间或系统的传输延时。处理机或队列模

26、块中的进程模型可以自己指定将数据包放置到输出流上所需的延时,此时的延时值是传送数据包大小或内容的函数。数据包流通常不用于传输相邻节点间的控制报文。OPNET使用其他机制来传输控制报文,例如统计线或接口控制信息(ICIs)。第第4 4章章 节点编辑器节点编辑器2) 统计线统计线同样用于将数据从源模块传送到目的模块。与数据包流传送数据包不同,统计线传送单独的数值。统计线通常作为模块间的一个接口,通过该接口源模块和目的模块共同分享特定的统计数值,并共同提供与其状态相关的信息。源模块也可通过统计线通知目的模块一个感兴趣的特定事件的到来。第第4 4章章 节点编辑器节点编辑器节点内的每个模块都具有一套本地

27、输出统计量(Local Output Statistics)。这些统计量的值在仿真中更新,并可以作为统计线的数据源。在处理机模块和队列模块包含的进程模型中,用户可以自定义一套统计量。当进程模型调用核心函数op_stat_write()时,这些统计量被更新。节点模型中的其他模块具有一套预先确定的统计量,这些统计量在适当的时候被仿真内核自动更新。注意,每条统计线仅可以传输一个输出统计量,该统计量在统计线的“源状态”属性中被指定,如图4-3所示。第第4 4章章 节点编辑器节点编辑器图4-3 统计线路源统计特性 第第4 4章章 节点编辑器节点编辑器处理机和队列模块同样具有一套作为统计线目的地的输入统计

28、量。处理机和队列模块中的进程模型通过调用核心函数op_stat_local_read()访问特定输入统计量的当前值。统计线将一个输出统计量和一个输入统计量绑定在一起,则它们的值将一起变化。一个输出统计量可以作为多条统计线的源;同样地,一个输入统计量可以作为多条统计线的目的。第第4 4章章 节点编辑器节点编辑器当统计量的值发生变化时,目的模块通过“统计中断”的方式收到通知。统计中断发生的条件可以通过统计线的“statistic triggers”属性进行控制。例如,设置一条线路当其统计量的值大于某个特定值时就引起一个中断,或当其值变得小于它先前的值时引起一个中断。如果没有满足任何中断触发条件,“

29、统计中断”就不会发生,则目的模块必须自己检测输入统计量来决定其值是否发生了变化。第第4 4章章 节点编辑器节点编辑器统计线有两种典型的使用方法:第一种方法使用统计线对通信节点中某些模块的状态进行监控。监控对象可以是发信机或收信机,也可以是队列模块,而被监控的统计量由仿真内核自动计算。第二种方法是使用统计线来实现一个模块向其他模块通知它的状态改变,这种通知通常被称为“信号量(Semaphores)”。与第一种方法不同,统计线上的统计量由处理机或队列模块中的进程来计算。第第4 4章章 节点编辑器节点编辑器3) 逻辑关联逻辑关联是一种特殊的连接,它不会在模块间传送数据。使用逻辑关联的目的是为了指示节

30、点内两个模块间的联系。逻辑关联在仿真期间并不存在。虽然逻辑关联从概念上允许连接任意两个实体,但当前它只能支持在特定类型的发信机和收信机模块之间创建关联:点到点发信机和点到点收信机之间的逻辑关联;或总线收/发信机之间的逻辑关联。除此之外,没有其他的模块支持逻辑关联。基于这种原因,逻辑关联也被称作逻辑收/发信机关联(Logical Transceiver Associations)。第第4 4章章 节点编辑器节点编辑器逻辑收/发信机关联向OPNET指示了一对发信机和收信机功能。有时,当在项目编辑器中将节点黏附到链路时,OPNET必须决定选用哪种收信机和发信机对,这时用户就应使用逻辑关联来表达这种需

31、求。对于IT Guru用户,由于节点模型的内部结构不可见,收/发信机的概念对于它们是陌生的。基于这种原因,IT Guru用户接口不允许控制收/发信机的选择,所以当开发供IT Guru终端用户使用的OPNET模型时,逻辑关联就显得十分重要了。第第4 4章章 节点编辑器节点编辑器4.1.2 节点编辑器操作节点编辑器操作节点编辑器提供支持节点模型建立和编辑的一系列操作。表4-3总结了主要的节点编辑器操作。第第4 4章章 节点编辑器节点编辑器表表4-3 节点编辑器操作节点编辑器操作 第第4 4章章 节点编辑器节点编辑器4.2 节点编辑器开发界面节点编辑器开发界面OPNET节点编辑器提供模拟节点内部功能

32、的各种必要资源。在节点编辑器中,用户可以访问不同的模块,每一种模块模拟节点行为的某一方面。节点模型通常由多个节点模块组成。图4-4展示了OPNET中一个典型的节点模型以及用于编辑节点中模块对象属性的对话框。第第4 4章章 节点编辑器节点编辑器图4-4 节点模型及其相关的对话框 第第4 4章章 节点编辑器节点编辑器4.2.1 节点编辑器主菜单介绍节点编辑器主菜单介绍节点编辑器为创建网络节点模型提供了许多操作,这些操作都可以在节点编辑器的菜单栏中找到,如图4-5所示。图4-5 节点编辑器的菜单栏 第第4 4章章 节点编辑器节点编辑器1. File(文件文件)File中包含一些与高层功能相关的操作,

33、如打开、关闭项目,保存场景,导入模型以及打印图标、报告等(可参见第3章项目编辑器File菜单的介绍)。2. Edit(编辑编辑)Edit菜单用于编辑控制程序运行的环境属性,处理文本和对象(可参见第3章项目编辑器Edit菜单的介绍)。3. Interfaces(接口接口)Interfaces菜单用于编辑节点模型到其他节点或整个网络的接口,如图4-6所示。接口菜单的主要操作如表4-4所示。第第4 4章章 节点编辑器节点编辑器图4-6 节点编辑器Interfaces菜单第第4 4章章 节点编辑器节点编辑器表表4-4 节点编辑器接口菜单主要操作节点编辑器接口菜单主要操作 第第4 4章章 节点编辑器节点

34、编辑器4. Objects(对象对象)对象菜单包含在节点内创建模块的操作,如图4-7所示。对象菜单的主要操作如表4-5所示。5. Windows(窗口窗口)窗口菜单中可进行的操作有:列出所有打开的编辑器窗口,显示或隐藏一个窗口(可参见第3章项目编辑器Windows菜单的介绍)。6. Help(帮助帮助)帮助菜单提供相关的上下文帮助、联机文档和手册以及程序的相关信息。第第4 4章章 节点编辑器节点编辑器图4-7 节点编辑器Object菜单 第第4 4章章 节点编辑器节点编辑器表表4-5 节点编辑器对象菜单主要操作节点编辑器对象菜单主要操作 第第4 4章章 节点编辑器节点编辑器4.2.2 节点编辑

35、器弹出菜单节点编辑器弹出菜单除了工具栏菜单外,节点编辑器还提供多个弹出菜单,包括工作区弹出菜单和对象弹出菜单。1. 工作区弹出菜单工作区弹出菜单节点编辑器工作区弹出菜单集成了工作区视图的缩放操作,如图4-8所示。其中,“No Zoom”返回工作区的初始化显示。初始化显示是第一次打开节点模型时的缩放层次。节点编辑器并不保存缩放层次,因此初始化显示并不会发生变化。注意,与节点编辑器不同,项目编辑器会自动保存缩放层次,故项目编辑器的工作区弹出菜单没有“No Zoom”操作。第第4 4章章 节点编辑器节点编辑器图4-8 节点编辑器工作区弹出菜单 第第4 4章章 节点编辑器节点编辑器2. 对象弹出菜单对

36、象弹出菜单节点编辑器对象弹出菜单包括设置对象属性和显示模块连通性的操作,如图4-9所示。Edit Attributes用于设置对象属性,其设置对象属性的对话框如图4-10所示。Set Name用于设置对象名称,它对应于对象属性对话框中的“name”属性。Show Connectivity用于显示各模块间的连通性,如图4-11所示。第第4 4章章 节点编辑器节点编辑器图4-9 节点编辑器对象弹出菜单 第第4 4章章 节点编辑器节点编辑器图4-10 对象弹出菜单“Edit Attributes”选项的弹出对话框 第第4 4章章 节点编辑器节点编辑器图4-11 对象弹出菜单“Show Connect

37、ivity”选项的弹出对话框 第第4 4章章 节点编辑器节点编辑器4.2.3 节点编辑器工具栏介绍节点编辑器工具栏介绍节点编辑器工具栏提供了节点编辑器常用操作的图形化快捷方式。图4-12显示了OPNET节点编辑器的工具栏。节点编辑器各工具栏按钮的主要功能如表4-6所示。 图4-12 节点编辑器工具栏 第第4 4章章 节点编辑器节点编辑器表表4-6 节点编辑器工具栏按钮的主要功能节点编辑器工具栏按钮的主要功能 第第4 4章章 节点编辑器节点编辑器第第4 4章章 节点编辑器节点编辑器4.3 节点编辑器应用举例节点编辑器应用举例M/M/1队列仿真队列仿真本节研究怎样使用节点编辑器建立一个M/M/1队

38、列模型,同时还将学习在仿真过程中怎样将过滤器应用于数据收集,以及怎样对仿真收集到的统计数据进行数学分析。M/M/1队列由先进先出(FIFO)的缓冲区组成,数据包的到达服从泊松分布。被称为服务台的处理机以设定的服务速率将数据包从缓冲区头部取出并进行处理。M/M/1队列使用随机过程中的泊松过程进行描述。第第4 4章章 节点编辑器节点编辑器M/M/1队列的性能由以下几个参数决定: 数据包到达速率; 数据包大小; 服务容量。如果数据包的平均到达速率和平均大小结合起来超过了队列的服务容量,则队列将不再稳定。不稳定的队列在实际运用中是没有意义的。本节要确保建立一个稳定的M/M/1队列模型。第第4 4章章

39、节点编辑器节点编辑器建立M/M/1队列需要使用节点编辑器中的多个对象,包括一个队列和两个处理机(数据源模块和数据池模块)。队列模块代表有限缓冲区和服务台。数据源模块生成数据包,并指定生成的速率(packets/second),以使数据包到达队列的时间间隔服从指数(泊松)分布。数据池模块用于销毁数据源不再需要的数据包(即已服务完毕的数据包)并释放内存空间。数据包流用于连接数据源模块、队列模块和数据池模块,以便在它们之间传递数据。节点编辑器中的M/M/1队列模型如图4-13所示。第第4 4章章 节点编辑器节点编辑器图4-13 M/M/1队列模型 第第4 4章章 节点编辑器节点编辑器4.3.1 M/

40、M/1队列节点的创建队列节点的创建新建一个工程名为ch04_mm1、场景名为MM1的工程。在工程启动向导中单击“Quit”按钮退出网络场景设置向导,将在节点模型建立后再来设置网络场景。在项目编辑器窗口中,执行File New命令,然后在下拉菜单中选择Node Model并单击“OK”按钮,节点编辑器在新窗口中被打开。1. 定义数据源模块定义数据源模块首先利用节点编辑器定义数据源,步骤如下:(1) 在工具栏中单击“Create Processor”按钮,放置一个处理机模块到工作区中的适当位置。第第4 4章章 节点编辑器节点编辑器(2) 右击处理机模块并选择“Edit Attributes”进行属

41、性编辑,显示的界面如图4-14所示。(3) 设置“name”属性为src;设置“process model”属性为simple_source。(4) 单击“Packet Interarrival Time”属性列,弹出Packet Interarrival Time Specification对话框,从“Distribution Name”的弹出菜单中选择“exponential”,设置数据包生成间隔时间为指数分布(泊松过程);设置Mean Outcome为1.0(数据包到达的平均间隔时间为1.0 s),单击“OK”按钮确定。(5) 改变Packet Size属性,使Distribution

42、Name为exponential,Mean Outcome为9000,单击“OK”按钮确定。这样,生成数据包的大小服从均值为9000 b/p的指数(泊松)分布。(6) 单击“OK”按钮,关闭属性对话框,完成属性设置。第第4 4章章 节点编辑器节点编辑器图4-14 src模块属性设置窗口 第第4 4章章 节点编辑器节点编辑器2. 建立队列模块建立队列模块接下来,我们建立M/M/1队列模型中的队列模块。(1) 在工具栏中,单击“Create Queue”按钮,放置一个队列模块到src模块的右侧,如图4-15所示。(2) 右击队列模块,并从弹出的快捷菜单中选择“Edit Attributes”进行属

43、性编辑,如图4-16所示。(3) 设置“name”属性为queue;设置“process model”属性为acb_fifo;确认service_rate属性设置为9600。(4) 单击“OK”按钮,完成属性设置,关闭属性对话框。第第4 4章章 节点编辑器节点编辑器图4-15 src模块和queue模块 第第4 4章章 节点编辑器节点编辑器图4-16 queue模块属性设置窗口 第第4 4章章 节点编辑器节点编辑器将queue队列的进程模型设置为acb_fifo,可以仿效M/M/1队列中的有限缓冲区和服务台机制。进程模型acb_fifo的名称反映了它的主要特点: “a”表明它是活动(Activ

44、e)的; “c”表明它可以将多个到来的数据包流集中到其惟一的排队资源上; “b”表明服务时间是数据包比特长度的函数; “fifo”表明服务次序是先进先出。双击队列模块可以打开进程编辑器,查看队列的进程模型。第第4 4章章 节点编辑器节点编辑器3. 定义数据池模块定义数据池模块合理的内存管理要求当数据包不再被需要时应该立即被销毁。因此,还需要定义一个数据池模块。(1) 在工具栏中单击“Create Processor”按钮,在队列模块的右侧放置一个处理机模块,如图4-17所示。图4-17 src、queue和sink模块第第4 4章章 节点编辑器节点编辑器(2) 右击该处理机模块,打开其属性对话

45、框,如图4-18所示。(3) 设置“name”属性为sink;设置“process model”属性为sink。(4) 单击“OK”按钮,完成属性设置,关闭对话框。至此,M/M/1队列仿真所需的所有模块都已放置到工作区并进行了正确配置。下面通过数据包流将模块之间连接起来。第第4 4章章 节点编辑器节点编辑器图4-18 sink模块属性的属性对话框 第第4 4章章 节点编辑器节点编辑器4. 创建数据包流创建数据包流创建数据包流的步骤如下:(1) 在工具栏中单击“Create Packet Stream”按钮。(2) 单击“src”模块,然后单击“queue”模块,使用包流连线建立从src模块到q

46、ueue模块的连接;同样建立从queue模块到sink模块的连接。右击结束创建,如图4-19所示。(3) 执行Interface Node Interface命令,打开Node Interfaces编辑器。在Node Type表格中将mobile和satellite的supported属性设置为no,如图4-20所示。至此,已经完成了节点模型的创建,下面保存这个创建的模型。第第4 4章章 节点编辑器节点编辑器图4-19 连接src、queue和sink模块 第第4 4章章 节点编辑器节点编辑器图4-20 Node Interfaces对话框 第第4 4章章 节点编辑器节点编辑器5. 保存节点模

47、型保存节点模型保存节点模型的步骤如下:(1) 执行File Save命令,将节点命名为ch04_mm1。(2) 单击“Save”按钮,关闭节点编辑器。第第4 4章章 节点编辑器节点编辑器4.3.2 创建网络创建网络现在,底层的节点模块已经构建好了,开始着手在项目编辑器中创建网络模型。通常,为了创建网络模型,需要先创建一个子网,并在子网内放置通信节点。在本例程中,由于M/M/1队列模型只有一个单独节点,因而可以将该节点放置在最上层的全局网中,而不再考虑子网的概念了。1. 创建自定义对象模板创建自定义对象模板首先在对象面板中创建用户自定义对象模板,步骤如下:(1) 在项目编辑器的工具栏中单击“Op

48、en Object Palette”按钮,将弹出Object Palette(对象模板)对话框,如图4-21所示。第第4 4章章 节点编辑器节点编辑器图4-21 Object Palette对话框 第第4 4章章 节点编辑器节点编辑器(2) 单击“Configure Palette”按钮,弹出Configure Palette对话框,如图4-22所示。(3) 选中“Enable model aggregation”复选项,并单击“Clear”按钮,清除所有模型图标。(4) 单击“Node Models”按钮,弹出Select Included Entries对话框,该对话框显示用户可用节点模型

49、的列表,如图4-23所示。第第4 4章章 节点编辑器节点编辑器图4-22 Configure Palette对话框 第第4 4章章 节点编辑器节点编辑器图4-23 Select Included Entries对话框 第第4 4章章 节点编辑器节点编辑器(5) 从列表中找到ch04_mm1节点模型。单击与ch04_mm1相邻的Status列,将ch04_mm1的Status设置为included。单击“OK”按钮,关闭该对话框。(6) 单击Configure Palette对话框的“OK”按钮,并保存以上设置到名为ch04_mm1_palette的新模板。新模板中就包含了先前在节点编辑器中创建

50、的ch04_mm1节点模型,如图4-24所示。第第4 4章章 节点编辑器节点编辑器图4-24 用户自定义后的新模板ch04_mm1_palette 第第4 4章章 节点编辑器节点编辑器2. 创建网络模型创建网络模型接下来,利用刚刚创建的自定义对象模板建立M/M/1网络模型,步骤如下:(1) 从新的对象模板ch04_mm1_palette中拖放一个ch04_mm1节点模型到工作区,右击结束拖放。(2) 右击该节点对象并从弹出的快捷菜单中选择Set Name,将该节点命名为m_node。节点创建完毕,接下来设置在仿真期间需要收集的统计量。第第4 4章章 节点编辑器节点编辑器4.3.3 参数选择和仿

51、真参数选择和仿真1. 参数选择参数选择首先选择要测量的仿真参数,步骤如下:(1) 在项目编辑器中右击m_node节点对象,从弹出的快捷菜单中选择“Choose Individual DES Statistics”,将弹出Choose Results对话框。(2) 展开Module Statistics queue.subqueue0 queue,选中queue size(packets)和queuing delay两个统计量,如图4-25所示。(3) 单击“OK”按钮,关闭Choose Results对话框。第第4 4章章 节点编辑器节点编辑器图4-25 选择DES统计量 第第4 4章章 节点

52、编辑器节点编辑器2. 运行仿真运行仿真仿真参数设置完毕后,便可以开始运行OPNET仿真了,步骤如下:(1) 在项目编辑器的工具栏上单击“Create/Run Discrete Event Simulation(DES)”按钮,弹出Configure/Run DES对话框。(2) 设置“Duration”为7 hours,“Seed”为431,选择Simulation Kernel为Optimized,如图4-26所示。第第4 4章章 节点编辑器节点编辑器图4-26 Configure/Run DES对话框 第第4 4章章 节点编辑器节点编辑器(3) 单击“Run”按钮运行仿真。(4) 仿真结束后弹出Simulation Sequence对话框,单击“Close”按钮关闭该对话框。根据机器配置的不同,仿真在几十秒到几分钟的时间内完成。仿真完成后,OPNET采集到队列大小(queue size)和数据包排队延时(queuing delay)两个统计量。下面对这两个统计量进行分析。第第4 4章章 节点编辑器节点编辑器4.3.4 仿真结果分析仿真结果分析对于小型网络仿真,直接在项目编辑器中查看仿真结果最为方便。当然,也可以使用OPNET提供的分析工具来查看仿真结果。(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论