实验3:基于Opnet的路由协议仿真
- 格式:doc
- 大小:1.67 MB
- 文档页数:24
实验3:基于Opnet的路由协议仿真
1实验目的和要求
1) 熟悉Opnet网络仿真软件的使用;
2) RIP路由协议仿真与分析;
3) OSPF路由协议仿真与分析;
4) BGP路由协议仿真与分析。
2实验设备及材料
操作系统:Windows 2003/XP主机
网络模拟器:OPNET
3实验内容
3.1 OPNET实例
试想一下,你需要为公司内部互联网的扩展制定一个合理的方案。目前,公司在办公楼的第一层有一个星型拓扑的网络,现在要在第二层增加另一个星型拓扑网络。这时一个典型的“what-if”问题,所要解决的是确保增加的网络不会导致整个网络的连通失败,如图2所示:
图2. 计划中扩展后的网络模型
3.1.1步骤1:创建新的项目和场景
1) 打开Modeler。
2) 从File 菜单中选择New...。
3) 从弹出的下拉菜单中选择Project 并单击OK。
图3. 新建项目和场景
4) 单击OK 按钮, 出现开始向导,创建新的背景拓扑图,如图4所示:
图4. 开始向导:创建新的背景拓扑图
5) 单击Next,选定网络的范围,如图5所示:
图5. 开始向导:选择网络范围
6) 单击Next,指定网络的大小,如图6所示:
图6. 开始向导:指定网络大小
7) 单击Next,选择 OPNET 自带的对象模型家族种类,如图7所示:
图7. 开始向导:选择对象模型家族种类
8) 单击Next,再次确认环境变量,如图8所示:
图8. 设置完毕的开始向导
9) 单击完成,这时出现大小和规格如同所指定的工作空间,同时弹出一个对象模板(包含刚刚选定的对象模型家族的所有模型),如图9所示:
通过对象模板中的节点和链路模型来创建网络模型。
节点模型:代表实际的设备。
链路模型:代表连接设备的物理媒质,可以是电缆或者光缆。
可以通过对象模板中的图标直观地看出节点模型和链路模型。可以使用以下三种方法之一创建网络拓扑:
导入拓扑图。 从对象模板中选择模型并放置在工作空间中。
使用快速拓扑配置工具(Rapid Configuration)
图9. 工作空间和对象模板
3.1.2步骤2:创建网络拓扑
Topology –〉Rapid Configuration
从配置下拉列表中选择Star,单击OK...,如图11 所示:
图11. Rapid Configuration对话框
接下来需要为网络指定节点模型和链路模型:
OPNET 中标准模型的命名规则为:
选择中心节点模型为3C_SSII_1100_3300_4s_ae52_e48_ge3。这是3Com 公司的交换机。
选择周边节点模型为Sm_Int_wkstn,并设置节点个数为30。
选择链路模型为10BaseT 指定网络在工作空间中放置的位置:设置中心的 X 和Y 轴坐标为25,设置局域网的半径范围为 20。
设置好单击OK 按钮,如图12所示:
图12. 快速拓扑配置对话框
项目编辑器中出现如图13所示的网络拓扑。
图13. 快速拓扑配置后的网络模型
接下来,需要扩展这个网络,首先增加一个服务器。这时将用到第二种创建网络模型的方法:在对象模板中选择模型并放置在工作空间内。 打开对象模板,找到Sm_Int_server 对象,并将它放置在工作空间中。
图14. 从对象模板中添加Sm_Int_server 对象
接下来,需要连接服务器和星型网络:
在对象模板中找到10BaseT 链路对象。
在服务器上单击鼠标左键,移动光标,再单击星型网络的中心节点。
这时出现连接两个节点对象的链路。
单击鼠标右键结束链路创建。
图15. 连接服务器和星型网络
最后需要为网络配置业务,包括应用定义(Application definition)和业务规格定义(Profile definition),设置业务涉及的内容较复杂,本例程不作要求,因此模板中应用定义对象和业务规格定义对象的参数已经配置好(为Light database
业务),只要将他们放置在工作空间中即可。
在对象模板中找到Sm_Application_Config 对象并将其放置在工作空间中。
单击右键,光标重新移到对象模板中,单击Sm_Profile_Config,并将其放置在工作空间中,单击鼠标右键。 关闭对象模板。
图16. 配置完毕的网络模型
3.1.3步骤3:收集统计信息
1) 打开节点模型编辑器和进程模型编辑器。
OPNET 采用三层建模机制,最底层为进程(Process)模型,以状态机来描述协议;其次为节点(Node)模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性。
每个网络对象(链路除外)都是一个节点模型,它由一个或多个模块(Modules)组成,模块与模块之间通过包流(Packet streams)或状态线相连。而模块实际上为进程模型,它通过状态转移图(STD, State Transition Diagram)来描述模块的行为。
现在让我们来看看第一层网络服务器的结构:
在项目编辑器中鼠标双击node_31(服务器节点),这时打开一个新的节点模型编辑器窗口,如图17所示:
图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所示(统计量对话框以树型结构显示统计量,可以清楚地了解它们的隶属关系)。
b) 单击Node Statistics->Ethernet,选择Load(bits/sec)统计量,如图22。
c) 单击OK 关闭对话框。
图22. 选择结果统计量
全局统计量可以用来收集整个网络的信息。下面,我们通过选择全局Delay
统计量来查看整个网络的延时性能。
d) 在网络编辑器的工作空间(避免指到对象)上单击鼠标右键,从弹出的菜单中选择Choose Individual Statistics,图23。
e) 单击Gobal Statistics 树型结构,找到并点开Ethernet 节点统计量,图24。
f) 选中Delay(sec)统计量,图24。
g) 单击OK 按钮关闭对话框。
图23. 设置网络全局统计量
图24. 选择网络全局延时统计量
3.1.4步骤4:运行仿真
下面,可以准备运行仿真了。
1) 首先,需要确定repositories属性设置正确:
a) 在Edit 菜单中选择Preferences。
b) 在查找文本框中输入“repositories”,单击Find 按钮,图25。
c) 在弹出的对话框的左下角单击Insert 按钮,在文本框中输入stdmod,然后回车,图26、27。
d) 单击OK 关闭repositories 和Preferences 对话框。