《基于opnet的校园网建模与仿真毕业论文.doc》由会员分享,可在线阅读,更多相关《基于opnet的校园网建模与仿真毕业论文.doc(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 基于opnet的校园网建模与仿真毕业论文目录第一章绪论11.1 题目背景与目的11.2 国外研究现状21.3 论文研究的主要容与组织结构3第二章网络仿真技术52.1 网络仿真概述52.1.1 仿真技术的产生52.1.2仿真技术特点6 2.2仿真技术的发展现状6 2.3 网络仿真流程9第三章 网络仿真软件OPNET103.1 OPNET仿真软件概述103.2 OPNET仿真技术103.2.1 三层建模机制103.2.2 离散事件仿真机制123.2.3仿真调度机制13 3.3 OPNET通信机制13 3.4 OPNET仿真流程17第四章 校园网网络设计技术194.1 校园网的性能评价指标194.
2、1.1响应时间194.1.2网络延迟194.1.3延迟变化204.1.4吞吐量204.1.5 链路利用率204.1.6资源利用率203.1.7丢包率203.1.8 可靠性和可用性214.2 校园网的主要拓扑类型214.2.1星型拓扑结构214.2.2树型拓扑结构214.2.3总线拓扑结构224.2.4环型拓扑结构224.2.5网状型拓扑结构22 4.3 校园网关键设备与主要技术224.3.1关键设备224.3.2 主要技术26第五章 校园网建模与仿真分析295.1 校园网的建模295.1.1需求分析295.1.2网络建模295.1.3业务配置31 5.2 数据收集与仿真分析315.2.1数据收
3、集315.2.2仿真与分析32 5.3 增加节点与业务后仿真分析35 5.4 改进后校园网的仿真分析385.4.1对原有网络的改进385.4.2改进后网络的仿真分析39 5.5本章总结42结论43参考文献44致谢4646 / 48 第一章 绪论1.1论文研究的背景与目的随着网络技术的发展,传统的只传输文本信息的网络已不能满足人们对更为丰富的数据、语音、图像、视频等多媒体业务的需求,而且网络的使用也越来越广泛,用户也随之增加,这必然给网络原有设备带来冲击,因此需要加以改造以适应网络需求的发展。网络仿真是一个很有用的网络研究工具,它以系统理论、形式化理论、随机过程和统计学理论、优化理论为基础,在设
4、计阶段,仿真方法提供一个虚拟模型来预测并比较各种方案的性能,通过对不同环境和工作负荷的分析和比较,来优化系统的性能。在某些情况下,仿真是唯一可行的方法和技术。仿真方法的抽象化程度比数学分析方法低,耗费的时间比测量技术少,其低成本和有效性是其他传统方法不可替代的。随着网络新技术的不断出现和数据网络的日趋复杂,对网络仿真技术的需求必将越来越迫切,网络仿真的应用也越来越广泛,网络仿真已成为研究、规划、设计网络不可缺少的工具。校园网是现代化教学的基础性设施,作为实施教育信息化有效载体,对保障学校教育和科研管理等工作的正常有序进行,实现校际交流和资源共享方面,起着至关重要的作用,并将直接影响到教育信息化
5、建设的质量。目前,世界上大部分发达国家和部分发展中国家都建立了本国的校园网体系。美国在1999年就已有95的中小学上网,瑞典也有90以上的公立高中和绝大部分的九年制义务教育学校联网,教育信息化已成为世界发展的大趋势。随着网络技术的层出不穷,新的应用逐步普与,高校的业务需求逐步增长,另外,随着高校扩招工作的不断深入,学生与教师人数的增加,其对信息化的需求与日俱增,学生宿舍用户与教师用户数急速增长,校园网网络性能因此受到相应的影响,因此,网络升级,扩容问题被提到了重要的议事日程,对大学校园网进行改造是势在必行。然而,随着用户对网络的依赖程度的增加,网络的正常运行变得越来越重要,用户对网络可用性、稳
6、定性、响应性等提出了越来越高的要求。网络应用系统越多,网络的功能系统越复杂,出现问题所带来的损失也就越大,网络性能的问题最终会影响到用户的工作效率。经过规划设计出来的网络,不能保证其可行性,导致网络应用性能降低的因素是多方面的,而网络测试正是一种可以有效提高网络系统与运行质量的方法,在测试的基础上,建立网络行为模型,并用模拟仿真的方法建立理论到实际的桥梁,是了解网络性能的有效方法。随着网络结构日趋复杂,网络规模日趋庞大,新的网络技术层出不穷,网络的应用也越来越多样化。其中的网络规划设计以与网络升级等问题尽管在实验室中的小规模评价和真实的环境下进行实验都很有价值,但每一种都有很大的局限性,缺乏灵
7、活、扩展性,并且成本太高。因此,网络仿真作为一种新的网络研究和网络规划设计技术应运而生,无论对于网络规划设计,还是网络升级,网络的仿真研究日益显示出其重要意义。为此利用OPNTE网络仿真软件对校园网进行仿真,以传统大学校园网结构为依托,针对网络中主交换机的性能情况作为研究校园网的切入点,通过对仿真结果的分析,根据分析结果提出对网络改造方案,再次应用网络仿真软件测试改造后交换机的数据,判断改造后的网络性能是否优于原有网络。从校园网的应用出发,分析其业务主要有:FTP、 、Email、视频等。利用各个工作点,通过主交换机对服务器进行业务访问来测试交换机的能力,分析结果并从中提出改进方案以解决设备与
8、新网络业务配套的问题,减少在实际系统中试验所需要的巨大投入,减少成本并避免所谓的“牛与马”不配套的问题。1.2 国外研究状况从80年代开始,美国等发达国家就一直致力于开发商业和非商业用途的网络仿真产品。近年来,我国的网络仿真研究和应用得以发展。1997年,CERNET的网络中心开始开发自己的网络仿真软件;1998年后,我国多家单位陆续引进OPNET网络仿真软件,用于网络协议和网络设备的开发和研究,使用者大都是大学和研究院、所的研究和开发人员。网络仿真软件的操作相当复杂,使用者一般需要半年左右时间的培训和熟悉才能够熟练掌握。近年来,由于数据网络日趋复杂、网络规模日趋庞大,网络仿真技术应用于网络规
9、划和设计的需求日渐强烈。于是,网络仿真软件厂商纷纷把应用和开发重点转向网络规划和设计方面,将用户由研究开发人员转向网络规划和设计人员,简化软件界面和操作流程,强化软件的工程应用能力,特别是加强了与网络管理软件厂商的合作,开发与网管软件的接口,使得网络模型的建立逐步自动化,加快网络建模的速度。OPNET与HP网管紧密结合就是一个典型的例子。不过,应该指出,网络仿真技术在网络规划和设计方面的应用时间还不长,特别是在大型网络和复杂网络的应用方面,还处于应用的初级阶段,尚有不少重要的技术问题有待解决。网络仿真规划设计软件的使用和操作还相当复杂,还远没有达到一般网络规划设计人员经过短时间培训就能够熟练使
10、用的目标。不过,网络仿真软件厂家正在全力向这个方向努力。我国的网络仿真技术的研究从1999年起步,这主要有两个原因,一个是我国数据网络的发展较晚,对网络仿真技术的需求相对不是十分迫切;另一个原因是主流的网络仿真软件基本上产自美国,而其高端产品在1998年以前一直是对包括中国在的社会主义国家禁运。自1998年以来,由于我国数据网络迅猛发展的拉动和美国解除高端网络仿真软件出口限制的刺激,我国的网络仿真研究和应用逐步起步。1997年,CERNET网络中心开始开发自己的网络仿真软件;1998年,邮电大学、省邮电科学技术研究院、原电子部电科院、邮电部规划等单位先后引进了先进的OPNET网络仿真软件,开展
11、网络协议开发、网络规划设计应用等方面的研究工作。1.3 论文研究的主要容与组织结构本文以OPNET仿真软件为平台,对一般大学校园网的网络需求进行了分析,介绍校园网网络设计技术,涉与硬件、拓扑结构、主要性能指标、业务需求等,利用OPNET对校园网进行了建模并运行仿真,分析仿真结果,增加应用业务与结点,再进行仿真、分析。全文共分五章,章节安排如下:第一章是绪论部分,说明了研究题目的背景,简要介绍国外教育信息化和校园网的建设使用情况,国外网络仿真技术使用的现状,利用OPNET进行网络仿真的意义与目的。第二章介绍了当前网络仿真技术的现状,分析与对比了各主流软件技术的特点,对仿真技术进行了理论方面的探讨
12、。第三章介绍了本文利用到的网络仿真软件OPNET的详细情况,介绍OPNET仿真关键技术,OPNET的仿真通信机制与建模方法等。第四章介绍了当前网络技术的主要技术,与校园网建设中的主要问题,技术指标,性能评价,拓扑结构等。第五章介绍了利用OPNET对校园网进行网络建模,收集仿真数据,对其进行仿真,分析仿真数据,在原来模型上增加结点与业务,再进行仿真,分析仿真结果,得出利用OPNET对校园网建模与仿真是可行的,得到的模型与数据具有一定的工程应用参考价值。最后对全文进行了总结,并提出其中的不足与下一步的研究方向。第二章 网络仿真技术2.1网络仿真概述2.1.1 仿真技术的产生在网络迅速膨胀的今天,网
13、络研究人员一方面不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的资源 ,使网络达到最高效能。无论是哪一方面都需要对新的网络方案进行验证和分析。进行网络技术的研究一般有以下三种手段:(1) 分析方法。对所研究的对象和所依存的网络系统进行初步分析,根据一定的限定条件和合理假设,对研究对象和系统进行描述,抽象出研究对象的数学模型,利用数学分析模型问题进行求解。(2) 实验方法。设计出研究所需要的合理硬件和软件配置环境,建立测试和实验室,在现实的网络上实现对网络协议、网络行为和网络性能的研究。(3) 仿真方法。应用网络仿真软件建立所研究的网络系统的模型,然
14、后在计算机上运行这个模型,并分析运行的输出结果。然而,分析方法的有效性和精确性受限制大。当一个系统很复杂时,就无法用一些限制性假设来对系统进行描述。实验方法的局限性在于成本很高,重新配置或共享资源很难,运用起来不灵活。而仿真方法在很大程度上可以弥补前两种方法的不足。仿真方法可以根据需要设计所需的网络模型,用相对较少的时间和费用了解网络在不同条件下的各种特性,获取网络研究的丰富有效的数据。无疑,网络仿真技术是一种研究网络规划与设计的有效工具。网络仿真技术是一种通过建立网络设备、链路和协议模型,并模拟网络流量的运输,从而获取网络设计和优化所需要的网络性能数据的仿真技术。网络模型不仅可以在实施之前预
15、测拓扑和设备规划,还有助于在网络的运行中保持其有效性。网络仿真也被称为网络模拟,就是用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。因为对各种网络仿真过程来说,其中也有“模拟”的含义,即,网络仿真既可以取代真实的应用环境得出可靠的运行结果和数据,也可以模仿一个系统运行过程中的某些行为和特性。网络仿真提供了一个方便、高效的验证和分析方法,所以网络仿真技术在现代通信网络设计和研究中的作用正变得越来越大。2.1.2 网络仿真的特点网络仿真技术是一种利用数学建模和统计分析的方法模拟网络行为,从而获取特定的网络特性参数的技术。数学建模包括网络建模(网络设备、通信链路等)和流量建模
16、两个部分。模拟网络行为是指模拟网络流量在实际应用中传输、交换和复用的过程。网络仿真获取的网络特性参数包括全局性能统计量、网络节点的性能统计量、网络链路的流量和延迟等,由此既可以获取某些业务层的统计数据,也可以得到协议部某些特殊参数的统计结果。网络仿真技术有两个显著的特点:首先,网络仿真能够为网络的规划设计提供可靠的定量依据。网络仿真技术能够迅速地建立现有网络的模型,并能够方便地修改模型并进行仿真。这使得网络仿真非常适用于预测网络的性能,回能“WHATIF”这样的问题。其次,网络仿真能够验证实际方案或比较多个不同的设计方案。在网络规划设计过程中经常出现多个不同的设计方案,它们往往是各有特点,仅凭
17、主观判断,很难做出正确的选择,因此如何进行科学的比较和取舍往往是网络设计者们感到头疼的事。网络仿真能够通过为不同的设计方案建立模型,进行模拟,获取定量的网络性能预测数据,为方案的验证和比较提供可靠的依据。这里所指的设计方案可以是网络拓扑结构、路由设计、业务配置等。总而言之,网络仿真技术具备全新的模拟实验机理,使其具有在高度复杂的网络环境下得到最高可信度结果的特点:网络仿真的预测功能是其他任何方法都无法比拟的,使用围广,既可以用于现有网络的优化和扩容,也可以用于新网络的设计,而且特别适用于中大型网络的设计和优化,初期应用成本不高,而且建好的网络模型可以延续使用,后期投资还会不断下降。2.2 网络
18、仿真技术的发展现状网络仿真软件通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟,网络技术开发人员在这个平台上不仅能对网络通信、网络设备、协议、以与网络应用进行设计研究,还能对网络的性能进行分析和评价。另外,仿真软件所提供的仿真运行和结果分析功能使开发人员能快速、直观的得到网络性能参数,为优化设计或做出决策提供更便捷、有效的手段。因此,运用网络仿真软件对网络协议、算法等进行仿真已经成为计算机网络通信研究中必不可少的一部分。最著名的仿真软件OPNET是美国MIL3公司的产品。目前OPNET是世界上最先进的网络仿真开发和应用平台,近几年被第三方权威机构评选为“世界级网络仿真软件”第一名
19、。OPNET采用离散事件驱动的模拟机理,其中“事件”是指网络状态的变化,也就是说,只有网络状态发生变化时,模拟机才能工作,网络状态不发生变化的时间段不执行任何模拟工作,即被跳过。因此,与时间驱动相比,离散事件驱动的模拟机计算效率更高。OPNET采用基于包的建模机制。OPNET模型分为网络,结点和进程三个层次。用户可以在这三个层次的任何地方切入编程,建立所需的模型。OPNET提供了一个比较齐全的基本模型库(包括网络设备和链路),主要包括:Ethernet、FDDI、TR、TCP/IP、ATM、FR、PSTN、cellular phone、wireless network。OPNET支持SUN、H
20、P、IBM、SGI工作站和一般PC等硬件设备,可以运行在Unix、NT或Win95/98等操作系统上。到目前为止,全球已有多个单位采用OPNET技术进行通信网络研究开发以与网络规划。但由于OPNET是收费的商业软件,限制了其在研究领域的应用。另一知名仿真软件是NS2,NS2于1995年由DARPA资助的VINT工程开发,目前由LBL,Xerox PARC,UCB,USC/ISI等合作开发。NS2是一个完全免费的软件,因有开放体系结构,并带有大量协议库支持,尤其适合于对基于TCP/IP的网络进行仿真,在国际上享有很高的学术声誉,被世界各国的网络研究者广泛使用。NS2采用离散事件驱动机理进行仿真。
21、它的架构严格遵循OSI七层网络模型,其核源码用C语言完成,编程语言用C+和OTcL(面向对象的TcL)。C+是一个编译性语言,通过它可以有效地处理字节、等数据信息,实现各种算法,适用于具体协议的实现。OTcL是一个解释性语言,用于书写仿真脚本,只需修改网络的参数和配置,就可以对大量的场景进行比较,提高程序的效率,NS2中利用TcL机制把OTcL和C+结合起来,使得C+和OTcL能够互相直接操作对方定义的数据,C+的类和OTcL的类相对应。通过这种机制,NS2达到了仿真配置灵活性和运行效率的统一。NS2的优点在于软件包可以从网络上免费下载,所有源代码公开,是一个开放性的仿真平台。用户可以通过继承
22、NS2类来开发适合自己需要的对象模块,集成到NS2环境中去。使用NS2的另一个好处是使初学网络者能比较具体地理解网络技术、协议、路由、分组转发、拥塞控制等。但NS2仍有一些缺点。首先,相对于不断更新的仿真器,所做的文档显得过时而且帮助有限;其次,由于仿真器本身的不断升级,不同版本中模块的兼容性问题比较突出;再次,仿真节点数目很多时,NS2就需要更多的在资源,运行速度明显变慢。另外,由于使用两种编程语言,NS2的学习曲线太过陡峭,其调试工作也具有相当难度。GloMoSim(for global mobile system)仿真软件由美国UCLA大学计算机系开发。它用基于C语言的并行仿真语言Par
23、sec设计,可以实现并行离散时间驱动仿真,具有可扩展性和可编程性。新版本的GloMoSim支持纯无线网络的协议并采用分层的方法,不同层之间使用标准的API进行通信,这样实现了网络所需的基本协议栈层次。GloMoSim的优点在于使用方便,具有可测量性,可以远程控制。GloMoSim的缺点在于其分层结构太严格,要实现跨层信息的应用就显得困难。在这点上,其它两种仿真器要相对好一些。未来的GloMoSim开发目标是拥有更友好的用户界面,可以将仿真结果和仿真过程动态显示。NS2和GloMoSim是免费的,其程序的源代码也是开放的,因此受到了学术界的欢迎。OPNET是商业软件,费用较贵,但其功能强大,仿真
24、准确性也较高,主要为一些大型网络研发部门所使用。OPNET综合采用基于包的建模方法和数学分析的建模方法,可以获得较快的仿真速度。NS2则特别适用于TCP层以上的仿真,但是当仿真节点数较多时速度较慢。对同一种情况,三种网络仿真软件的仿真结果也会有一定差别。这些差别的产生主要有以下几个原因:首先,从物理层的角度来看,现实的环境和设备很难表述,各仿真软件的无线传播模型都很简单和通用化;其次,协议实现的手段各不相同,把这些协议整合进仿真系统中各不相同,在仿真试验中必然存在差异。因此仿真时要尽量使得建模符合实际要求,环境设定和初始参数的确定符合真实性原则。三种仿真软件都采用离散事件驱动作为引擎。离散事件
25、驱动的模拟机理,使其可以在高度复杂的网络环境下得到高可信度的结果。但这种机制存在着模型不严格和进程能力不够的缺点。目前已有些仿真软件采用对诸如流量或队列行为的分析模型来增强事件驱动机制,以提高仿真的准确性和扩展性。另外,并行和分布式网络仿真软件也在研究中。2.3 网络仿真流程网络仿真研究时,一般经过以下4个阶段的相应仿真工作来完成。(1) 仿真设计:利用仿真模型完成具体仿真场景,同时设计仿真实验序列:设计适当的模型输入参数,仿真统计容,仿真运行时间,仿真随机种子数个数,仿真独立运行次数,仿真启动条件,仿真终止条件,仿真的准备周期等。(2) 仿真运行:利用仿真软件工具进行仿真实验。(3) 仿真分
26、析:利用分析工具和数学知识进行仿真结果分析。利用平均、方差、最大值、最小值等数学方法和数据过滤技术进行仿真数据,分析仿真结果,在必要时将多次独立运行的仿真结果进行统计分析以解决网络的随机统计问题。(4) 仿真报告:完成网络仿真的研究报告。第三章 网络仿真软件OPNET3.1OPNET仿真软件概述OPNET公司是全球领先的决策支持工具提供商,总部在美国华盛顿特区,主要面向网络领域的专业人士,为网络专业人士提供基于软件方面的预测解决方案。OPNET公司最早是由麻省理工学院(MIT)信息决策实验室受美国军方委托而成立的。1987年OPNET公司发布了第1个商业化的网络仿真软件,提供了具有重要意义的网
27、络性能优化工具,使得具有预测性的网络性能管理和仿真成为可能。1987年以来,OPNET迅速而稳步地发展,作为高科技网络规划、仿真与分析工具,OPNET在通信、国防与计算机网络领域已经被广泛认可和采用。成千上万的组织使用OPNET软件来优化网络性能、最大限度地提高通信网络和应用的可用性。至今OPNET已经升级到了11.5以上版本。它的产品线除了Modeler外,还包括ITGuru、SP Guru、OPNET Development Kit 和WDM Guru等。OPNET的产品主要针对网络服务提供商、网络设备制造商和一般企业这3类客户。OPNET目前在全球有超过5000个客户,在全美设立了4个办
28、事处,分别在加州、北卡罗来纳州与马萨诸塞州,另外,OPNET也在全球设立了4个办事处,分别为法国的巴黎、英国的剑桥、澳大利亚的悉尼以与比利时的根特。新加坡经纬线科技公司是OPNET产品在亚洲地区的总代理。OPNET的全球部分电信级运营商客户,如AT&T、NTT DoCoMo、France Telecom等,这部分客户相对于中型企业,具有更复杂的网络结构和协议配置,因此管理起来更复杂。OPNET利用高网络智能来辅助运营商的网管人员管理网络,同时OPNET具有很好的开放性和互联性,可以和当前很多流行的网络管理和监控软件一起协同工作,如HP公司的OpnetView、Tivoli公司的NetView、
29、Cisco的Netflow以与Angilent公司的NetMetrix等。目前OPNET的应用在国还处于起步阶段,因此OPNET具有很大的研究与应用价值。3.2 OPNET仿真技术3.2.1三层建模机制网络是复杂的系统,OPNETModeler建模采用层次化和模块化的方式,将复杂的体系分解为不同的层次结构,每层完成一定的功能,一层又由多个模块组成,每个模块完成更小的任务。网络域、节点域、进程域是构建OPNET Model模型的三个层次。节点域建模的方法是基于节点模块,每个节点模块实现节点行为的某一方面,诸如数据生成、数据存储、数据的处理或选路和数据的传输等。多个节点模块的集合构成功能完整的节点
30、。模块间用包流线或统计线相连,其中包流线承载了模块间数据包的传输,统计线可实现对模块待定参数变化的监视,通过modules,paeketstreams和statistic wires的联合使用,用户可对节点的行为进行仿真。节点模块根据功能可以划分为处理器类、数据流线类和收/发机类三种。处理器类功能的实现是在进程域中通过Pro-C编程完成的。数据流类和收/发机类是通过管道阶段模型实现的。是通过管道阶段模型实现的。作为三层建模机制的最底层,进程模型是实施各种算法的载体,因此是建模仿真过程中最重要的部分,同时也是最难实现的部分。进程模型主要用来刻画节点模型里的处理机以与队列模型的行为,可以模拟大多数
31、软件或者硬件系统,包括通信协议、算法、排队策略、共享资源、特殊的业务源等。进程模型主要由状态和转移线构成。状态就是进程在仿真过程中所处的众多模式之一,状态之间是互斥和互补的,进程在某一时刻只能处在一个状态中,而所有的状态则构成了进程状态空间的全集。状态分为两类,强迫状态和非强迫状态,强迫状态是不允许停留的状态,当进程进入强迫状态时,仿真核心将强迫进程立刻转移到下一个状态。而非强迫状态不同,当进程进入非强迫状态后,将停留在此状态,等待事件、其他进程或仿真核心的触发。在每个进程模型中都至少有一个初始状态,是进程被访问的第一个状态,既可以是强迫状态,也可以是非强迫状态。每个状态都有相应的动作与其对应
32、,在Pro-C中这些动作被称为执行代码。状态的执行代码分为两部分,上面部分称为进入代码,是进程进入该状态时执行的动作;下面部分称为离开代码,是进程离开状态时执行的动作。非强迫状态被认为是系统真正的状态,因为当进程执行完非强迫状态的进入代码后,进程就处于阻塞,等待新的触发,而强迫状态是为了实际编程和状态控制的需要而提出的一种状态,进程不会停留在该状态。转移则描述了进程模型从一个状态向另一个状态转移的过程和条件,包含4个部分:源状态、目的状态、转移条件和转移执行代码。其含义为在源状态时,进程只要完成源状态的离开代码,就立即对转移条件进行判断,当转移条件成立,则执行转移代码,之后转移到目的状态。转移
33、分为条件转移和无条件转移,分别用虚线和实线表示。Proto-C语言是进程建模中支持各种算法实现的OPNET独有的语言。他包括三个方面,在限状态机,OPNET核心函数,标准的C和C。Modeler采用阶层性的模拟方式,从协议间关系看,节点模块建模完全符合OSI标准,业务层-TCP层-IP层-IP封装层-ARP层-MAC层-物理层;从网络物件层次关系看,提供了三层建模机制,最底层为进程模型,以状态机来描述协议;其次为节点模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的协议、设备、网络完全对应,全面反映了网络的相关特性。在过程层次模拟单个对象的行为,在节点层次中将其互连成
34、设备,在网络层次中将这些设备互连组成网络。几个不同的网络场景组成“项目”,用以比较不同的设计方案。OPNET中的建模工作在3种不同的层中完成,这3种层次也称为3个域。Modeler采用面向对象模拟方式,每一类节点开始都采用相同的节点模型,再针对不同的对象,设置特定的参数。基于事件出发的有限状态机建模(Finite State Machine Modeling),避免以时间出发,变成以事件出发的建模。采用离散事件驱动(Discrete Event Driven)的模拟机理,将基于包的分析方法和基于统计的数学建模方法结合,与时间驱动相比,计算效率得到了很大提高。例如在仿真路由协议时,如果要了解封包
35、是否到达,不必要每隔很短时间周期性地查看一次,而是收到封包,事件到达才去看。每一时刻,FSM 将停留在特定状态,之后收到事件,完成事件并跳转状态。例如路由协议要做的事有获取周边节点地址,建立拓扑信息,之后路由表稳定下来,在收到封包将其转发到下一个节点,这些事件中断将引起相应的状态转移。采用混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,既可得到非常细节的模拟结果,也大大提高了仿真效率。3.2.2离散事件仿真机制OPNET采用基于离散事件驱动的仿真机制。事件是指网络状态的变化。当网络状态发生变化时,模拟机进行仿真,状态不发生变化的时间段,不进行仿真,即被跳过,因而仿真时间是离散
36、的。每个仿真时间点上可以同时出现多个事件,事件的发生可以有疏密的区别。仿真中的各个模块之间通过事件中断方式传递事件信息。每当出现一个事件中断时都会触发一个描述网络系统行为或者系统处理的进程模型的运行,通过离散事件驱动的仿真机制实现了在进程级描述通信的并发性和顺序性,再加上事件发生时刻的任意性,决定了可以仿真计算机和通信网络中的任何情况下的网络状态和行为。3.2.3仿真调度机制在OPNET中使用基于事件列表的调度机制,合理安排调度事件,以便执行合理的进程来仿真网络系统的行为。调度的完成通过仿真软件的仿真核和仿真工具模块以与模型模块来实现,事件列表的调度机制具体描述如下:1 每个OPNET仿真都维
37、持一个单独的全局时间表,其中的每个项目和执行都受到全局仿真时钟的控制,仿真中以时间顺序调度事件列表中的事件,需要先执行的事件位于表的头部。当一个事件执行后将从事件列表中删除该事件。2 仿真核作为仿真的核心管理机构,采用高效的方法管理维护事件列表,按顺序通过中断将在队列头的事件交给指定模块,同时接收各个模块送来的中断,并把相应事件插入事件列表中间。仿真控制权伴随中断不断地在仿真核与模块之间转移。3 当事件同时发生时,仿真核按照下面两种方法来安排事件在事件列表中的位置:(1) 按照事件到达仿真核的时间先后顺序,先到达先处理(first come first serve)。(2) 按照事件的重要程度
38、,为事件设置不同的优先权,优先权高的先处理。3.3 opnet通信机制1. 基于包的通信a) 包:OPNET 采用基于包的建模机制(Simulation on packet level)来模拟实际物理网络中包的流动,包括在网络设备间的流动和网络设备部的处理过程;模拟实际网络协议中的组包和拆包的过程,可以生成、编辑任何标准的或自定义的包格式,利用调试功能;还可以在模拟过程中察看任何特定包的(Header)和净荷(Payload)等容。包是OPNET 为支持基于信息源(Message-oriented)通信而定义的数据结构。包被看作是对象,可以动态创建、修改、检查、拷贝、发送、接收和销毁。每个包含
39、有一些存储信息的区域。包的类型可以是有格式(formatted)或无格式(unformatted)的。一个有格式包中每个域以名字标识,作为访问(设置或者读取)包域的依据,而无格式包只为每个域指定索引号。包域可以存储不同类型的信息,如整型和双精度型用来存储数字数据;包结构类型用来封装另一个包;结构体用来嵌用户自定义的数据结构。b) 包流是支持包在同一节点模型的不同模块间传输包的物理连接,具体来说,它是源模块的输出端口和目的模块输入端口间的物理连接。包流通常分为源模块的输出流(Output stream)和目的模块的输入流(Input stream)。虽然连接到模块的包流(输入流和输出流)的个数没
40、有限制,但是OPNET 不允许群收(Fan-in)和群发(Fan-out)模式,具体来说,每个输入流只能是一个包的唯一接收者,相对应地,每个输出流只能是每个包的唯一发送者。c) OPNET 为目的模块设置了一个包队列,允许包在没有被移除之前在队列中积压。包队列是隶属于模块,而不隶属于某个包流,因此连接模块的包流可以有多个,而包队列只有一个。仿真核心不限制该队列的大小。队列采用先进先出(FIFO)模式管理包,位于队首的包才能被目的模块通过op_pk_get(stream index)获取并移除。2. 中断初始状态有以下四种:初始状态为强制状态,beginsimulationintermpt被启用
41、。因为是强制状态,仿真开始就进入下一个状态。下一个状态的进入代码不能包含和处理主流中断相关的容。1) 初始状态为强制状态,beginsimulationintemipt没有被启用。初始化仿真由主流中断引起。除完成初始化工作外还要处理该中断。2) 初始状态为非强制状态,beginSimulationintemipt被启用。此时初始化通常是放在进入执行部分,在仿真时间为零时完成初始化。之后,进程将被阻塞,知道第一次主流中断到达后才被激活。初始化的退出执行代码用于处理主流中断,也可以将主流中断交由下一个状态的进入代码或转移代码完成。3) 初始状态为非强制状态,beginsimulatinninten
42、Upt不被启用。主流中断需要完成初始化,与第一主流中断相关的进程要含在输入初始化状态中。这是不常用的初始化。初始中断可以由仿真核心beginsimulationintenupt引发,也可以由主流中断引发。一般建议使用begin simulation inienupt作为初始中断。其优点是因begin simulation intenupt发生在所有中断之前,进程以标准的方式处理所有主流中断,并且进程在执行第一次主流中断之前能够完成所有初始化的活动,这是非常重要的。通过使用begin simulation intenupt队列和处理器对象设置可能产生的初始化中断。如果包流的源模块是进程模块,则可
43、以通过op_pk_send()与其演变的3 种方式将包发送至目的模块输入流。(一) 常用的发送方式是调用op_pk_send(),当包沿着源模块输出流到达目的模块输入流时立即向目的模块触发流中断。时延由包流的“delay”属性指定,所以包到达的时刻为包发送的时刻加上包流“delay”属性的值。(二) 如果要模拟包在包流传输过程的额外延时,以此来仿真模块有限的处理速度,这时可以调用op_pk_send_delayed()函数,包将滞后指定的时间达到目的模块。(三) op_pk_send_forced()产生的事件不需在仿真核心的事件列表中排队,而是插队到事件列表的队首立刻执行,并且包不需要经历从
44、源模块输出流到目的模块输入流的延时,直接到达目的模块。(四) 前面3 种传输方式对于目的模块来说是被动的,因为包的到达会强加一个流中断通知它接收。如果目的模块希望隔一定的时间间隔主动地去从队列中取出一个包,应当采用op_pk_send_quiet()函数,采取一种静默的方式发送包。 为了支持以上各种包传输模式,还必须设置相应的包流“中断模式”(intrpt mode)属性,它有三种可选值,分别是scheduled、forced 和quiet。选择scheduled 对应采用op_pk_send()和op_pk_send_delayed()传输包,这时可以设置包流的“delay”属性;选择for
45、ced 对应采用op_pk_send_forced()传输包;选择quiet 对应采用op_pk_send_quiet()。3. 包传递与包发送的四种方式op_pk_send()、op_pk_send_delayed()、op_pk_send_forced()和op_pk_send_quiet() 相对应,包传递也有四种方式,分别是op_pk_deliver() 、op_pk_deliver_delayed()、op_pk_deliver_forced()和op_pk_deliver_quiet(),但是与包发送不同的是包传递需要指定目的模块的Objid。4. 用接口控制信息进行通信(ICI)
46、类似于基于包的通信机制。广义ICI 是与事件关联的用户自定义的数据列表。由于ICI 是以事件为载体,所以它可以用在各种有关事件调度的场合,比包的应用围更广,如同一节点模型的不同模块之间、不同节点模型之间以与同一节点模型的相同模块。基于ICI的通信机制类似于数据包的通信机制,且ICI数据结构也类似数据包,但比包结构更简单,只包含用户自定义的域,而不存在封装的概念。ICI的应用场合主要是:ICI是与事件关联的用户自定义的数据列表,ICI与事件绑定,以事件为载体,可以用在各种有关事件调度的场合,因此比包的应用围更广。如需传输额外信息又想避免使用包本身,可以使用ICI。为将ICI与一事件关联,仿真核心
47、采用一种称为绑定的机制,一个进程在一个时刻只能绑定一个ICI。绑定后进程生成的新事件都自动与绑定的ICI地址相联系。基于ICI 的通信适用于任何事件,而且常和流事件一起使用,虽然流事件源于包的传输,但是如果需要传输额外的信息又想避免使用包本身,这时可以用ICI。例如协议栈中的高层协议模块在向底层传输包的同时可以通过ICI 捎带这个包相应的服务等级和目的地址。在使用op_ici_create()创建ICI 之前必须先编辑其格式。属性名是读写ICI 数据的依据,它的作用和包域名称一样,以属性名作为输入参数可以对相应数据进行设置(op_ici_attr_set)读取(op_ici_attr_get) 和存在性判断(op_ici_attr_exists)等操作。当包被销毁时,所有包域数据所占存会被自动清空,ICI 这点与之不同,ICI 被销毁时,其封装的数据所占存需要手动清空。 将一个ICI 与一个事件关联,仿真核心采用一种称为绑定(Installation)的机制。在任意时刻每个进程一次最多只能绑定一个ICI,(op_ici_install()绑定ICI,最后一个起作用的)。调用op_ici_install(OPC_NIL)拆除。ICI 是仿真中进程动态创建的对象。以ICI 格式文件名为输入参数,调用op_ici_create(
限制150内