摘 要: 在分析目前網(wǎng)絡(luò)設(shè)備仿真建模所面臨的主要問題的基礎(chǔ)上,簡要介紹了DEVS規(guī)范及其基本構(gòu)成要素;以以太網(wǎng)交換機為實例,對基于DEVS的網(wǎng)絡(luò)設(shè)備仿真建模技術(shù)進行了研究,并實現(xiàn)了仿真建模。對該網(wǎng)絡(luò)設(shè)備建模方法的優(yōu)點做了總結(jié),并就此建模方法在網(wǎng)絡(luò)設(shè)備建模中的應(yīng)用前景進行了展望。
關(guān)鍵詞: 離散事件仿真規(guī)范; 交換機; 計算機仿真; 仿真模型
?
隨著分布交互式仿真(DIS)技術(shù)的廣泛應(yīng)用,網(wǎng)絡(luò)仿真系統(tǒng)正向分布式、大規(guī)模、高復(fù)雜度的方向發(fā)展,并可能與其他類型的系統(tǒng)相互連接,以構(gòu)成更大的、更能反映真實世界的仿真系統(tǒng)。因此,網(wǎng)絡(luò)仿真系統(tǒng)的設(shè)計在規(guī)范性、可靠性、可重用性等方面提出了更高的要求。目前的通信網(wǎng)絡(luò)都是建立在包交換的基礎(chǔ)之上,因此這種通信網(wǎng)絡(luò)的網(wǎng)絡(luò)仿真系統(tǒng)都是典型的離散事件系統(tǒng),系統(tǒng)內(nèi)實體的狀態(tài)在不均勻的離散時刻發(fā)生變換,內(nèi)部機制用常規(guī)的數(shù)學(xué)方法難以描述。在工程實踐中,迫切需要一種形式化、便于轉(zhuǎn)化為程序模型的描述方法。離散事件系統(tǒng)規(guī)范說明DEVS是對離散事件系統(tǒng)的一種形式化描述,在系統(tǒng)論的一般系統(tǒng)模型的形式化基礎(chǔ)之上,提供了一種模塊化的系統(tǒng)說明方法,有利于復(fù)雜系統(tǒng)中各模型的抽象和仿真實現(xiàn)。
本文以以太網(wǎng)交換機為例,通過基于DEVS的規(guī)范說明方法將交換機模型解析成不同的子模型和耦合模型,并對交換機模型進行了仿真。
1 DEVS規(guī)范說明
DEVS的基本思想是將系統(tǒng)按功能或結(jié)構(gòu)逐步分解為多級子模型,不可再分的模型為原子模型,由子模型組合而成的模型稱為耦合模型。耦合模型中,各子模型之間的關(guān)系稱為耦合。
在復(fù)雜系統(tǒng)的建模仿真中,原子模型描述了時間和狀態(tài)的轉(zhuǎn)移,耦合模型描述了組成它的子模型以及子模型與子模型之間的相互連接關(guān)系。在這種構(gòu)造中,原子模型是基本的系統(tǒng)元件,它是完備的、獨立的單元,這樣一個模型只通過輸入、輸出接口與其他模型交互以達到模塊化。系統(tǒng)通過連接原子模型來建立耦合模型,耦合模型與其他模型組合來形成更高層次的系統(tǒng)。在復(fù)雜系統(tǒng)建模過程中,原子模型像電路元件,耦合模型像電路板,因此,建模者通過重用模塊化模型及層次化方式建造仿真模型,能顯著提高建模工程的效率和質(zhì)量。
2 基于DEVS的網(wǎng)絡(luò)實體模型仿真實例
下面以以太網(wǎng)交換機為例,詳細介紹如何用DEVS規(guī)范化模型描述方法對其進行仿真。對模型構(gòu)成的層次化、原子模型及耦合模型等概念進行說明。
以太網(wǎng)交換機實體共有四種,分別是二層交換機實體、三層交換機實體、四層交換機實體以及多層交換機實體。這里以二層交換機實體為例進行討論。
首先,依據(jù)DEVS規(guī)范化模型描述方法,可以采用 EN=
EN=
其中,N為二層交換機;TE為轉(zhuǎn)發(fā)數(shù)據(jù);AT為AT={交換機序號、型號、版本號、端口數(shù)、端口類型、生產(chǎn)廠家、RAM空間、ROM Moniter、Fresh/NVROM、IOS版本、MAC地址、支持的協(xié)議};AC,CT={物理連接、加電自檢、配置};S,S={空閑、忙}。
完成交換機實體的規(guī)范化描述之后,再來看交換機的內(nèi)部結(jié)構(gòu)以及如何來完成交換機耦合模型及其接口耦合模型。
2.1 交換機耦合模型及其組成
按照結(jié)構(gòu)劃分,以太網(wǎng)交換機可以分解為n個交換機接口和一個n×n的交換結(jié)構(gòu)。對其結(jié)構(gòu)用交換機接口、交換單元兩個子模型進行描述。以太網(wǎng)交換機耦合模型及子模型的層次結(jié)構(gòu)及輸入/輸出關(guān)系如圖1所示。
?
其中, 交換機接口模型包含有用于分別描述輸入和輸出的兩個隊列原子模型,接口個數(shù)可能隨交換機型號不同而不同。根據(jù)不同的需求交換結(jié)構(gòu)子模型可以抽象為原子模型而不作進一步分解,也可以分解為交換網(wǎng)絡(luò)和MAC表兩個子模型。下面以交換機接口耦合模型為例,詳細說明DEVS的定義方法,其他部分的模型描述也可以按此方法得出。
2.2 交換機接口耦合模型
交換機接口耦合模型及其子模型關(guān)系如圖2所示。為了處理出入網(wǎng)絡(luò)接口卡模型的數(shù)據(jù)流,將接口模型分解為兩個queue原子模型,一個用于從網(wǎng)絡(luò)接收數(shù)據(jù)幀,另一個轉(zhuǎn)發(fā)數(shù)據(jù)幀到網(wǎng)絡(luò)。這種抽象將接口的輸入輸出作為隊列模型描述。
原子模型queue隊列模型的DEVS描述為:
queue=
??? 其中:
??? X: {MAC frame, stop/response signal, done/ready signal}
??? S: { readytoProcess, waitforResponse,waitforReady, C}
??? Y: { MAC frame }
??? 隊列作為一個子系統(tǒng),它的控制和狀態(tài)變化是由交換機的內(nèi)部運行狀態(tài)機所決定的。交換機內(nèi)部運行狀態(tài)機如圖3所示。
?
由分析交換機的內(nèi)部運行狀態(tài)機得知,隊列可以使用如圖4所示的有限自動機進行描述。
??? 圖4中,隊列的各個狀態(tài)、它們之間的相互轉(zhuǎn)換關(guān)系以及所需觸發(fā)條件一目了然,據(jù)此可以給出隊列的內(nèi)部和外部轉(zhuǎn)移函數(shù)如下。
δ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
}
時間推進函數(shù)ta是沒有外部事件到達時系統(tǒng)保持的時間,這里可以不作定義。
耦合模型的主要作用在于明確模型內(nèi)、外輸入輸出的連接關(guān)系,交換機接口耦合模型可以描述如下:
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}
至此,該二層交換機的仿真建模完成。
通常對于離散系統(tǒng)的描述可以使用集合論、系統(tǒng)論的形式化方法,典型的有微分方程、有限狀態(tài)機和離散事件模型等。DEVS的優(yōu)勢在于將每一類這樣的模型所確定的系統(tǒng)的靜態(tài)和動態(tài)結(jié)構(gòu)施以特定的約束,從而確定系統(tǒng)的分解方法。使用DEVS描述模型使離散系統(tǒng)仿真不再是隨意的、個人化的藝術(shù)性工作[1]。從這個意義上說,使用DEVS描述的模型克服了其他模型可復(fù)用性差、不規(guī)范以及互操作性差等缺點,以更強的規(guī)范性、確定性和可復(fù)用性等優(yōu)點,更好地解決了由于網(wǎng)絡(luò)流量的動態(tài)變化、統(tǒng)計復(fù)用的隨機性及網(wǎng)絡(luò)的規(guī)模擴展所帶來的新問題。
目前,基于DEVS的網(wǎng)絡(luò)系統(tǒng)建模主要集中在性能仿真方面,針對功能模擬的研究比較少。其中,形式化描述比較難于理解是出現(xiàn)這種情況的原因之一。近年來,在基于DEVS的可視化建模方面的研究成果在一定程度上彌補了這方面的不足[3]。
此外,對于網(wǎng)絡(luò)仿真系統(tǒng)而言,模型抽象到何種層次,能夠既比較好地反映真實狀況,又不至于產(chǎn)生過多的運算量是一個值得深入研究的工程實踐問題。
綜上,基于DEVS的網(wǎng)絡(luò)設(shè)備仿真模型,采用了DEVS這種形式化的仿真建模方法,使網(wǎng)絡(luò)通信交換機這種離散系統(tǒng)的仿真建模得到規(guī)范化,其準確性和可復(fù)用性是不言而喻的。在標準化的趨勢下,基于DEVS的仿真方法可望在網(wǎng)絡(luò)仿真和模擬中發(fā)揮更重要的作用。
?
參考文獻
[1] ?黃柯棣,張金槐.系統(tǒng)仿真技術(shù). 長沙:國防科技大學(xué)出版社,1998.
[2] ?Zeigler B P. 制模與仿真理論. 李育才譯. 北京:機械工業(yè)出版社,1984.
[3] ?劉忠,鄧蘇. DEVS的面向?qū)ο罂梢暬? 計算機仿真,2001,18(1).
[4] ?劉寶宏,黃柯棣.基于 DEVS 的多分辨率建模形式化描述規(guī)范研究,系統(tǒng)仿真學(xué)報, 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.
?