徐 陽,吳軍平
(1.光纖通信技術(shù)和網(wǎng)絡(luò)國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢430074;2.武漢郵電科學(xué)研究院,湖北 武漢430074)
現(xiàn)代信息通信技術(shù)和互聯(lián)網(wǎng)的發(fā)展日新月異,為滿足新業(yè)務(wù)的豐富需求,現(xiàn)代通信網(wǎng)絡(luò)向以軟交換為核心NGN(下一代網(wǎng)絡(luò),Next Generation Network)的演進(jìn)勢(shì)在必行。ETSI TISPAN,ITU-T在研究NGN架構(gòu)時(shí),將IMS(IP多媒體子系統(tǒng),IP Multimedia Subsystem)的概念引入到固網(wǎng)的NGN網(wǎng)絡(luò)架構(gòu)中[1]。
目前,IMS作為承載各類綜合性業(yè)務(wù)的新型電信級(jí)網(wǎng)絡(luò),如何保證業(yè)務(wù)的可靠性,當(dāng)網(wǎng)絡(luò)設(shè)備發(fā)生故障后,業(yè)務(wù)如何快速恢復(fù),成為IMS體系必須面對(duì)和解決的關(guān)鍵問題。本文通過研究一種基于SIP協(xié)議的“雙歸屬”倒換技術(shù)的實(shí)現(xiàn)方法,來解決上述問題。
當(dāng)通信網(wǎng)絡(luò)出現(xiàn)由于無法抗拒的自然災(zāi)害事故或一些不可預(yù)期的人為因素而引起故障時(shí),需要一種能夠提供緊急通信的應(yīng)急機(jī)制,傳統(tǒng)的PSTN網(wǎng)絡(luò)難以實(shí)現(xiàn)這種功能,因此“雙歸屬”技術(shù)應(yīng)運(yùn)而生?!半p歸屬”倒換技術(shù)可實(shí)現(xiàn)異地的容災(zāi)備份,是IMS網(wǎng)絡(luò)的安全容災(zāi)機(jī)制之一。通過相互備份處于異地的軟交換核心網(wǎng)元的方式,來確保其中某處核心網(wǎng)元設(shè)備出現(xiàn)故障時(shí),另一處可全盤接管其業(yè)務(wù),從而確保當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí)業(yè)務(wù)不會(huì)中斷[2]。
基于SIP協(xié)議應(yīng)用的雙歸屬倒換技術(shù)是當(dāng)主用代理服務(wù)器斷網(wǎng)后,接入終端UE(用戶設(shè)備,User Equipment)可自動(dòng)向備用代理服務(wù)器發(fā)起連接[3]。目前,不同的運(yùn)營(yíng)商對(duì)雙歸屬服務(wù)器倒換的要求不同,典型的包括絕對(duì)主備和相對(duì)主備,分別描述如下:中國(guó)移動(dòng)的雙歸屬服務(wù)器要求是絕對(duì)主備,中國(guó)電信則要求相對(duì)主備。
絕對(duì)主備:當(dāng)主用服務(wù)器異常后,UE探測(cè)備用服務(wù)器,若備用服務(wù)器正常工作,則UE的所有用戶全部倒換到備用服務(wù)器上。隨后,UE周期的探測(cè)主用服務(wù)器是否恢復(fù)正??捎?。若主用服務(wù)器恢復(fù)正常,則該UE上的所有空閑用戶全部切換到主用服務(wù)器上,處于呼叫接續(xù)或通話過程中的用戶繼續(xù)留在備用服務(wù)器上。當(dāng)上述處于呼叫接續(xù)或通話的用戶釋放呼叫或完成通話后立刻自動(dòng)切回到主用服務(wù)器上。若當(dāng)主用服務(wù)器異常后,UE探測(cè)到備用服務(wù)器也異常,則UE繼續(xù)在主備服務(wù)器之間不間斷的來回探測(cè),直到其中一個(gè)服務(wù)器恢復(fù)正??捎茫琔E的所有用戶全部切換到該服務(wù)器上。
相對(duì)主備:當(dāng)主用服務(wù)器異常后,UE探測(cè)備用服務(wù)器,若備用服務(wù)器正常工作,則UE的所有用戶全部倒換到備用服務(wù)器上,此時(shí)該備用服務(wù)器就動(dòng)態(tài)變成了主用服務(wù)器,原主用服務(wù)器動(dòng)態(tài)變成備用服務(wù)器。之后,只有在當(dāng)前服務(wù)器異常情況下,UE才重新探測(cè)新備用服務(wù)器是否正??捎?若備用服務(wù)器可用,則UE的所有用戶全部切換到該服務(wù)器上,此時(shí),該服務(wù)器又動(dòng)態(tài)變?yōu)橹饔梅?wù)器;如果備用服務(wù)器不可用,則UE不間斷的來回探測(cè)主備服務(wù)器的可用性,若探測(cè)到某個(gè)服務(wù)器可用,則UE的所有用戶全部切換到該服務(wù)器上,此時(shí)該服務(wù)器就是主用服務(wù)器,另一個(gè)服務(wù)器就是備用服務(wù)器。
當(dāng)主用服務(wù)器斷網(wǎng)后,UE能自動(dòng)切換到備用服務(wù)器,恢復(fù)語音業(yè)務(wù),在現(xiàn)實(shí)工程使用中,也有很高的工程應(yīng)用價(jià)值。
NGN的核心網(wǎng)絡(luò)只有一個(gè),即IMS,其核心特點(diǎn)為采用SIP協(xié)議和與接入的無關(guān)性。IMS中的服務(wù)器有PCSCF(代理CSCF,Proxy CSCF),I-CSCF(查詢CSCF,Interrogating CSCF),S-CSCF(服務(wù)CSCF,Serving CSCF)等邏輯組件,其中P-CSCF相當(dāng)于傳統(tǒng)軟交換中的代理服務(wù)器,S-CSCF相當(dāng)于注冊(cè)服務(wù)器[1]。在整個(gè)注冊(cè)、呼叫過程中P-CSCF和S-CSCF都必須參與工作,且其地址在終端發(fā)出的SIP消息中均有明確的表示。圖1描述了雙歸屬服務(wù)器的組網(wǎng)模式。
圖1 雙歸屬服務(wù)器的組網(wǎng)圖
服務(wù)器的主備將會(huì)有兩組主備:主備代理服務(wù)器和主備注冊(cè)服務(wù)器,這樣在實(shí)現(xiàn)主備應(yīng)用時(shí)就有4種組合,約定探測(cè)組合的先后序列為:
1)探測(cè)主用代理服務(wù)器、主用注冊(cè)服務(wù)器;
2)探測(cè)備用代理服務(wù)器、主用注冊(cè)服務(wù)器;
3)探測(cè)備用代理服務(wù)器、備用注冊(cè)服務(wù)器;
4)探測(cè)主用代理服務(wù)器、備用注冊(cè)服務(wù)器。
2.2.1 如何探測(cè)服務(wù)器
首先,要在兩個(gè)雙歸屬服務(wù)器之間設(shè)置故障檢測(cè)機(jī)制[4],UE采用標(biāo)準(zhǔn)的SIP OPTIONS消息心跳檢測(cè)機(jī)制來進(jìn)行對(duì)服務(wù)器的探測(cè),根據(jù)RFC3261中的規(guī)定,標(biāo)準(zhǔn)的SIP非INVITEclient事務(wù)的重發(fā)間隔為0.5 s,1 s,2 s,4 s,4 s,4 s,4 s,4 s,4 s,4 s,最多發(fā)出11個(gè)OPTIONS消息,總時(shí)長(zhǎng)約為32 s。當(dāng)UE發(fā)出OPTIONS消息探測(cè)服務(wù)器而未收到響應(yīng)時(shí),就會(huì)按照上述規(guī)律進(jìn)行重發(fā),若在UE向服務(wù)器發(fā)出第一個(gè)OPTIONS消息40 s后仍未得到響應(yīng),則認(rèn)為已與服務(wù)器斷開鏈接[5]。
在當(dāng)前服務(wù)器組下UE發(fā)現(xiàn)通信中斷的判斷條件決定了何時(shí)需發(fā)起新一輪的服務(wù)器探測(cè),這一點(diǎn)是首先必須弄清楚的。這里所說的通信中斷指服務(wù)器組不在線,不處理信令包。
當(dāng)發(fā)現(xiàn)與服務(wù)器組通信中斷時(shí),需探測(cè)下一組服務(wù)器。找到下一組服務(wù)器組后,用OPTIONS消息來探測(cè)服務(wù)器是否存在。UE按網(wǎng)關(guān)來發(fā)送OPTIONS消息(不建議按端口來發(fā)送OPTIONS消息,避免占用較多的網(wǎng)絡(luò)帶寬,但是UE應(yīng)該能夠及時(shí)正確響應(yīng)服務(wù)器按端口發(fā)送過來的OPTIONS請(qǐng)求消息),每次發(fā)送時(shí),CSeq要遞增。
2.2.2 切換服務(wù)器的流程
尋找下一組服務(wù)器組流程:當(dāng)前服務(wù)器組按2.1節(jié)中列出的服務(wù)器組組合順序向后依次尋找IP非空且與當(dāng)前服務(wù)器組存在不同的服務(wù)器組,若4組都已遍歷,仍沒發(fā)現(xiàn)不同的服務(wù)器組,則認(rèn)為沒有發(fā)現(xiàn)下一組服務(wù)器。采用這種確認(rèn)下一組服務(wù)器的方法,配置單服務(wù)器組的情況就包含于沒有發(fā)現(xiàn)下一組服務(wù)器的分支中。
當(dāng)找到了下一組服務(wù)器后,先用OPTIONS消息探測(cè)。若收到響應(yīng)消息回復(fù),則UE開始發(fā)送注冊(cè)消息請(qǐng)求;若發(fā)送N次未收到響應(yīng)回復(fù),則認(rèn)為該服務(wù)器組不可用,尋找下一個(gè)服務(wù)器組。
2.2.3 同時(shí)支持兩種歸屬服務(wù)器的設(shè)計(jì)方案
首先說明UE存活態(tài)和UE注冊(cè)態(tài)這兩個(gè)概念。
注冊(cè)態(tài):用于上報(bào)該UE是否存在注冊(cè)狀態(tài)為OK的端點(diǎn),如果存在,為OK;不存在為FAIL。
存活態(tài):指UE使用的服務(wù)器組是否存活。當(dāng)OPTIONS消息收到響應(yīng)或者有一個(gè)端口注冊(cè)包收到響應(yīng),即認(rèn)為服務(wù)器組存活,值為OK;否則認(rèn)為值為FAIL。僅當(dāng)UE發(fā)生雙服務(wù)器切換,找到了下一組服務(wù)器組時(shí),將存活態(tài)的值設(shè)為FAIL。
下面分別就兩種雙歸屬倒換技術(shù)提出設(shè)計(jì)方案:
1)相對(duì)主備
(1)OPTIONS消息總是朝當(dāng)前服務(wù)器組發(fā)送。當(dāng)前服務(wù)器組在上電時(shí)選取第一組,否則在切換時(shí)找到下一組服務(wù)器時(shí)再確定;
(2)收到OPTIONS消息響應(yīng)時(shí),認(rèn)為可以使用(如果UE存活態(tài)為FAIL,就將其改為OK,同時(shí)發(fā)起注冊(cè)),繼續(xù)發(fā)送OPTIONS消息;
(3)未收到OPTIONS消息響應(yīng)時(shí),發(fā)生切換;
(4)發(fā)生切換時(shí),找到了下一組服務(wù)器,將UE存活態(tài)置為FAIL,設(shè)置新的當(dāng)前服務(wù)器組,發(fā)送OPTIONS消息。
2)絕對(duì)主備
(1)OPTIONS消息朝當(dāng)前服務(wù)器組發(fā)送,但是在當(dāng)前服務(wù)器非主用服務(wù)器組時(shí),也需要朝主用服務(wù)器組發(fā)送,即主用注冊(cè)服務(wù)器和主用代理服務(wù)器;
(2)收到OPTIONS消息響應(yīng)時(shí),判斷消息的響應(yīng)是否來自于當(dāng)前服務(wù)器組,如果是,認(rèn)為該服務(wù)器組可以使用(如果UE存活態(tài)為FAIL,就將其改為OK,同時(shí)發(fā)起注冊(cè)),如果不是,就要判斷當(dāng)前是否是絕對(duì)主備且當(dāng)前服務(wù)器非主用服務(wù)器組,且OPTIONS消息的響應(yīng)來自于主用服務(wù)器組,即發(fā)生切換,否則丟棄該消息;
(3)未收到OPTIONS消息響應(yīng)時(shí),判斷該消息的源是否為當(dāng)前服務(wù)器組,如果是,發(fā)送N次OPTIONS,N次超時(shí)發(fā)生切換,若不是,則需判斷當(dāng)前是否為絕對(duì)主備且當(dāng)前服務(wù)器非主用服務(wù)器組,且OPTIONS消息源是主用服務(wù)器組,繼續(xù)發(fā)送OPTIONS消息,否則丟棄該消息;
(4)收到OPTIONS消息響應(yīng)時(shí),判斷當(dāng)前服務(wù)器組是否為主用服務(wù)器組,若不是,發(fā)生切換,否則認(rèn)為可使用(若UE存活態(tài)為FAIL,就將其改為OK,同時(shí)發(fā)起注冊(cè));
(5)未收到OPTIONS消息響應(yīng)時(shí),判斷當(dāng)前服務(wù)器組是否為主用服務(wù)器組,若不是,繼續(xù)發(fā)送OPTIONS消息,否則發(fā)送N次,N次超時(shí)發(fā)生切換;
(6)發(fā)生切換時(shí),判斷當(dāng)前是否為主用服務(wù)器組:若不是,將UE存活態(tài)改為FAIL,將主用服務(wù)器組設(shè)為當(dāng)前使用的,發(fā)送OPTIONS消息;否則,尋找下一組服務(wù)器,找到后,將UE存活態(tài)置為FAIL,設(shè)置新的當(dāng)前服務(wù)器組,發(fā)送OPTIONS消息。
UE在某服務(wù)器組下正常工作,且心跳功能打開,默認(rèn)UE存活態(tài)是OK。具體算法流程如圖2所示。
圖2 雙歸屬服務(wù)器流程圖
前提:UE在某服務(wù)器組下正常工作,且心跳功能打開,默認(rèn)UE存活態(tài)是OK。
下文將詳細(xì)分析算法描述。
1)發(fā)送OPTIONS消息,向當(dāng)前服務(wù)器組發(fā)送,發(fā)送次數(shù)加1,然后判斷是否為絕對(duì)主備且當(dāng)前服務(wù)器非主用服務(wù)器組,增加向主用服務(wù)器組發(fā)送OPTIONS。
2)收到OPTIONS消息,分如下情況分類處理:
(1)消息的響應(yīng)是否來自于當(dāng)前服務(wù)器組,如果是:此時(shí)若當(dāng)前UE存活態(tài)為FAIL,就將其改為OK,同時(shí)發(fā)起注冊(cè),跳到4);如果不是:跳到(2);
(2)絕對(duì)主備且當(dāng)前服務(wù)器非主用服務(wù)器組,且OPTIONS消息響應(yīng)來自于主用服務(wù)器組,此時(shí)發(fā)生切換,跳到5),否則退出。
3)未收到OPTIONS消息,分如下情況分類處理:
(1)若消息源是當(dāng)前服務(wù)器組:判斷是否發(fā)送了N次,如果未到N次,跳到1),如果到了N次,發(fā)生切換,跳到5);若消息源非當(dāng)前服務(wù)器組:跳到(2);
(2)絕對(duì)主備且當(dāng)前服務(wù)器非主用服務(wù)器組且OPTIONS消息源是主用服務(wù)器組:啟動(dòng)探測(cè)主用存活的定時(shí)器,超時(shí),跳到1),否則退出。
4)次數(shù)清0,啟動(dòng)心跳定時(shí)器,超時(shí)后跳到1)。
5)尋找下一組服務(wù)器:
(1)若為相對(duì)主備或者絕對(duì)主備時(shí)當(dāng)前服務(wù)器組為主用服務(wù)器組,依次向后遍歷4組服務(wù)器,找尋不同于當(dāng)前服務(wù)器組的一組;
(2)若為絕對(duì)主備且當(dāng)前服務(wù)器組不為主用服務(wù)器組,則下一組服務(wù)器為主用服務(wù)器。
6)未找到下一組服務(wù)器,跳到4)。
7)找到下一組服務(wù)器,將UE存活態(tài)改為FAIL,該服務(wù)器組設(shè)為當(dāng)前使用的,跳到4)。
本文提出一種在IMS網(wǎng)絡(luò)架構(gòu)中基于SIP協(xié)議的雙歸屬服務(wù)器倒換技術(shù)的實(shí)現(xiàn)方案[6],并分析了解決方案的關(guān)鍵點(diǎn),設(shè)計(jì)可以同時(shí)支持兩種歸屬服務(wù)器的方案,在雙歸屬服務(wù)器算法中,詳細(xì)分情況論述了雙歸屬倒換機(jī)制的流程,提供了一種提高接入網(wǎng)與核心網(wǎng)連接的安全性與可靠性的新思路。
[1]YD/T 1522.5—2010,Technical requirements for session initiation protocol part5:Session initiation protocol based on the unified IMS[S].2011.
[2]龔德靜,宋薇.軟交換網(wǎng)絡(luò)中的雙歸屬實(shí)現(xiàn)方法[J].China Academic Journal Electronic Publishing House,2007(2):29-30.
[3]潘平.會(huì)話邊界控制UE服務(wù)器應(yīng)用的相關(guān)研究[J].廣東通信技術(shù),2010(5):13-15.
[4]錢蕾,施亞男,張艷.軟交換雙歸屬方案探討[J].數(shù)據(jù)通信,2007(1):30-32.
[5]IETF,RFC3261:SIP:Session initiation protocol[S].2002.
[6]陳羽,張治中,邢進(jìn).IMS網(wǎng)絡(luò)中基于策略的QoS視頻會(huì)話研究[J].電視技術(shù),2009,33(1):68.