陳志輝,王 俊,丁 銳,袁 靜
(中國電子科技集團(tuán)公司第三十研究所,四川成都610041)
會話初始協(xié)議 SIP(Session Initiation Protocol)[1]是IETF提出的應(yīng)用層會話控制協(xié)議,用于建立、修改和終結(jié)實(shí)時多媒體會話。具有可擴(kuò)展性、靈活性、互操作性、可重用性、簡單高效等特點(diǎn)。SIP是下一代網(wǎng)絡(luò)NGN的核心協(xié)議,在互聯(lián)網(wǎng)以及固定、移動IP 網(wǎng)絡(luò)得到了成功應(yīng)用[2-4]。
無線自組網(wǎng)(Wireless Ad hoc networks)不依賴固定基礎(chǔ)設(shè)施,具有無中心、自組織、多跳路由、動態(tài)拓?fù)涞忍攸c(diǎn),網(wǎng)絡(luò)抗毀性和靈活性較強(qiáng),尤其適合災(zāi)難救助、偏遠(yuǎn)地區(qū)、緊急突發(fā)、作戰(zhàn)戰(zhàn)場等場合,具有廣泛的用途和前景。
隨著無線自組網(wǎng)發(fā)展,其網(wǎng)絡(luò)IP化、無線傳輸帶寬增加、質(zhì)量保障能力提高,使其具備了提供實(shí)時多媒體業(yè)務(wù)的能力,無線自組網(wǎng)提供實(shí)時多媒體業(yè)務(wù)成為重要的應(yīng)用需求。SIP已經(jīng)在互聯(lián)網(wǎng)、固定IP網(wǎng)絡(luò)、移動IP網(wǎng)絡(luò)(有固定基礎(chǔ)設(shè)施)得到了成功應(yīng)用,在更靈活、有著廣泛用途的無線自組網(wǎng)中推廣應(yīng)用成為SIP應(yīng)用需求。兩個方面的需求,促使進(jìn)行SIP協(xié)議(下一代網(wǎng)絡(luò)NGN提供多媒體業(yè)務(wù)的核心協(xié)議)應(yīng)用到無線自組網(wǎng)的研究。IP是無線自組網(wǎng)和SIP結(jié)合的基本條件,無線傳輸帶寬增加、質(zhì)量保障能力提高是結(jié)合的重要保障,提供實(shí)時多媒體業(yè)務(wù)是結(jié)合的目標(biāo)。
無線自組網(wǎng)極易受到天氣、地形、電磁干擾、節(jié)點(diǎn)移動等方面的影響,導(dǎo)致有時網(wǎng)絡(luò)很不可靠,甚至網(wǎng)絡(luò)不可用。最初針對固定IP網(wǎng)絡(luò)設(shè)計的SIP協(xié)議,雖然在移動IP網(wǎng)絡(luò)應(yīng)用中進(jìn)行了許多改進(jìn)。同時作為應(yīng)用層協(xié)議,SIP也設(shè)計了較完整的可靠性機(jī)制,如應(yīng)答確認(rèn)機(jī)制、重傳機(jī)制、超時機(jī)制等,并支持低層不可靠傳輸,但仍然難以適應(yīng)無線自組網(wǎng)的網(wǎng)絡(luò)不可用情況。SIP協(xié)議如何成功地延伸應(yīng)用到無線自組網(wǎng),提供多媒體業(yè)務(wù)支持,發(fā)揮其統(tǒng)一融合能力,簡化應(yīng)用系統(tǒng)、增強(qiáng)終端智能,進(jìn)一步促進(jìn)無線自組網(wǎng)的靈活性、易部署性、易用性,成為當(dāng)前急需的、重要的研究內(nèi)容。
文中分析標(biāo)準(zhǔn)SIP協(xié)議在無線自組網(wǎng)中應(yīng)用存在的問題,設(shè)計了新的可靠性機(jī)制、引用并運(yùn)用已有的可靠性機(jī)制,形成完整的可靠性解決方案,提高了SIP協(xié)議在無線自組網(wǎng)中的適應(yīng)性。
SIP主要的可靠性機(jī)制有:
(1)周期性重注冊機(jī)制
終端注冊主要是通知服務(wù)器終端當(dāng)前的位置信息,服務(wù)器記錄、更新位置信息,確保終端位置信息的正確性。終端周期性重注冊,確保了終端位置信息的有效性,服務(wù)器可以根據(jù)注冊是否超時,判斷終端位置信息是否失效。
(2)請求應(yīng)答
SIP中的所有請求消息都要求應(yīng)答,使請求方可以確定接收方成功收到該請求。
(3)確認(rèn)機(jī)制
對重要的應(yīng)答消息,請求方發(fā)送 ACKPRACK[5]進(jìn)行確認(rèn)。如 INVITE請求的響應(yīng) 200 OK,需要請求方使用ACK進(jìn)行確認(rèn)。如果請求方?jīng)]有進(jìn)行確認(rèn),應(yīng)答方重復(fù)發(fā)送響應(yīng)。
(4)重傳機(jī)制
請求發(fā)送后,如果規(guī)定的時間內(nèi)沒有收到響應(yīng)消息,請求方會重發(fā)請求多次。
(5)超時機(jī)制
在重新發(fā)送請求或響應(yīng)后,一直沒有得到正確的響應(yīng)或確認(rèn),一定時間后,重發(fā)方終止會話。
(6)臨時可靠響應(yīng)機(jī)制[6]
一般情況下,臨時響應(yīng)都是不太重要的。但現(xiàn)在的很多臨時響應(yīng)非常重要,如支持資源預(yù)留的183響應(yīng)就非常重要,直接決定會話是否繼續(xù)建立。
無線自組織網(wǎng)的可靠性比較低,通常在96%[7]左右,遠(yuǎn)遠(yuǎn)低于有線網(wǎng)絡(luò)的可靠性。特別是戰(zhàn)場等復(fù)雜電磁環(huán)境下,無線自組織網(wǎng)的可靠性將進(jìn)一步降低,有時甚至達(dá)到不可用的程度。
宏觀上SIP可以分成非會話、會話建立中、會話建立三個狀態(tài)。其中標(biāo)準(zhǔn)SIP在會話建立中、會話建立后兩個狀態(tài)的可靠性機(jī)制還不完善,在無線自組網(wǎng)等可靠性降低到一定較低程度時(不可用時),存在如下問題:
(1)撥號后長時間無響應(yīng)
主叫發(fā)出INVITE,收到100臨時響應(yīng)后、收到180響應(yīng)前發(fā)生網(wǎng)絡(luò)不可用。主叫將一直停留在Proceeding狀態(tài),沒有超時處理機(jī)制。
(2)長時間單邊振鈴
在被叫收到INVITE發(fā)出180響應(yīng)后、主叫收到180響應(yīng)前發(fā)生網(wǎng)絡(luò)不可用。被叫將長時間單邊振鈴。
(3)振鈴后接續(xù)不成功
主叫收到180響應(yīng)后,發(fā)生網(wǎng)絡(luò)不可用,主被叫繼續(xù)振鈴,被叫摘機(jī)后,會話不能建立成功。
(4)終端長時間無業(yè)務(wù)數(shù)據(jù)無提示
會話建立成功后通信期間,發(fā)生網(wǎng)絡(luò)不可用,主被叫長時間無業(yè)務(wù)數(shù)據(jù)后,且沒有任何提示。
(5)服務(wù)器資源泄漏
會話建立成功后,發(fā)生網(wǎng)絡(luò)不可用,主被叫在沒有收到業(yè)務(wù)數(shù)據(jù)后,可以在用戶的干預(yù)下結(jié)束會話,并釋放本地資源。但服務(wù)器不能收到任何結(jié)束會話的信令,將一直保留此會話申請的資源,造成資源泄漏。
(1)撥號后長時間無響應(yīng)
圖1是RFC3261中INVITE client transaction狀態(tài)圖。進(jìn)入狀態(tài)Proceeding后,只有收到200以上的響應(yīng)才能進(jìn)入下一個狀態(tài)。如果沒有收到任何消息,將長時間停留在Proceeding狀態(tài),缺少一個無任何響應(yīng)超時進(jìn)入下一個狀態(tài)的機(jī)制。
圖1 INVITE客戶端事務(wù)Fig.1 INVITE client transaction
(2)長時間單邊振鈴
標(biāo)準(zhǔn)SIP協(xié)議的振鈴指示消息180響應(yīng),沒有任何確認(rèn)措施。被叫發(fā)送180響應(yīng)后,開始振鈴,無法知道主叫方是否接收到180響應(yīng)。這種機(jī)制上的缺陷導(dǎo)致主叫、被叫振鈴不同步情況。因此應(yīng)當(dāng)將180作為重要的臨時響應(yīng),進(jìn)行確認(rèn),確保主被叫同步。
(3)振鈴后接續(xù)不成功
標(biāo)準(zhǔn)SIP采用單次發(fā)送180響應(yīng)消息機(jī)制,被叫發(fā)出180響應(yīng)后、主叫收到180響應(yīng)后,雙方開始振鈴。如果振鈴期間發(fā)生網(wǎng)絡(luò)不可用的異常,主被叫無法感知異常,錯誤地繼續(xù)振鈴,導(dǎo)致用戶摘機(jī)時無法接通。因此,需要監(jiān)控振鈴期間的網(wǎng)絡(luò)可用情況,一旦網(wǎng)絡(luò)不可用,振鈴將停止,避免振鈴正常卻不能接通的情況。
(4)終端長時間無業(yè)務(wù)數(shù)據(jù)無提示
通信過程中發(fā)生網(wǎng)絡(luò)不可用,終端收不到業(yè)務(wù)數(shù)據(jù)。由于缺少會話保持功能,將不能發(fā)現(xiàn)網(wǎng)絡(luò)不可用,無法給出提示。因此,在終端上需要增加會話保持機(jī)制。
會話保持是控制面的功能,其探測時間通常比較長(幾十秒級),可以結(jié)合數(shù)據(jù)面業(yè)務(wù)數(shù)據(jù)的實(shí)時性,及時(幾十毫秒級)發(fā)現(xiàn)異常,并在控制面通過確認(rèn)機(jī)制進(jìn)行確認(rèn)。
(5)服務(wù)器資源泄漏
服務(wù)器資源泄漏主要是服務(wù)器在會話建立、撤銷過程中,都是出于被動的位置,缺少主動監(jiān)控措施,對會話的有效性進(jìn)行鑒別,因此需要增加會話保持功能。
由于會話保持探測時間通常比較長,導(dǎo)致資源泄漏時間長,可以在資源緊缺的時候,啟動主動巡查機(jī)制,減少資源泄漏的時間。
針對標(biāo)準(zhǔn)SIP協(xié)議存在的問題和分析,設(shè)計了以下幾種改進(jìn)措施:
(1)增加Proceeding超時機(jī)制
在RFC3261中INVITE client transaction狀態(tài)機(jī)(見圖1)的基礎(chǔ)上,新設(shè)計Proceeding狀態(tài)超時機(jī)制,如圖2中虛線所示。
圖2 新INVITE客戶端事務(wù)Fig.2 New INVITE client transaction
Proceeding狀態(tài)超時機(jī)制工作過程:①在收到100響應(yīng)進(jìn)入Proceeding狀態(tài)后,啟動超時定時器;②如果收到180響應(yīng),復(fù)位超時定時器,并使用振鈴提示用戶;③如果主叫在超時時間內(nèi)沒有收到180響應(yīng),將超時退出Proceeding狀態(tài),(如果已經(jīng)振鈴,即收到過180響應(yīng),但在后續(xù)180響應(yīng)沒有收到,就先停止振鈴)并使用語音提示用戶掛機(jī)。
建議超時時間是重復(fù)發(fā)送180響應(yīng)間隔(見重復(fù)發(fā)送180機(jī)制)的倍數(shù)(如2倍)。重復(fù)發(fā)送180響應(yīng)間隔建議值為2T1(T1是往返估計時延,缺省值是500 ms),即Proceeding超時時間建議為4T1(缺省值是2 s)。
(2)對180臨時響應(yīng)進(jìn)行確認(rèn)機(jī)制
將180作為重要的臨時響應(yīng),并對其采用可靠臨時響應(yīng)機(jī)制,主叫在收到180機(jī)可靠性臨時響應(yīng)指示時,應(yīng)該使用PRACK進(jìn)行確認(rèn)。主叫收到180后進(jìn)行振鈴,被叫在接收到PRACK后才振鈴。如果PRACK丟失,180響應(yīng)將重傳。
(3)重復(fù)發(fā)送180機(jī)制
從振鈴到用戶摘機(jī)的時間相對比較長,幾秒到幾十秒,這段時間網(wǎng)絡(luò)的可用狀態(tài)可能發(fā)生變化。采用單次發(fā)送180響應(yīng)提示已經(jīng)不能適應(yīng),可以以一定間隔重復(fù)發(fā)送180(建議間隔使用2T1,缺省值是1 s),主叫據(jù)此可判斷網(wǎng)絡(luò)是否正常,同時主叫對180響應(yīng)進(jìn)行確認(rèn)(發(fā)送PRACK),被叫可據(jù)此判斷網(wǎng)絡(luò)是否正常。
被叫停止發(fā)送和主叫停止檢測180響應(yīng):①被叫在用戶摘機(jī)后,發(fā)送200 OK響應(yīng),被叫停止發(fā)送180響應(yīng);②主叫在接收到被叫的200 OK響應(yīng)后,停止檢測180響應(yīng);③如果被叫用戶一直沒有摘機(jī)的話,主叫可以用戶主動掛機(jī)或proceeding超時后,停止檢測180響應(yīng);④被叫在主叫掛機(jī)或INVITE事務(wù)超時后,停止發(fā)送180響應(yīng)。
(4)選用Session Timer會話保持機(jī)制[4]
Session Timer會話保持機(jī)制是RFC4028定義的,標(biāo)準(zhǔn)建議有狀態(tài)工作模式時,使用Session Timer功能進(jìn)行會話保持?;驹硎峭ㄟ^在UAC和UAS之間協(xié)商會話刷新的發(fā)起者和刷新周期。發(fā)起者使用re-INVITE或UPDATE進(jìn)行刷新,接收者進(jìn)行響應(yīng)。如果長時間連續(xù)沒有刷新請求或響應(yīng),表明網(wǎng)絡(luò)出現(xiàn)異常,雙方可以終止會話,釋放資源。
在標(biāo)準(zhǔn)SIP協(xié)議中,會話保持機(jī)制是可選機(jī)制(只有在有狀態(tài)服務(wù)器使用該機(jī)制)。在無線自組網(wǎng)中,傳輸資源有限,資源管理是有效運(yùn)行的基礎(chǔ),會話保持機(jī)制將作為資源釋放最重要的監(jiān)控觸發(fā)措施。建議將會話保持機(jī)制作為無線自組網(wǎng)SIP協(xié)議的必選機(jī)制。
(5)實(shí)時感知確認(rèn)機(jī)制
Session Timer會話保持的周期通常不能太短,導(dǎo)致難以即時發(fā)現(xiàn)問題。在明確知道數(shù)據(jù)傳輸特征的情況下,如RTP數(shù)據(jù)包的間隔、靜音數(shù)據(jù)包的間隔等特征??梢越柚鷮?shí)時RTP數(shù)據(jù)包接收情況,及時發(fā)現(xiàn)網(wǎng)絡(luò)異常,并啟動類似會話刷新的動作進(jìn)行確認(rèn),解決Session Timer會話保持機(jī)制實(shí)時性差的缺陷。
(6)緊急巡查機(jī)制
可以在SIP服務(wù)器使用的資源緊缺到一定門限時,啟動緊急巡查機(jī)制(發(fā)送 UPDATE、re-INVITE),對連續(xù)多次巡查沒有響應(yīng)的會話,服務(wù)器主動終止,釋放資源。
將3.2節(jié)提出的可靠性機(jī)制實(shí)現(xiàn)后,分別部署在1臺SIP服務(wù)器和2臺終端上,連接到有線局域網(wǎng)上(由于這些機(jī)制的改進(jìn)是針對網(wǎng)路不可用的,可以在有線網(wǎng)絡(luò)進(jìn)行模擬),其中SIP服務(wù)器、終端設(shè)計成可以手動控制部分消息的發(fā)送、轉(zhuǎn)發(fā),以便準(zhǔn)確配合模擬網(wǎng)路斷開等操作。設(shè)置Proceeding超時時間為2 s(4T1,其中T1使用缺省值500 ms),180重復(fù)發(fā)送時間間隔是1 s(2T1)。Session Timer超時時間1 800 s,采用終端發(fā)起刷新方式。
緊急巡查采用動態(tài)參數(shù),根據(jù)資源占用率的不同采用不同的參數(shù),原則上是資源使用率越高時,巡查時間越短,最短可達(dá)500 ms(T1)。在無線自組織網(wǎng)絡(luò)環(huán)境進(jìn)行了初步的測試和驗(yàn)證,改進(jìn)前后試驗(yàn)結(jié)果如表1所示。
表1 測試結(jié)果Table 1 Test result
測試結(jié)果表明,提出的可靠性改進(jìn)機(jī)制解決了會話建立、會話過程中,網(wǎng)絡(luò)不可用引起的主叫撥號后長時間無響應(yīng)、長時間單邊振鈴、振鈴后接續(xù)不成功、服務(wù)器資源泄漏等問題,能正確發(fā)現(xiàn)異常,進(jìn)行相應(yīng)的處理并提示用戶。但發(fā)現(xiàn)問題的及時性較差,借助實(shí)時感知確認(rèn)機(jī)制,終端可以及時發(fā)現(xiàn)異常并處理。在呼叫保持能力的測試過程中,由于網(wǎng)絡(luò)不可用將引起資源不能正常釋放,只能通過Session Timer超時釋放,及時性很差,大大降低了呼叫保持能力。通過緊急巡查機(jī)制,可以確保呼叫資源出現(xiàn)緊缺時,及時確認(rèn)會話有效性,并釋放無效會話的資源,確保呼叫保持能力。
總的說來,改進(jìn)后的SIP可靠性機(jī)制,將異常發(fā)現(xiàn)和處理控制在秒級,并及時給用戶正確的提示,大大提升了用戶的體驗(yàn)。
文中針對標(biāo)準(zhǔn)SIP協(xié)議在無線自組網(wǎng)不可用時引起的問題進(jìn)行了總結(jié)和分析,設(shè)計了新的可靠性機(jī)制,擴(kuò)展了原SIP協(xié)議中可靠性機(jī)制的應(yīng)用范圍,形成了無線組網(wǎng)下SIP協(xié)議較完整的可靠性機(jī)制。并經(jīng)過初步測試驗(yàn)證,改進(jìn)后的SIP協(xié)議能較好的適應(yīng)無線自組網(wǎng)網(wǎng)絡(luò)可靠性差、甚至不可用等情況?;具_(dá)到了將SIP協(xié)議延伸應(yīng)用到無線自組網(wǎng),在無線自組網(wǎng)中提供多媒體業(yè)務(wù)的預(yù)期目標(biāo)。
受無線自組網(wǎng)具體特性、用戶體驗(yàn)要求、帶寬占用、閃斷干擾等因素影響,各種可靠性機(jī)制的參數(shù)值的確定方法比較復(fù)雜,它們相互制約,難以統(tǒng)一??煽啃詸C(jī)制參數(shù)值的確定優(yōu)化有待進(jìn)行深入研究完善。
[1]ROSENBERG J,SCHULZRINNE H,CAMARILLO G,et al.RFC3261 - 2002,SIP:Session Initiation Protocol[S].[s.l.]:IETF,2005.
[2]黃育平,黃威.SIP協(xié)議在軟交換中應(yīng)用的研究[J].通信技術(shù),2012,45(07):45 -47.HUANG Yu -ping,HUANG Wei.Study on Applications of SIP Protocol in Soft Exchange[J].Communications Technology,2012,45(07):45 -47.
[3]汪陳伍,李廣華.HSIP:下一代無線網(wǎng)絡(luò)理想的選擇[J].2009,42(07):218 -219,228.WANG Chen-wu,LI Guang-h(huán)ua.HSIP:Ideal Choice for Next- Generation Wireless Network[J].2009,42(07):218 -219,228.
[4]孫旭輝,龍昭華,蔣貴全.基于SIP的VoWLAN的移動性研究[J].2009,42(04):178 -179,182.SUN Xu-h(huán)ui,LONG Zhao-h(huán)ua,JIANG Gui-quan.Mobility of VoWLAN based on SIP[J].2009,42(04):178 -179,182.
[5]ROSENBERG J,SCHULZRINNE H.RFC3262 - 2002,Reliability of Provisional Responses in Session Initiation Protocol(SIP)[S].[s.l.]:IETF,2002.
[6]DONOVAN S,ROSENBERG J.RFC4028 -2005,Session Timers in the Session Initiation Protocol(SIP)[S].[s.l.]:IETF,2005.
[7]馬睿,朱建沖,楊美玲.基于抗毀性的軍事通信網(wǎng)可靠性和節(jié)點(diǎn)重要性分析[J].兵工自動化,2012,31(10):44-47.MA Rui,ZHU Jian - chong,YANG Meiling.Analysis on Reliability and Nodal Importance of Military Communication Network based on Invulnerability[J].Ordnance Industry Automation,2012,31(10):44 -47.