王 霞,趙 峰
(泰州職業(yè)技術(shù)學(xué)院,江蘇 泰州 225300)
SIP協(xié)議的著色Petri網(wǎng)模型及仿真
王 霞,趙 峰
(泰州職業(yè)技術(shù)學(xué)院,江蘇 泰州 225300)
文章通過(guò)對(duì)SIP協(xié)議邀請(qǐng)交互和服務(wù)器交互的分析,利用著色Petri網(wǎng)來(lái)模擬一個(gè)SIP協(xié)議的交互過(guò)程。利用CPN TOOLS建立一個(gè)SIP交互模型,并通過(guò)仿真實(shí)驗(yàn)得到相關(guān)的數(shù)據(jù),科學(xué)地評(píng)價(jià)模型的性能。
著色petri網(wǎng);CPN Tools;仿真
著色Petri網(wǎng)作為一種形式化方法適合對(duì)復(fù)雜系統(tǒng)進(jìn)行仿真與性能評(píng)價(jià),時(shí)間信息的引入可以方便地表達(dá)系統(tǒng)的復(fù)雜信息,成熟工具CPN Tools的支持使我們對(duì)CPN模型的建立,仿真,性能評(píng)價(jià)變得簡(jiǎn)單而實(shí)用。利用CPN Tools可以從模擬過(guò)程中發(fā)生的變遷和模型經(jīng)歷的狀態(tài)中提取有效數(shù)據(jù)作為性能評(píng)價(jià)的依據(jù)。
SIP協(xié)議可以分為四層,每一層包括一組獨(dú)立的功能。自下而上結(jié)構(gòu)分為語(yǔ)法層,編碼層,傳輸層和用戶交換層。語(yǔ)法和編碼層指定一個(gè)SIP信息的結(jié)構(gòu),傳輸層通過(guò)底層傳送或者接收SIP消息。交換層位于SIP協(xié)議傳輸層的上一層,每一次信息交換包含一個(gè)客戶機(jī)請(qǐng)求和一個(gè)服務(wù)器響應(yīng)。位于頂層的是用戶層,能創(chuàng)建或終止一個(gè)SIP交互[1]。當(dāng)會(huì)話交互處在呼叫狀態(tài)的時(shí)候,下面六種情況的一種將發(fā)生。Timer A觸發(fā),交互重置定時(shí)器并重新發(fā)送邀請(qǐng)請(qǐng)求;Timer B觸發(fā),交互進(jìn)入終止?fàn)顟B(tài)(Terminated state)。
表1 SIP消息響應(yīng)屬性
當(dāng)一個(gè)邀請(qǐng)請(qǐng)求設(shè)法在網(wǎng)絡(luò)上傳送時(shí)SIP的傳輸層報(bào)告了一個(gè)錯(cuò)誤,那么交互將通知用戶錯(cuò)誤并進(jìn)入終止?fàn)顟B(tài);當(dāng)接收到一個(gè)臨時(shí)響應(yīng)信息1xx,交互會(huì)把響應(yīng)傳遞給客戶并進(jìn)入出發(fā)狀態(tài),進(jìn)而等待下一步的響應(yīng);當(dāng)接收到一個(gè)最終成功的響應(yīng)消息2xx,代表服務(wù)器已經(jīng)接受了邀請(qǐng)請(qǐng)求,交互會(huì)通過(guò)響應(yīng)信息通知客戶并進(jìn)入終止?fàn)顟B(tài)(Term inated state);當(dāng)接收到的是一個(gè)最終失敗的響應(yīng)信息(non-success response(300-699)),那代表服務(wù)器接收到邀請(qǐng)請(qǐng)求但并沒(méi)有接受邀請(qǐng)請(qǐng)求[2]。
當(dāng)進(jìn)入開始狀態(tài)(Proceeding state),客戶交互將會(huì)發(fā)生如下情況:接收到一個(gè)臨時(shí)響應(yīng)信息1xx,停留在開始狀態(tài);接收到一個(gè)最終成功的響應(yīng)(final success response),從而進(jìn)入終止?fàn)顟B(tài);接收到一個(gè)最終不成功的響應(yīng)(final nonsuccess response),創(chuàng)建和發(fā)送一個(gè)確認(rèn)信息(ACK)后轉(zhuǎn)到完成狀態(tài)(Completed state)。
完成狀態(tài)(Comp leted state)的目的是吸收300-699響應(yīng)信息,當(dāng)傳輸不可靠的時(shí)候讓服務(wù)器重新傳輸信息。當(dāng)這個(gè)狀態(tài)發(fā)生的時(shí)候,定時(shí)器Timer D觸發(fā),當(dāng)時(shí)間耗盡以后會(huì)進(jìn)入終止?fàn)顟B(tài);如果在Timer D時(shí)間耗盡前收到一個(gè)300-699響應(yīng)信息,那么交互將創(chuàng)建并發(fā)送一個(gè)確認(rèn)信息(ACK)并停留在相同的狀態(tài)。
很明顯,基于CPN的狀態(tài)機(jī)模型更加直觀,我們可以用CPN的庫(kù)所表示實(shí)體,用CPN的變遷來(lái)表示引起狀態(tài)變化的動(dòng)作。由于狀態(tài)機(jī)的不完整性和RFC3261所定義的狀態(tài)機(jī)和文字描述的不一致性,在建模之前要先確定一個(gè)SIP的邀請(qǐng)交互。接下來(lái)我們首先來(lái)描述這些方面,然后介紹在不可靠情況下的邀請(qǐng)交互的CPN模型。
服務(wù)器交互必須在被創(chuàng)建之后產(chǎn)生并發(fā)送一個(gè)100Trying應(yīng)答。當(dāng)服務(wù)器交互收到一個(gè)邀請(qǐng)請(qǐng)求并發(fā)送一個(gè)100Trying應(yīng)答時(shí)必須進(jìn)入一個(gè)狀態(tài),我們把這個(gè)新狀態(tài)定義為開始(Proceeding T)。交互被創(chuàng)建并從用戶交換層收到邀請(qǐng)請(qǐng)求后立即進(jìn)入開始狀態(tài)。這個(gè)狀態(tài)下只可能發(fā)生一個(gè)事件,就是服務(wù)器交互應(yīng)答100Trying響應(yīng)[3]。
當(dāng)客戶交互處于完成狀態(tài)時(shí),將會(huì)只收到300-699響應(yīng)。服務(wù)器交互在發(fā)送1xx響應(yīng)后還能收到300-699響應(yīng),不可靠的情況下信息可能被重新排序,1xx應(yīng)答也可能在300-699應(yīng)答后才到達(dá)。我們假設(shè)這時(shí)客戶交互丟棄臨時(shí)響應(yīng)并停留在完成狀態(tài)。
服務(wù)交互在完成狀態(tài)時(shí),Timer G可觸發(fā),我們假設(shè)Timer G在每次觸發(fā)以后重設(shè)時(shí)間。
客戶交互用到了三個(gè)定時(shí)器:A,B和D。Timer B設(shè)定了客戶交互在呼叫狀態(tài)等待服務(wù)器端的一個(gè)臨時(shí)或者最終的響應(yīng)的最大時(shí)間。Timer A只用于傳輸不可靠的時(shí)候來(lái)控制邀請(qǐng)請(qǐng)求的重傳。Timer D也只在傳輸不可靠的時(shí)候起作用。在三個(gè)定時(shí)器之間,A和B之間是相關(guān)的。Timer A每次觸發(fā),它的值都會(huì)置為前一時(shí)間的兩倍。Timer B的值是64*T1, Timer B觸發(fā)前,Timer A可以發(fā)生六次,分別間隔時(shí)間為:T1,2*T1,4*T1,8*T1,16*T1,32*T1。Timer A每觸發(fā)一次,邀請(qǐng)請(qǐng)求就重傳信息。
為了在同時(shí)間把一個(gè)服務(wù)器交互狀態(tài)和一個(gè)客戶交互狀態(tài)區(qū)分開,在服務(wù)器交互狀態(tài)的名字前面加上一個(gè)大寫的S(proceeding T狀態(tài)除外)。例如,proceeding S代表服務(wù)器交互的開始狀態(tài),proceeding 代表一個(gè)客戶交互的開始狀態(tài)。SIP響應(yīng)一個(gè)100Trying 應(yīng)答;r101代表一個(gè)101到199之間的臨時(shí)應(yīng)答;r2xx表示一個(gè)2xx應(yīng)答;r3xx表示一個(gè)300-699應(yīng)答。
圖1模型中的左面一部分,包括客戶庫(kù)所和發(fā)送邀請(qǐng),他們之間通過(guò)一個(gè)變遷聯(lián)系??蛻鬋PN庫(kù)所定義為顏色集STATEC模擬客戶邀請(qǐng)交互的狀態(tài)??蛻舻某跏紭?biāo)記為calling。INVITE Sent庫(kù)所定義為顏色集INT,用來(lái)計(jì)算已經(jīng)傳輸和重傳的邀請(qǐng)請(qǐng)求數(shù)。Send Request模擬原邀請(qǐng)請(qǐng)求怎樣通過(guò)SIP傳輸層進(jìn)行交互。(即,將請(qǐng)求庫(kù)所中的標(biāo)記置為INVITE)
圖1中右邊部分即庫(kù)所Server和r3xxResent,服務(wù)器邀請(qǐng)交互定義了五個(gè)變遷。庫(kù)所Server定義顏色集STATES,模擬服務(wù)交互的狀態(tài)Proceeding模擬一個(gè)我們附加給服務(wù)交互的新狀態(tài)Proceeding。因?yàn)榻换?chuàng)建和進(jìn)入proceeding狀態(tài)是在用戶交換層從SIP傳輸層直接收到邀請(qǐng)請(qǐng)求之后,庫(kù)所Server的初始標(biāo)記不可能是proceeding。假定初始標(biāo)記為Idle,來(lái)模擬服務(wù)器端正在從客戶端接收邀請(qǐng)請(qǐng)求。庫(kù)所r3xxResent定義為INT型,來(lái)記錄Timer G觸發(fā)時(shí)r3xx重傳的次數(shù)[4]。
我們利用CPN Tools對(duì)SIP協(xié)議的CPN模型進(jìn)行仿真模擬,確定該模型的性能指標(biāo)。同時(shí)對(duì)模型進(jìn)行結(jié)構(gòu)分析,得到標(biāo)準(zhǔn)狀態(tài)空間報(bào)告,分析是否存在死鎖。CPN Tools得出的狀態(tài)空間報(bào)告有五部分,這里分析其中重要的三種:統(tǒng)計(jì)數(shù)字分析、有界性分析和活性分析。
表2 狀態(tài)空間報(bào)告—統(tǒng)計(jì)數(shù)字分析
表2列舉了CPN Tools仿真得到的統(tǒng)計(jì)信息,State space給出了狀態(tài)空間的結(jié)點(diǎn)與連接弧的個(gè)數(shù),在該模型中分別為15075和214964,構(gòu)造該狀態(tài)空間過(guò)程花費(fèi)了300秒的時(shí)間;而sac graph為強(qiáng)連接圖,與狀態(tài)空間圖在結(jié)點(diǎn)和連接弧在個(gè)數(shù)上明顯不相等,這說(shuō)明協(xié)議模型中的數(shù)據(jù)包有很多需要重傳,重傳的平均次數(shù)不到兩次,符合協(xié)議運(yùn)行的實(shí)際情況,屬于正常差別。
表3 狀態(tài)空間報(bào)告——有界性分析
表3給出了每個(gè)庫(kù)所擁有的托肯的數(shù)量區(qū)間,如庫(kù)所A最多有12個(gè)托肯,最少可以沒(méi)有托肯,其它庫(kù)所也是有窮的。從結(jié)果可以看出,該模型中的庫(kù)所完全是符合實(shí)際應(yīng)用要求的,也就是說(shuō)所有的庫(kù)所都是有界的。
表4 狀態(tài)空間報(bào)告——活性分析
表4給出活性分析結(jié)果。Dead Markings是死標(biāo)識(shí)狀態(tài),這時(shí)任何賦值變遷都是非使能的。Dead Transition是死的變遷,即該變遷在該模型中的任何發(fā)生序列中都無(wú)法發(fā)生。由結(jié)果看,本試驗(yàn)中的模型不存在死變遷。Live Transition是活的變遷。該模型存在死標(biāo)識(shí)狀態(tài),該標(biāo)識(shí)下任何變遷都是不可以發(fā)生的,實(shí)際上這時(shí)的狀態(tài)就是數(shù)據(jù)傳輸完成的狀態(tài)。
隨著網(wǎng)絡(luò)底層技術(shù)的開發(fā)和高層應(yīng)用要求的提高,特別是ATM 和多媒體通信應(yīng)用需求的增加,網(wǎng)絡(luò)協(xié)議的研究進(jìn)入新的階段。如何有效利用網(wǎng)絡(luò)資源滿足應(yīng)用需求成為協(xié)議工程研究的熱門話題,因此相繼出現(xiàn)了許多高性能協(xié)議,它們的形式化描述提出更高的要求,如何構(gòu)建適當(dāng)?shù)腜etri 網(wǎng)模型成為新的課題。
[1] 袁崇義.Petri網(wǎng)原理[M].北京:電子工業(yè)出版社,2005.
[2] 袁崇義.Petri網(wǎng)原理與應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[3] 張智江.sip協(xié)議及其應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[4] 付強(qiáng),林闖,尹浩.基于CPN的業(yè)務(wù)流程執(zhí)行語(yǔ)言建模[J].微計(jì)算機(jī)信息,2007,23(3):4-6.
The CPN M odel and Simu lation of Sip Protocol
WANG Xia, ZHAO Feng
(Taizhou Polytechnic College, Taizhou Jiangsu 225300,China)
In this paper, we analyses the interaction of SIP-invite and Server, use the colored petri net to simulate a process of SIP Protocol interaction. We established a SIP interaction model w ith CPN tools and obtained related data w ith simulation experiment, then performance scienti f c evaluation to the model.
colored petri nets; CPN tools; simulation
TP311
A
1671-0142(2010)01-0011-03
王霞(1980-),女,江蘇泰興人,工程師.
(責(zé)任編輯 施 翔)