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