包交换网络仿真
《包交换网络仿真》由会员分享,可在线阅读,更多相关《包交换网络仿真(6页珍藏版)》请在装配图网上搜索。
实验三 包交换网络仿真1、实验目的(1)学习包式编辑器,链路编辑器和探针编辑器的使用;(2)复习进程编辑器和节点编辑器的基本原则;(3)总结一些 OPNET 模型设计的基本原则;(4)设计自定义的统计量(5)对多个统计量进行统计参量研2、实验环境Windows XP 系统OPNET Modeler 10.0 仿真软件3、实验原理简单的包式交换网络的网络性能可以通过网络中业务流量的端到端的延时来衡量。本实验就是通过设计四个外围结点和一个中心节点,再通过测量它的业务量延时来了解它的网络性能。4、实验设计、实验内容(一)定义包格式简单说就是创建一个名为为 dest_addr,属性为整形,大小 32,并确保在生成数据包时不会被指定一个默认值的包。如图 1:图 1 建立一个包格式(二)外围节点设计外围节点模型生成数据包,指派数据包的目的地址并处理收到的数据包。外围节点使用数据包发生器模块来创建包,使用用户自定义的进程模块指派数据包的目的地址,将其发送到点到点的发信机,并回复来自点到点收信机的数据包。收到数据包后,进程模块将计算数据包的点到点延时,并将延时的值写入到全局统计(如图 2) 。图 2 外围节点节点模型(三)中心节点设计设计中心节点的最简单办法就是在中心节的输出包流和外围节点的地址之间建立直接关联。另一种方法是在中心节点模型中保持一张目的地址和发信机索引流之间的转换。在本模型中,更适合采用目的地址和索引流之间的直接映射。这里,将中心节点模型设计为由四个点到点收信机/发信机对和一个用于一个用于将函数包从收信机中继到发信机的进程模块组成。如图 3:图 3 中心节点节点模型 (四)创建进程模块首先就是创建中心节点的进程模型。在中心节点模型中,处理机 hub(节点名)从收信机收到一个包,它将目的地址将其转到正确的发信机模块。hub 模块将通过包流链接到收信机和发信机。数据包到达时将产生一个中断并 hub 模块接收。因为该中断是整个节点中唯一期望的中断,所以 hub 进程模型的有限状态机( FSM)只要两个状态:一个非强制的空闲状态为事件之间的等待和一个强制状态来处理数据包的代码。如图 4 的一个模型:图 4 中心节点的进程模型其中头模块代码如下:#define PK_ARRVL (op_intrpt_type()=OPC_INTRPT_STRM)这个宏定义 PK_ARRVL 条件,将比较过来的中断是否和 OPC_INTRPT_STRM 一致。功能模块代码如下:static void route_pk(void)int dest_addr;Packet* pkptr;FIN (route_pk();pkptr=op_pk_get (op_intrpt_strm();op_pk_nfd_get_int32 (pkptr,“dest_addr“,op_pk_send (pkptr,dest_addr);FOUT;该段代码在进程模块收到中断流后执行。首先,通过 op_intrpt_strm()获得数据包流的索引。op_pk_get()随后使用该数据包流索引返回到一个指向数据包指针 pkptr。接下来,通过核心函数 op_pk_nfd_get_int32()获得数据包中的目的地址。该目的地址字段名是“dest_addr” ,它是一个整形字段。op_pk_nfd_get_int32()将目的地址的值保留在本地变量 dest_addr 中。最后再由 op_pk_send()根据目的地址将包发送到点到点的发信机。其次是创建外围节点模型。外围节点的 proc 模块由初始状态和空闲状态两个进程组成。如图 5:图 5 外围节点进程模型下面就是定义 SRC_ARRVL 和 RCV_ARRVL 两个状态的宏以及状态和临时变量。/* packet stream definitions */#define RCV_IN_STRM 0#define SRC_IN_STRM 1#define XMT_OUT_STRM 0/* transition macros */#define SRC_ARRVL (op_intrpt_type()=OPC_INTRPT_STRM ete_gsh=op_stat_reg(“ETE Delay“,OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);最后就是功能模块设计:当遇到一个 xmt()指令时,有以下代码: static void xmt(void)Packet * pkptr;FIN (xmt();pkptr=op_pk_get(SRC_IN_STRM);op_pk_nfd_set_int32(pkptr,“dest_addr“,(int)op_dist_outcome(address_dist);op_pk_send(pkptr,XMT_OUT_STRM);op_pk_destroy(pkptr);FOUT;上面的代码先通过 op_pk_get()函数从生成器中得到包的指针,接着设dest_addr 字段的值为 op_dist_outcome()的返回值。op_dist_outcome()函数根据给定的输入参数的分布返回一个随机值。这里,输入参数 address_dist 是在 init 状态入口执行指令中加载的整形均匀分布。最后,使用 op_pk_send()函数将数据包发送到输出流,输出流链接到点到点的发信机。在执行 rcv()指令时,有以下代码:static void rcv(void)Packet* pkptr;double ete_delay;FIN (rcv();pkptr=op_pk_get(RCV_IN_STRM);ete_delay=op_sim_time()-op_pk_creation_time_get(pkptr);op_stat_write(ete_gsh,ete_delay);op_pk_destroy(pkptr);FOUT;上面的代码首先通过 op_pk_get()函数来接受点到点的收信机的数据包,并返回收到数据包的指针。接着通过从当前仿真时间减去创建时间来计算端到端延时,并将计算出的延时写入全局统计量 ete_delay。(五)构建网络根据已经构建的下层节点,进程和链路模型,构建一个网络模型下图 6图 6 总体网络模型其中 hub 节点是中心节点模型,其它四个 node 是外围节点模型。5 、实验结果分析应用分析工具比较两个场景下的链路利用率:如图 7图 7 两者链路利用率从图中不难看出点到点的延时都在 2.5s 是左右,而且随着时间的延续趋于平稳;链路利用率在 0.4s 左右,也随着时间的延续趋于平稳。可以看出,减少数据包的生成量就相应降低了利用率。通过这次实验,对包式编辑器,链路编辑器和探针编辑器等有了基本的认识,而且加强了关于包的编程练习,对 OPNET 的有线建模有了进一步的认识。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交换 网络 仿真
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文