馬曉娟
摘要:3G通信選擇會(huì)話初始化協(xié)議SIP作為下一代的移動(dòng)網(wǎng)絡(luò)回話操控機(jī)制,在SIP協(xié)議[1]實(shí)際運(yùn)行過程中迫切需要深入研究和解決的重要問題包括:確保協(xié)議在設(shè)計(jì)上無缺陷;運(yùn)行過程穩(wěn)定且具有高可靠性。TCPN在分析和描述具有較復(fù)雜時(shí)間約束和交互行為領(lǐng)域具有相當(dāng)?shù)膬?yōu)勢(shì),本文利用TCPN這一優(yōu)勢(shì)設(shè)計(jì)完成了SIP的分層TCPN模型。
關(guān)鍵詞:會(huì)話初始化協(xié)議SIP;TCPN;建模;模型
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)25-0035-02
1 引言
第三代合作伙伴3GPP選擇SIP協(xié)議作為第三代移動(dòng)通信系統(tǒng)的IP多媒體子系統(tǒng)(IMS)心靈協(xié)議,是因其具有靈活、無縫和可擴(kuò)展性,它將逐漸成為下一代網(wǎng)絡(luò)NGN中關(guān)鍵控制協(xié)議之一。它可以滿足多媒體通信與網(wǎng)絡(luò)電話的要求,所以很多的通訊公司均先后研發(fā)出了支持SIP的服務(wù)產(chǎn)品與終端產(chǎn)品。為充分適應(yīng)這些技術(shù)的發(fā)展,SIP協(xié)議需要進(jìn)行進(jìn)一步的完善與擴(kuò)充,但是如果協(xié)議在設(shè)計(jì)環(huán)節(jié)出現(xiàn)任何問題都會(huì)給系統(tǒng)帶來難以預(yù)料的影響,所以為保證協(xié)議的穩(wěn)定性和安全性,應(yīng)在早期開發(fā)時(shí)盡可能挖掘其隱蔽的問題并找出解決方案。
目前研究SIP協(xié)議主要涉及以下幾方面:基于SIP的應(yīng)用于服務(wù)[3];SIP測(cè)試工具和方法;其他協(xié)議與SIP協(xié)同工作。因時(shí)間著色Petri網(wǎng)TCPN[2]在描述帶有較復(fù)雜的交互動(dòng)作和時(shí)間約束的系統(tǒng)過程中具有明顯的優(yōu)勢(shì),故本文以TCPN為模型分析工具進(jìn)行SIP協(xié)議分層TCPN模型的構(gòu)造,并在不同狀態(tài)下實(shí)現(xiàn)分層建模。
2 SIP協(xié)議事務(wù)處理
SIP協(xié)議通過事務(wù)進(jìn)行會(huì)話控制,其主要事務(wù)有INVITE、non_INVITE事務(wù)。INVITE事務(wù)完成會(huì)話的創(chuàng)建,non_INVITE事務(wù)則完成會(huì)話的保持與關(guān)閉。SIP端系統(tǒng)(User Agent,UA)是連接服務(wù)器從而發(fā)送服務(wù)請(qǐng)求的一種應(yīng)用程序。因UA向服務(wù)器發(fā)送服務(wù)請(qǐng)求并接收來自服務(wù)器的響應(yīng),故一個(gè)UA有UAS(用戶代理服務(wù)器)和UAC(用戶代理客戶端)兩部分,這兩部分就是SIP協(xié)議中的兩個(gè)最關(guān)鍵的參與者,UAC創(chuàng)建呼叫請(qǐng)求,UAS接受呼叫給出響應(yīng)。
在SIP的請(qǐng)求消息中,最常用的有INVITE、REGISTER、CANCEL和BYE。其響應(yīng)消息有1xx、2xx、3xx、4xx、5xx、6xx6種。SIP的呼叫方式有3種:從UAC到UAS的直接呼叫、從UAC發(fā)出的重定向呼叫、代理服務(wù)器發(fā)起呼叫。本文主要針對(duì)應(yīng)用最廣的直接呼叫進(jìn)行分層建模。
3 SIP協(xié)議TCPN分層建模
本文應(yīng)用CPN Tools[4]進(jìn)行INVITE事務(wù)的分層建模,并在不同的抽象層次上描述協(xié)議行為細(xì)化模型。這種方法在一個(gè)層次中描述協(xié)議細(xì)節(jié),有利于優(yōu)化或局部完善協(xié)議模型,也能有效把握模型規(guī)模,便于確認(rèn)模型與分析協(xié)議性質(zhì)。
SIP協(xié)議的TCPN分層模型中的10個(gè)模型頁分別處于不同的層次,每頁所描述的是對(duì)應(yīng)抽象級(jí)別上的協(xié)議功能,低級(jí)別頁作為高級(jí)別頁的替代變遷子頁。各層次模型頁功能描述如下表1。各層內(nèi)部模塊細(xì)化是依據(jù)UAS與UAC在INVITE事務(wù)執(zhí)行過程中具備的不同狀態(tài)進(jìn)行的,因在terminated狀態(tài)下協(xié)議無行為,而僅表示終止事務(wù),故沒有單獨(dú)描述此狀態(tài)。
3.1 總體流程建模
SIP協(xié)議分層TCPN模型的top page(頂級(jí)頁)如下圖1所示,它總體描述了協(xié)議運(yùn)行的網(wǎng)絡(luò)拓?fù)?,其中使用?個(gè)替代變遷對(duì)NET、UAS和UAC在協(xié)議運(yùn)行過程中的交互行為進(jìn)行描述。UAC通過NET向UAS發(fā)送REQUEST型數(shù)據(jù),UAS將RESPONSES型數(shù)據(jù)通過NET回傳給UAC。
Client頁用以描述UAC的行為,下圖2所示為其頁模型。圖中的3個(gè)替代變遷對(duì)應(yīng)的子頁能夠更加細(xì)致地描述處于不同狀態(tài)的UAC端行為。庫所Scene用以描述UAC的行為,變遷TransErr可以模擬協(xié)議在不同條件下出現(xiàn)傳輸層錯(cuò)誤時(shí)所采取的處理方式。
3.2 網(wǎng)絡(luò)層建模
下圖3所示為NET頁模型,描述的是由UAC到UAS的網(wǎng)絡(luò)傳輸建模。庫所Schannel_Em記錄的是有多少個(gè)消息被成功地傳送到了UAS端,其初值為0。庫所CollectorCTS用以收集不可靠鏈路丟失的消息。變遷RCTS與CTOS用以模擬不可靠鏈路。不可靠鏈路的具體建模方式如表2所示。
通過上述時(shí)間類型、弧表達(dá)式及防衛(wèi)表達(dá)式的應(yīng)用,可模擬存在重復(fù)數(shù)據(jù)包、延遲、丟包的不可靠鏈路。若對(duì)其某些參數(shù)做適當(dāng)?shù)男薷?,便可?dòng)態(tài)調(diào)整其鏈路的可靠性,以此來真實(shí)地模擬不可靠鏈路。
3.3 具體行為建模
本文表1中的Sproceeding、Ccalling、Cproceeding等底層模型頁描述UAS和UAC在不同狀態(tài)下處理事件的過程,也就是對(duì)協(xié)議的具體行為建模。下文以UAC端處于Ccalling狀態(tài)時(shí)的應(yīng)答消息處理行為為例,闡述具體行為的模型描述方式。
下圖4所示為UAC處于Ccalling狀態(tài)時(shí)處理INVITE消息的模型,即Ccalling頁模型。圖中CallTimer表示UAC處于超時(shí)狀態(tài)時(shí)消息的處理過程,CallResp表示UAC收到UAS應(yīng)答時(shí)對(duì)消息的處理過程。庫所TimerAorB用以控制A與B兩個(gè)定時(shí)器的觸發(fā)。融合庫所cloneCs用隊(duì)列存放UAC每次狀態(tài)的變化,其隊(duì)首為UAC的當(dāng)前狀態(tài),Scenec記錄UAC的當(dāng)前狀態(tài)和導(dǎo)致UAC變?yōu)榇藸顟B(tài)的事件。Message存放初始條件下從SIP協(xié)議上層收到的INVITE請(qǐng)求。Channel_Em用以記錄當(dāng)前是否收到UAS的應(yīng)答,其初值為0。
當(dāng)收到UAS會(huì)送的響應(yīng)消息時(shí),變遷CallResp被點(diǎn)火執(zhí)行,即運(yùn)行其對(duì)應(yīng)的函數(shù)代碼。此函數(shù)代碼中sta與st均為SCENEC型變量,st是處理消息前UAC的狀態(tài),sta為處理消息后UAC的狀態(tài)。Action部分調(diào)用函數(shù)call_resp(st,resp)完成UAC對(duì)不同類型響應(yīng)消息的處理,該函數(shù)代碼如下:
由上述代碼可知,處理類型為r2xx的應(yīng)答消息后UAC處于TERM狀態(tài),處理類型為r3xx的應(yīng)答消息后處于COMP狀態(tài),處理類型為r1xx的應(yīng)答消息后處于PROC狀態(tài)。
4 總結(jié)
本文給出了SIP協(xié)議處理INVITE事務(wù)的TCPN分層模型,對(duì)該協(xié)議總體流程、網(wǎng)絡(luò)層、UAS與UAC間的具體行為在不同模型層次上分別進(jìn)行建模。該層次模型規(guī)??煽亍⒐δ軇澐种庇^、數(shù)據(jù)結(jié)構(gòu)完備,為建模后期協(xié)議的驗(yàn)證與改進(jìn)提供了較完善的模型基礎(chǔ)。
參考文獻(xiàn):
[1] 姜秀玉,楊峰,崔再惠.SIP協(xié)議實(shí)現(xiàn)中消息解析的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010(7).
[2] 何中陽,李鷗,楊白薇,等.基于TCPN的TCP協(xié)議形式化描述[J].計(jì)算機(jī)工程,2011(9).
[3] 齊永欣.基于SIP的IMS視頻通信方案研究與實(shí)現(xiàn)[D].北京郵電大學(xué),2010.
[4] 付強(qiáng),仲叢友.基于CPN Tools的港口集裝箱物流系統(tǒng)建模與仿真研究[J].物流科技,2013(9).