当前位置:文档之家› 实验基于Opnet的路由协议仿真

实验基于Opnet的路由协议仿真

实验报告册课程名称: TCP/IP协议分析实验名称:实验3:基于Opnet的路由协议仿真学号: 120708112姓名:王鹏学院名称:新媒体学院班级: 12网络工程1任课教师:张宝军学期: 13-14-2学期报告分数:实验3:基于Opnet的路由协议仿真1实验目的和要求1)熟悉Opnet网络仿真软件的使用;2)RIP路由协议仿真与分析;3)OSPF路由协议仿真与分析;4)BGP路由协议仿真与分析。

2实验设备及材料操作系统:Windows 2003/XP主机网络模拟器:OPNET3实验内容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 中标准模型的命名规则为:<protocol1>_..._<protocoln>_<function>_<mod>其中<protocol>为模型用到的协议,可能同时用到几个协议<function>代表模型的大致功能<mod>模型派生类别。

选择中心节点模型为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 对话框。

图25. 确定repositories属性设置图26. 编辑Network Simulation Repositories图27. 设置Network Simulation Repositories为stdmod 优化仿真核心:仿真核心有development(调试)和optimized(优化)两种。

调试状态的仿真核心会收集仿真信息,这些信息可用来调试模块。

而优化仿真核心使运行速度加快。

系统缺省为development状态。

设置优化仿真的方法如下:在Edit 菜单中选择Preferences,在查找文本框中输入kernel_type,单击Find 按钮。

将对应的value 设置为optimized。

2) 接下来运行仿真:a) 在Simulation 菜单中选择Configure Simulationl...,或者在工具栏中选择运行仿真按钮。

b) 将仿真时间Duration 设置为0.5,即模拟执行半小时的仿真,如图28所示。

相关主题