论文部分内容阅读
摘要: 近年来,随着OPNET、NS2等网络仿真工具的诞生,网络仿真的种种困难迎刃而解。其中,OPNET作为当前业界著名的网络仿真软件,在国内外的教学和工程中应用得越来越广泛,它几乎可以完成现有各种通信系统的仿真,包括核心网、接入网、无线网络、卫星网络以及各种混合型网络等。将离散事件系统仿真和网络仿真平台OPNET结合在一起对网络仿真的实现原理进行研究。
关键词: OPNET;仿真策略;通信机制
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2011)0310002-01
1 OPNET仿真工具简介
OPNET公司起源于麻省理工学院,成立于 1986年。公司发布了其第一个商业化的网络性能仿真软件,提供了具有重要意义的网络性能优化工具,使得具有预测性的网络性能管理和仿真成为了可能。OPNET公司的第一个商业化产品为Modeler,在此基础上OPNET公司又开发出了其他产品,包括ITGuru、SPGuru、 OPNET Development众以及WDMGuru。从核心技术来说,OPNET公司的全部产品都是基于Modeler的核心技术深化和发展而来的。本文所研究的网络攻击模型就是基于 OPNET Modeler开发的。
2 OPNET的仿真策略
OPNET是对离散事件系统仿真中的事件调度法仿真策略的具体应用。为了实现事件调度仿真策略,OPNET所提供的仿真核心实际上就是事件调度器(Event Scheduler),它对所有进程模块希望完成的事件以及该事件发生的时间进行列表和维护。事件调度器主要维护一个具有优先级的队列,它按照事件发生的时间对其中的工作排序,并遵循先进先出(FIFO)顺序执行事件。
2.1 仿真时间和仿真运行时间
OPNET在仿真过程中为网络系统产生了一系列的状态。模型随着时间的变化经历这些状态,这依赖于模型组件的行为和它们的相互关系。准确地说是这种变化代表了实际系统随着时间变化的功能。在OPNET仿真中总共定义了两种时间概念:仿真时间和仿真运行时间。仿真时间是指研究者所设定的实际网络系统运行的时间,仿真运行时间是指设备进行一次仿真运行所需要的物理时间。
2.2 仿真事件与仿真时间的关系
OPNET的仿真是一种基于事件调度的仿真方法,这种方法随着仿真时间的进行将仿真分解为独立的点,而事件将分别在这些点上发生。OPNET依照时间,将这样的点与事件相连。每一个事件代表了对模型中状态变化或选择的需要。
2.3 事件调度和事件列表
OPNET仿真核心通过一个全局的事件列表来实现对事件的管理。维护事件列表的目的是确保每一事件都在正确的时刻、正确的模块被执行,因此每一个事件都与特定的时间以及特定的模块相连。仿真事件列表将所有的事件按照时间的顺序保留卜来,因此当前一个事件的执行结束时,该事件即从事件列表中删除掉,且下一个事件也己经准备好执行了。等待着最先被执行的事件称为事件列表的头,最后的事件称为事件列表的尾。
事件列表专用来指列表的总体结构。从行为上分析,事件就像是存在于事件列表中,但实际上它们存储在专用的数据结构中,支持了有效的插入和提取方法,并可根据需要保留顺序。仿真核心通过有效的算法来维护这个全局的事件列表。
在仿真开始时,事件列表中至少有一个事件存在,仿真从这个事件的执行开始。初始的调试事件引发了仿真的进行,并不断地引发其它事件的执行。随着仿真的进行,事件列表就开始随着新事件的调度执行或者旧事件的取消而增大或缩小。每一次仿真都会引起数据列表长度的调整。由于未来的可知事件被调度并存放在事件列表中,只要事件列表中还有事件没有被执行,仿真就将继续进行。因此,如果列表空了,也就是最后一个事件也已经执行了,则仿真也会随之终止。
3 OPNET基于包的通信机制
通信网络仿真一个很重要的方面是对实际物理网络中数据包的流动进行模拟。针对这种需求,OPNET为我们提供了基于包的通信机制。在OPNET中,包是一种为支持信息源通信而定义的数据结构,它可以被看作对象进行动态创建、修改、检查、复制、发送、接收和销毁。该机制支持网络设备生成任何标准格式或者自定义格式的数据包,模拟实际物理网络中数据包在网络设备间的流动以及网络设备内部的处理过程,模拟实际网络协议中的组包和五、OPNET建模过程。
3.1 建立进程模型
在开发新协议或者对协议进行改动时,需要进行进程建模。作为OPNET三层建模机制的最底层,进程模型主要用来刻画节点模型里的处理器以及队列模型的行为,可以用来模拟大多数软件和硬件系统。在开发进程模型时,OPNET为我们提供了Proto-C语言,它包括有限状态机、OPNET内建核心函数以及标准C/C++语言。
3.2 建立节点模型
在建立节点模型时,进程模型将作为它的底层模型。建模中,可能有三种情况:完全使用模型库中的节点模型、基于模型库进行修改、完全开发新的进程模型。
3.3 建立网络模型
在建立网络模型中,使用链路模型和节点模型作为它的底层模型。如果针对已有的实际网络进行研究还可以使用HP网络节点管理器直接导入。
3.4 建立流量模型
流量建模一般有三种方法,包括:前景流量建模、背景路由流量建模和背景利用率流量建模。
1)前景流量建模。前景业务流量用于在仿真中对每一个包的产生、排队、传送、接收进行显性描述,考虑通信协议细节,般用来描述应用性能和协议性能。建模中可以使用模型库中的模型来修改或者使用OPNET提供的PDF编辑器首先建立分布函数再建立前景流量模型。
2)背景路由流量建模。背景路由流量用于描述一个源节点到一个或多个目的节点之间的基于IP层的网络端到端流量,它的生成和定义依赖于流量探针印robe)从实际网络中所捕捉的流量数据,使用流量矩阵进行描述。其一般用于研究容量规划、网络失效分析和协议性能分析。
3)背景利用率流量建模。它主要用于定义在链路上的流量,通常用百分比的形式来表现,表示网络中的流量占整条链路可承受的最大负载的比例。在仿真中不必对包的传送进行模拟,一般用于容量规划和应用分析。
参考文献:
[1]刘瑞叶、任洪林等,计算机仿真技术基础[M].电子工业出版社,2003.11.
[2]王恒霖、曹建国等,仿真系统的设计与应用[M].科学出版社,2003.
作者简介:
王思,男,河北人,天津工业大学理学院,研究方向:光信息科学与技术;邱理奕,男,广西人,天津工业大学理学院,研究方向:光信息科学与技术。
关键词: OPNET;仿真策略;通信机制
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2011)0310002-01
1 OPNET仿真工具简介
OPNET公司起源于麻省理工学院,成立于 1986年。公司发布了其第一个商业化的网络性能仿真软件,提供了具有重要意义的网络性能优化工具,使得具有预测性的网络性能管理和仿真成为了可能。OPNET公司的第一个商业化产品为Modeler,在此基础上OPNET公司又开发出了其他产品,包括ITGuru、SPGuru、 OPNET Development众以及WDMGuru。从核心技术来说,OPNET公司的全部产品都是基于Modeler的核心技术深化和发展而来的。本文所研究的网络攻击模型就是基于 OPNET Modeler开发的。
2 OPNET的仿真策略
OPNET是对离散事件系统仿真中的事件调度法仿真策略的具体应用。为了实现事件调度仿真策略,OPNET所提供的仿真核心实际上就是事件调度器(Event Scheduler),它对所有进程模块希望完成的事件以及该事件发生的时间进行列表和维护。事件调度器主要维护一个具有优先级的队列,它按照事件发生的时间对其中的工作排序,并遵循先进先出(FIFO)顺序执行事件。
2.1 仿真时间和仿真运行时间
OPNET在仿真过程中为网络系统产生了一系列的状态。模型随着时间的变化经历这些状态,这依赖于模型组件的行为和它们的相互关系。准确地说是这种变化代表了实际系统随着时间变化的功能。在OPNET仿真中总共定义了两种时间概念:仿真时间和仿真运行时间。仿真时间是指研究者所设定的实际网络系统运行的时间,仿真运行时间是指设备进行一次仿真运行所需要的物理时间。
2.2 仿真事件与仿真时间的关系
OPNET的仿真是一种基于事件调度的仿真方法,这种方法随着仿真时间的进行将仿真分解为独立的点,而事件将分别在这些点上发生。OPNET依照时间,将这样的点与事件相连。每一个事件代表了对模型中状态变化或选择的需要。
2.3 事件调度和事件列表
OPNET仿真核心通过一个全局的事件列表来实现对事件的管理。维护事件列表的目的是确保每一事件都在正确的时刻、正确的模块被执行,因此每一个事件都与特定的时间以及特定的模块相连。仿真事件列表将所有的事件按照时间的顺序保留卜来,因此当前一个事件的执行结束时,该事件即从事件列表中删除掉,且下一个事件也己经准备好执行了。等待着最先被执行的事件称为事件列表的头,最后的事件称为事件列表的尾。
事件列表专用来指列表的总体结构。从行为上分析,事件就像是存在于事件列表中,但实际上它们存储在专用的数据结构中,支持了有效的插入和提取方法,并可根据需要保留顺序。仿真核心通过有效的算法来维护这个全局的事件列表。
在仿真开始时,事件列表中至少有一个事件存在,仿真从这个事件的执行开始。初始的调试事件引发了仿真的进行,并不断地引发其它事件的执行。随着仿真的进行,事件列表就开始随着新事件的调度执行或者旧事件的取消而增大或缩小。每一次仿真都会引起数据列表长度的调整。由于未来的可知事件被调度并存放在事件列表中,只要事件列表中还有事件没有被执行,仿真就将继续进行。因此,如果列表空了,也就是最后一个事件也已经执行了,则仿真也会随之终止。
3 OPNET基于包的通信机制
通信网络仿真一个很重要的方面是对实际物理网络中数据包的流动进行模拟。针对这种需求,OPNET为我们提供了基于包的通信机制。在OPNET中,包是一种为支持信息源通信而定义的数据结构,它可以被看作对象进行动态创建、修改、检查、复制、发送、接收和销毁。该机制支持网络设备生成任何标准格式或者自定义格式的数据包,模拟实际物理网络中数据包在网络设备间的流动以及网络设备内部的处理过程,模拟实际网络协议中的组包和五、OPNET建模过程。
3.1 建立进程模型
在开发新协议或者对协议进行改动时,需要进行进程建模。作为OPNET三层建模机制的最底层,进程模型主要用来刻画节点模型里的处理器以及队列模型的行为,可以用来模拟大多数软件和硬件系统。在开发进程模型时,OPNET为我们提供了Proto-C语言,它包括有限状态机、OPNET内建核心函数以及标准C/C++语言。
3.2 建立节点模型
在建立节点模型时,进程模型将作为它的底层模型。建模中,可能有三种情况:完全使用模型库中的节点模型、基于模型库进行修改、完全开发新的进程模型。
3.3 建立网络模型
在建立网络模型中,使用链路模型和节点模型作为它的底层模型。如果针对已有的实际网络进行研究还可以使用HP网络节点管理器直接导入。
3.4 建立流量模型
流量建模一般有三种方法,包括:前景流量建模、背景路由流量建模和背景利用率流量建模。
1)前景流量建模。前景业务流量用于在仿真中对每一个包的产生、排队、传送、接收进行显性描述,考虑通信协议细节,般用来描述应用性能和协议性能。建模中可以使用模型库中的模型来修改或者使用OPNET提供的PDF编辑器首先建立分布函数再建立前景流量模型。
2)背景路由流量建模。背景路由流量用于描述一个源节点到一个或多个目的节点之间的基于IP层的网络端到端流量,它的生成和定义依赖于流量探针印robe)从实际网络中所捕捉的流量数据,使用流量矩阵进行描述。其一般用于研究容量规划、网络失效分析和协议性能分析。
3)背景利用率流量建模。它主要用于定义在链路上的流量,通常用百分比的形式来表现,表示网络中的流量占整条链路可承受的最大负载的比例。在仿真中不必对包的传送进行模拟,一般用于容量规划和应用分析。
参考文献:
[1]刘瑞叶、任洪林等,计算机仿真技术基础[M].电子工业出版社,2003.11.
[2]王恒霖、曹建国等,仿真系统的设计与应用[M].科学出版社,2003.
作者简介:
王思,男,河北人,天津工业大学理学院,研究方向:光信息科学与技术;邱理奕,男,广西人,天津工业大学理学院,研究方向:光信息科学与技术。