一种基于DEVS的网络设备仿真模型
在分析目前网络设备仿真建模所面临的主要问题的基础上,简要介绍了DEVS规范及其基本构成要素;以以太网交换机为实例,对基于DEVS的网络设备仿真建模技术进行了研究,并实现了仿真建模。对该网络设备建模方法的优点做了总结,并就此建模方法在网络设备建模中的应用前景进行了展望。
关键词: 离散事件仿真规范; 交换机; 计算机仿真; 仿真模型
随着分布交互式仿真(DIS)技术的广泛应用,网络仿真系统正向分布式、大规模、高复杂度的方向发展,并可能与其他类型的系统相互连接,以构成更大的、更能反映真实世界的仿真系统。因此,网络仿真系统的设计在规范性、可靠性、可重用性等方面提出了更高的要求。目前的通信网络都是建立在包交换的基础之上,因此这种通信网络的网络仿真系统都是典型的离散事件系统,系统内实体的状态在不均匀的离散时刻发生变换,内部机制用常规的数学方法难以描述。在工程实践中,迫切需要一种形式化、便于转化为程序模型的描述方法。离散事件系统规范说明DEVS是对离散事件系统的一种形式化描述,在系统论的一般系统模型的形式化基础之上,提供了一种模块化的系统说明方法,有利于复杂系统中各模型的抽象和仿真实现。
本文以以太网交换机为例,通过基于DEVS的规范说明方法将交换机模型解析成不同的子模型和耦合模型,并对交换机模型进行了仿真。
1 DEVS规范说明
DEVS的基本思想是将系统按功能或结构逐步分解为多级子模型,不可再分的模型为原子模型,由子模型组合而成的模型称为耦合模型。耦合模型中,各子模型之间的关系称为耦合。
在复杂系统的建模仿真中,原子模型描述了时间和状态的转移,耦合模型描述了组成它的子模型以及子模型与子模型之间的相互连接关系。在这种构造中,原子模型是基本的系统元件,它是完备的、独立的单元,这样一个模型只通过输入、输出接口与其他模型交互以达到模块化。系统通过连接原子模型来建立耦合模型,耦合模型与其他模型组合来形成更高层次的系统。在复杂系统建模过程中,原子模型像电路元件,耦合模型像电路板,因此,建模者通过重用模块化模型及层次化方式建造仿真模型,能显著提高建模工程的效率和质量。
2 基于DEVS的网络实体模型仿真实例
下面以以太网交换机为例,详细介绍如何用DEVS规范化模型描述方法对其进行仿真。对模型构成的层次化、原子模型及耦合模型等概念进行说明。
以太网交换机实体共有四种,分别是二层交换机实体、三层交换机实体、四层交换机实体以及多层交换机实体。这里以二层交换机实体为例进行讨论。
首先,依据DEVS规范化模型描述方法,可以采用 EN=
EN=
其中,N为二层交换机;TE为转发数据;AT为AT={交换机序号、型号、版本号、端口数、端口类型、生产厂家、RAM空间、ROM Moniter、Fresh/NVROM、IOS版本、MAC地址、支持的协议};AC,CT={物理连接、加电自检、配置};S,S={空闲、忙}。
完成交换机实体的规范化描述之后,再来看交换机的内部结构以及如何来完成交换机耦合模型及其接口耦合模型。
2.1 交换机耦合模型及其组成
按照结构划分,以太网交换机可以分解为n个交换机接口和一个n×n的交换结构。对其结构用交换机接口、交换单元两个子模型进行描述。以太网交换机耦合模型及子模型的层次结构及输入/输出关系如图1所示。
其中, 交换机接口模型包含有用于分别描述输入和输出的两个队列原子模型,接口个数可能随交换机型号不同而不同。根据不同的需求交换结构子模型可以抽象为原子模型而不作进一步分解,也可以分解为交换网络和MAC表两个子模型。下面以交换机接口耦合模型为例,详细说明DEVS的定义方法,其他部分的模型描述也可以按此方法得出。
2.2 交换机接口耦合模型
交换机接口耦合模型及其子模型关系如图2所示。为了处理出入网络接口卡模型的数据流,将接口模型分解为两个queue原子模型,一个用于从网络接收数据帧,另一个转发数据帧到网络。这种抽象将接口的输入输出作为队列模型描述。
原子模型queue队列模型的DEVS描述为:
queue=
其中:
X: {MAC frame, stop/response signal, done/ready signal}
S: { readytoProcess, waitforResponse,waitforReady, C}
Y: { MAC frame }
队列作为一个子系统,它的控制和状态变化是由交换机的内部运行状态机所决定的。交换机内部运行状态机如图3所示。
由分析交换机的内部运行状态机得知,队列可以使用如图4所示的有限自动机进行描述。
图4中,队列的各个状态、它们之间的相互转换关系以及所需触发条件一目了然,据此可以给出队列的内部和外部转移函数如下。
δint (e, s):
{
case phase:
state = nothing. /* never happens */
}
δext(e,s,x):
{
case state:
readytoProcess:
case in: send 1st element on out port, send
average size,
send average wait,state=waitforResponse
waitforResponse:
case in: add to end of queue, state= waitfor
Response
response: send on reply port,state=waitfor-
Ready
waitforReady:
case in: add to end of queue
ready: state=C
C:
case true: send 1st element on out port, send
average size, send average wait, state=
waitforResponse
false: state= readytoProcess
}
λ(s):
{
output the MAC frame
}
时间推进函数ta是没有外部事件到达时系统保持的时间,这里可以不作定义。
耦合模型的主要作用在于明确模型内、外输入输出的连接关系,交换机接口耦合模型可以描述如下:
SwitcherInterface=
X: {MAC frame,stop signal,next signal}
Y: {MAC frame}
{Md}={queueIn ,queueOut}
{Id}={IqueueIn={Switcher.in, SwitchStructure.next, SwitchStructure .stop},
IqueueOut={SwitchStructure.next,SwitchStructure.stop,
outside done signal}}
{Zid}={SwitcherInterface.in=IqueueIn. in,
SwitcherInterface.out=IqueueOut.out}
至此,该二层交换机的仿真建模完成。
通常对于离散系统的描述可以使用集合论、系统论的形式化方法,典型的有微分方程、有限状态机和离散事件模型等。DEVS的优势在于将每一类这样的模型所确定的系统的静态和动态结构施以特定的约束,从而确定系统的分解方法。使用DEVS描述模型使离散系统仿真不再是随意的、个人化的艺术性工作[1]。从这个意义上说,使用DEVS描述的模型克服了其他模型可复用性差、不规范以及互 *** 作性差等缺点,以更强的规范性、确定性和可复用性等优点,更好地解决了由于网络流量的动态变化、统计复用的随机性及网络的规模扩展所带来的新问题。
目前,基于DEVS的网络系统建模主要集中在性能仿真方面,针对功能模拟的研究比较少。其中,形式化描述比较难于理解是出现这种情况的原因之一。近年来,在基于DEVS的可视化建模方面的研究成果在一定程度上弥补了这方面的不足[3]。
此外,对于网络仿真系统而言,模型抽象到何种层次,能够既比较好地反映真实状况,又不至于产生过多的运算量是一个值得深入研究的工程实践问题。
综上,基于DEVS的网络设备仿真模型,采用了DEVS这种形式化的仿真建模方法,使网络通信交换机这种离散系统的仿真建模得到规范化,其准确性和可复用性是不言而喻的。在标准化的趋势下,基于DEVS的仿真方法可望在网络仿真和模拟中发挥更重要的作用。
参考文献
[1] 黄柯棣,张金槐.系统仿真技术. 长沙:国防科技大学出版社,1998.
[2] Zeigler B P. 制模与仿真理论. 李育才译. 北京:机械工业出版社,1984.
[3] 刘忠,邓苏. DEVS的面向对象可视化建模. 计算机仿真,2001,18(1).
[4] 刘宝宏,黄柯棣.基于 DEVS 的多分辨率建模形式化描述规范研究,系统仿真学报, 2005(17).
[5] Mohaemd Abd El-Salam, KhalilYonis, Abdul-Rahman Elsahfei. Fourth year project report: Building a library for parallel simulaTIon of networking protocols,Carleton University, Canada.
[6] PETRIU D, WAINER G. A library of layered queuing networks using the DEVS formalism, Proceedings of the SCS 1st Mediterranean MulTIconference on Modeling and SimulaTIon. Genoa, Italy. 2004.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)