0 引言
隨著通信技術(shù)的快速發(fā)展,網(wǎng)絡(luò)通信技術(shù)的要求不斷提高,在通信技術(shù)中具有決定作用的通信協(xié)議的功能也不斷完善且更加復(fù)雜。ITU-T的Z.100建議SDL(Specification and Description Language)語言可以定義通信協(xié)議的分層結(jié)構(gòu)和協(xié)議各部分間的相互聯(lián)系及接口,使用SDL語言描述、分析通信協(xié)議,能夠提高通信軟件開發(fā)效率和可靠性。
SIP(Session Initiation Protocol)是由IETF提出的在IP網(wǎng)絡(luò)上進(jìn)行多媒體通信的控制層協(xié)議,SIP被描述為用來生成、修改和終結(jié)一個(gè)或多個(gè)參與者之間的會(huì)話。該文首先總結(jié)SIP協(xié)議系統(tǒng)結(jié)構(gòu),然后采用SDL來描述SIP協(xié)議的系統(tǒng)模型,并對一些特殊情況進(jìn)行了模擬,驗(yàn)證了SIP協(xié)議形式化描述的正確性。
1 SIP協(xié)議結(jié)構(gòu)
1.1 SIP系統(tǒng)組成
從結(jié)構(gòu)和功能上劃分,SIP系統(tǒng)分為兩個(gè)部分:SIP客戶端(SIP Clients)和SIP服務(wù)器(SIP Servers)。SIP Clients主要指用戶代理UA(User Agent),它可以細(xì)劃為2個(gè)部分:用戶代理客戶端UAC(User AgentClient),主要用來發(fā)起SIP請求;用戶代理服務(wù)器(User Agent Server),其作用是:當(dāng)一個(gè)SIP請求收到的時(shí)候聯(lián)系用戶并做出基于用戶的響應(yīng)。SIP Servers主要包括注冊服務(wù)器RS(Registrar Server),用來處理來自UAC的請求注冊用戶的位置信息;代理服務(wù)器PS(Proxy Server),它是一種中介設(shè)置,主要用來接收一個(gè)客戶端的請求并繼續(xù)向前傳遞該請求,基本上,代理服務(wù)器接收SIP消息,然后轉(zhuǎn)發(fā)到下一個(gè)SIP服務(wù)器,代理服務(wù)器也可以提供一些機(jī)制,例如鑒權(quán)、授權(quán)、網(wǎng)絡(luò)接口控制、路由、傳播的可靠性及安全性等問題;重定向服務(wù)器ReS(Redirect Server),用來給用戶提供下一跳的信息或消息應(yīng)該經(jīng)過的跳數(shù),使用戶可以直接聯(lián)系下一跳或直接和目標(biāo)客戶端聯(lián)系。另外,在一個(gè)擴(kuò)展的SIP系統(tǒng)中,SIP服務(wù)器還包括LDAP(LightweightDirectory Access Protocol)服務(wù)器、位置服務(wù)器LS(Location Servers)、數(shù)據(jù)庫服務(wù)器(Database Servers)、XML服務(wù)器(Extensible Markup Language)等。
1.2 典型SIP系統(tǒng)
SIP系統(tǒng)分為四種類型結(jié)構(gòu):
SIP注冊結(jié)構(gòu)在此系統(tǒng)結(jié)構(gòu)中包含兩個(gè)實(shí)體:UA和RS,用戶代理需要在RS上進(jìn)行注冊以確定自己的身份,把自己連入網(wǎng)絡(luò)。
SIP端到端結(jié)構(gòu)在此系統(tǒng)結(jié)構(gòu)中包含兩個(gè)對等實(shí)體:UA1和UA2,它是雙方直接進(jìn)行通信的簡單實(shí)例。
代理模式結(jié)構(gòu)在此系統(tǒng)結(jié)構(gòu)中包含四個(gè)實(shí)體:兩個(gè)UA,LS和PS,UA1向PS發(fā)出會(huì)話請求,然后PS向LS查詢UA2的信息并向UA2發(fā)出會(huì)話請求,UA2向PS回復(fù)確認(rèn)信息,PS給UA1回復(fù)確認(rèn)信息,UA1向給UA2發(fā)確認(rèn)信息,然后開始通話,任何一方可終止會(huì)話,并給對方發(fā)出終止消息。
重定向模式結(jié)構(gòu)在此系統(tǒng)結(jié)構(gòu)中包含四個(gè)實(shí)體:兩個(gè)UA,LS和PS,UA1向PS發(fā)出會(huì)話請求,然后PS向LS查詢UA2的信息,PS給UA1回復(fù)UA2的信息,UA1給UA2發(fā)會(huì)話邀請信息,UA2給UA1發(fā)確認(rèn)信息,然后開始通話,任何一方可終止停止會(huì)話,并給對方發(fā)出終止消息。
2 SIP協(xié)議系統(tǒng)模型的形式化描述
SDL語言能夠?qū)f(xié)議提供規(guī)范的、無二異性的描述,用它來描述復(fù)雜協(xié)議系統(tǒng)的結(jié)構(gòu)可以保證協(xié)議描述的正確性和可靠性。用SDL語言描述的系統(tǒng)一般包括4個(gè)等級(jí):系統(tǒng),功能塊,進(jìn)程和代碼段。在進(jìn)程中用擴(kuò)展?fàn)顟B(tài)機(jī)詳細(xì)地描述系統(tǒng)的動(dòng)態(tài)行為,利用時(shí)間和定時(shí)器描述不同功能塊之間通信接口的抽象模型利用信道信號(hào)描述通信的處理過程。
2.1 SIP協(xié)議主要系統(tǒng)模型
SIP協(xié)議使用廣泛,由它本身組成的系統(tǒng)或與其他協(xié)議組成的通信系統(tǒng)比較多,由于篇幅有限,僅列出SIP代理系統(tǒng)模型。
在SIP代理系統(tǒng)模型中,其主要功能塊分為UA,PS和LS。其中UA組件是會(huì)話客戶端,是用來發(fā)起會(huì)話請求、接受請求并回復(fù)、進(jìn)行通話的實(shí)體;PS用來轉(zhuǎn)發(fā)UA的請求和回復(fù)及向LS查詢位置信息并結(jié)合會(huì)話請求回復(fù)邀請的客戶端,另外還提供一些其他的服務(wù)代理等;LS主要提供UA的位置信息,如圖1所示。
2.2 SIP協(xié)議系統(tǒng)模型主要功能塊
在SIP系統(tǒng)模型中,主要包含UA功能塊,PS功能塊,LS功能塊,RS功能塊等。由于篇幅有限,僅列出UA功能塊和PS功能塊的形式化工作。
2.2.1 SIP UA功能塊
SIP UA功能塊包含四個(gè)進(jìn)程塊,事務(wù)處理控制進(jìn)程通過保持一系列SIP命令和回應(yīng)列表命令進(jìn)行事務(wù)處理的管理,當(dāng)SIP命令被發(fā)往其他組件時(shí),它通過給時(shí)間控制進(jìn)程發(fā)送一個(gè)時(shí)間開始消息啟動(dòng)一個(gè)定時(shí)器。當(dāng)收到由它發(fā)出的SIP命令的其他組件最終回應(yīng)消息時(shí),它發(fā)送一個(gè)停止消息給定時(shí)器。時(shí)間控制進(jìn)程主要維持定時(shí)器,當(dāng)一個(gè)定時(shí)器超時(shí)或者終止時(shí),它發(fā)送超時(shí)和終止消息給事務(wù)處理控制進(jìn)程。媒體控制進(jìn)程控制媒體流的傳輸。命令控制進(jìn)程維持整個(gè)會(huì)話的狀態(tài)。
該功能塊有三個(gè)外部接口:Transaction_UAroute主要是UA與服務(wù)器的事務(wù)處理接口;UAController_channel是UA與服務(wù)器和UA之間的命令控制事務(wù)處理接口;Media_media_route主要指UA之間的媒體流傳輸接口。圖2顯示了SIP UA功能塊。
在圖3中給出SIP UA功能塊的狀態(tài)機(jī),主要包括四個(gè)狀態(tài):IDLE,WAIT_RESPONSE,WAIT_ACK,CONNECTED。IDLE為用戶代理初始狀態(tài),代表一個(gè)會(huì)話建立前或結(jié)束后的狀態(tài),在此狀態(tài)下,通過INTIVE進(jìn)程發(fā)出會(huì)話邀請進(jìn)入到WAIT_RE-SPONSE狀態(tài),其他的狀態(tài)通過撤銷或終止進(jìn)程回到本狀態(tài),自身也可通過RESPONSE進(jìn)程報(bào)錯(cuò)或報(bào)告成功。WAIT_RESPONSE為等待回復(fù)狀態(tài),它表示一個(gè)用戶代理發(fā)出會(huì)話邀請后的等待回應(yīng)狀態(tài),它可以通過RESPONSE進(jìn)程報(bào)告錯(cuò)誤回到IDLE狀態(tài),通過確認(rèn)ACK進(jìn)程進(jìn)入CONNECTED狀態(tài),一些振鈴進(jìn)程請求時(shí)該狀態(tài)不變。WAIT_ACK為等待確認(rèn)媒體信道連接狀態(tài),表示當(dāng)一些請求發(fā)出后的等待回復(fù)狀態(tài)。CONNECTED為會(huì)話建立成功狀態(tài),表示用戶代理完成三次握手后成功建立會(huì)話的狀態(tài),可以通過終止回到初始狀態(tài)。
來源:現(xiàn)代電子技術(shù)