王 霞,趙 峰
(泰州職業技術學院,江蘇 泰州 225300)
SIP協議的著色Petri網模型及仿真
王 霞,趙 峰
(泰州職業技術學院,江蘇 泰州 225300)
文章通過對SIP協議邀請交互和服務器交互的分析,利用著色Petri網來模擬一個SIP協議的交互過程。利用CPN TOOLS建立一個SIP交互模型,并通過仿真實驗得到相關的數據,科學地評價模型的性能。
著色petri網;CPN Tools;仿真
著色Petri網作為一種形式化方法適合對復雜系統進行仿真與性能評價,時間信息的引入可以方便地表達系統的復雜信息,成熟工具CPN Tools的支持使我們對CPN模型的建立,仿真,性能評價變得簡單而實用。利用CPN Tools可以從模擬過程中發生的變遷和模型經歷的狀態中提取有效數據作為性能評價的依據。
SIP協議可以分為四層,每一層包括一組獨立的功能。自下而上結構分為語法層,編碼層,傳輸層和用戶交換層。語法和編碼層指定一個SIP信息的結構,傳輸層通過底層傳送或者接收SIP消息。交換層位于SIP協議傳輸層的上一層,每一次信息交換包含一個客戶機請求和一個服務器響應。位于頂層的是用戶層,能創建或終止一個SIP交互[1]。當會話交互處在呼叫狀態的時候,下面六種情況的一種將發生。Timer A觸發,交互重置定時器并重新發送邀請請求;Timer B觸發,交互進入終止狀態(Terminated state)。

表1 SIP消息響應屬性
當一個邀請請求設法在網絡上傳送時SIP的傳輸層報告了一個錯誤,那么交互將通知用戶錯誤并進入終止狀態;當接收到一個臨時響應信息1xx,交互會把響應傳遞給客戶并進入出發狀態,進而等待下一步的響應;當接收到一個最終成功的響應消息2xx,代表服務器已經接受了邀請請求,交互會通過響應信息通知客戶并進入終止狀態(Term inated state);當接收到的是一個最終失敗的響應信息(non-success response(300-699)),那代表服務器接收到邀請請求但并沒有接受邀請請求[2]。
當進入開始狀態(Proceeding state),客戶交互將會發生如下情況:接收到一個臨時響應信息1xx,停留在開始狀態;接收到一個最終成功的響應(final success response),從而進入終止狀態;接收到一個最終不成功的響應(final nonsuccess response),創建和發送一個確認信息(ACK)后轉到完成狀態(Completed state)。
完成狀態(Comp leted state)的目的是吸收300-699響應信息,當傳輸不可靠的時候讓服務器重新傳輸信息。當這個狀態發生的時候,定時器Timer D觸發,當時間耗盡以后會進入終止狀態;如果在Timer D時間耗盡前收到一個300-699響應信息,那么交互將創建并發送一個確認信息(ACK)并停留在相同的狀態。
很明顯,基于CPN的狀態機模型更加直觀,我們可以用CPN的庫所表示實體,用CPN的變遷來表示引起狀態變化的動作。由于狀態機的不完整性和RFC3261所定義的狀態機和文字描述的不一致性,在建模之前要先確定一個SIP的邀請交互。接下來我們首先來描述這些方面,然后介紹在不可靠情況下的邀請交互的CPN模型。
服務器交互必須在被創建之后產生并發送一個100Trying應答。當服務器交互收到一個邀請請求并發送一個100Trying應答時必須進入一個狀態,我們把這個新狀態定義為開始(Proceeding T)。交互被創建并從用戶交換層收到邀請請求后立即進入開始狀態。這個狀態下只可能發生一個事件,就是服務器交互應答100Trying響應[3]。
當客戶交互處于完成狀態時,將會只收到300-699響應。服務器交互在發送1xx響應后還能收到300-699響應,不可靠的情況下信息可能被重新排序,1xx應答也可能在300-699應答后才到達。我們假設這時客戶交互丟棄臨時響應并停留在完成狀態。
服務交互在完成狀態時,Timer G可觸發,我們假設Timer G在每次觸發以后重設時間。
客戶交互用到了三個定時器:A,B和D。Timer B設定了客戶交互在呼叫狀態等待服務器端的一個臨時或者最終的響應的最大時間。Timer A只用于傳輸不可靠的時候來控制邀請請求的重傳。Timer D也只在傳輸不可靠的時候起作用。在三個定時器之間,A和B之間是相關的。Timer A每次觸發,它的值都會置為前一時間的兩倍。Timer B的值是64*T1, Timer B觸發前,Timer A可以發生六次,分別間隔時間為:T1,2*T1,4*T1,8*T1,16*T1,32*T1。Timer A每觸發一次,邀請請求就重傳信息。
為了在同時間把一個服務器交互狀態和一個客戶交互狀態區分開,在服務器交互狀態的名字前面加上一個大寫的S(proceeding T狀態除外)。例如,proceeding S代表服務器交互的開始狀態,proceeding 代表一個客戶交互的開始狀態。SIP響應一個100Trying 應答;r101代表一個101到199之間的臨時應答;r2xx表示一個2xx應答;r3xx表示一個300-699應答。
圖1模型中的左面一部分,包括客戶庫所和發送邀請,他們之間通過一個變遷聯系。客戶CPN庫所定義為顏色集STATEC模擬客戶邀請交互的狀態。客戶的初始標記為calling。INVITE Sent庫所定義為顏色集INT,用來計算已經傳輸和重傳的邀請請求數。Send Request模擬原邀請請求怎樣通過SIP傳輸層進行交互。(即,將請求庫所中的標記置為INVITE)


圖1中右邊部分即庫所Server和r3xxResent,服務器邀請交互定義了五個變遷。庫所Server定義顏色集STATES,模擬服務交互的狀態Proceeding模擬一個我們附加給服務交互的新狀態Proceeding。因為交互創建和進入proceeding狀態是在用戶交換層從SIP傳輸層直接收到邀請請求之后,庫所Server的初始標記不可能是proceeding。假定初始標記為Idle,來模擬服務器端正在從客戶端接收邀請請求。庫所r3xxResent定義為INT型,來記錄Timer G觸發時r3xx重傳的次數[4]。
我們利用CPN Tools對SIP協議的CPN模型進行仿真模擬,確定該模型的性能指標。同時對模型進行結構分析,得到標準狀態空間報告,分析是否存在死鎖。CPN Tools得出的狀態空間報告有五部分,這里分析其中重要的三種:統計數字分析、有界性分析和活性分析。

表2 狀態空間報告—統計數字分析
表2列舉了CPN Tools仿真得到的統計信息,State space給出了狀態空間的結點與連接弧的個數,在該模型中分別為15075和214964,構造該狀態空間過程花費了300秒的時間;而sac graph為強連接圖,與狀態空間圖在結點和連接弧在個數上明顯不相等,這說明協議模型中的數據包有很多需要重傳,重傳的平均次數不到兩次,符合協議運行的實際情況,屬于正常差別。

表3 狀態空間報告——有界性分析
表3給出了每個庫所擁有的托肯的數量區間,如庫所A最多有12個托肯,最少可以沒有托肯,其它庫所也是有窮的。從結果可以看出,該模型中的庫所完全是符合實際應用要求的,也就是說所有的庫所都是有界的。

表4 狀態空間報告——活性分析
表4給出活性分析結果。Dead Markings是死標識狀態,這時任何賦值變遷都是非使能的。Dead Transition是死的變遷,即該變遷在該模型中的任何發生序列中都無法發生。由結果看,本試驗中的模型不存在死變遷。Live Transition是活的變遷。該模型存在死標識狀態,該標識下任何變遷都是不可以發生的,實際上這時的狀態就是數據傳輸完成的狀態。
隨著網絡底層技術的開發和高層應用要求的提高,特別是ATM 和多媒體通信應用需求的增加,網絡協議的研究進入新的階段。如何有效利用網絡資源滿足應用需求成為協議工程研究的熱門話題,因此相繼出現了許多高性能協議,它們的形式化描述提出更高的要求,如何構建適當的Petri 網模型成為新的課題。
[1] 袁崇義.Petri網原理[M].北京:電子工業出版社,2005.
[2] 袁崇義.Petri網原理與應用[M].北京:電子工業出版社,2005.
[3] 張智江.sip協議及其應用[M].北京:電子工業出版社,2005.
[4] 付強,林闖,尹浩.基于CPN的業務流程執行語言建模[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-),女,江蘇泰興人,工程師.
(責任編輯 施 翔)