張 毅
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
近年來,隨著 IMS技術(shù)的日益成熟與完善而被越來越廣泛的應(yīng)用到通信領(lǐng)域中。其中CSCF是IMS系統(tǒng)中最核心的呼叫控制網(wǎng)元,主要負(fù)責(zé)各種會話的創(chuàng)建、維持和拆除等功能,所以人們對其穩(wěn)定性、擴(kuò)容性、抗毀性等提出了越來越高的要求,可以通過將集群技術(shù)與CSCF相結(jié)合的方法來滿足這些需求。而SIP協(xié)議作為CSCF最為重要的協(xié)議,所以在CSCF集群技術(shù)的研究中也是必須突破的一個重點。
IMS系統(tǒng)中最核心的呼叫控制網(wǎng)元[1]CSCF可以細(xì)分為代理CSCF(P-CSCF,Proxy CSCF)、問詢CSCF(I-CSCF,Interrogating CSCF)和服務(wù)CSCF(S-CSCF,Serving CSCF)三類。
P-CSCF主要提供轉(zhuǎn)發(fā)從用戶來的SIP消息到相應(yīng)的 I-CSCF或者 S-CSCF;轉(zhuǎn)發(fā)從 I-CSCF或者S-CSCF來的SIP消息到用戶等功能。
I-CSCF主要提供從歸屬用戶服務(wù)器(HSS,Home Subscriber Server)處得到S-CSCF的地址;在用戶注冊時為其分配 S-CSCF;轉(zhuǎn)發(fā) SIP消息到S-CSCF等功能。
S-CSCF是IMS呼叫控制中最重要的一類網(wǎng)元,主要提供注冊注銷、會話的管理控制和路由功能,并且能夠根據(jù)從HSS處下發(fā)的過濾規(guī)則進(jìn)行相應(yīng)的業(yè)務(wù)觸發(fā)[2],實現(xiàn)與應(yīng)用服務(wù)器(AS,Application Server)之間的交互,從而為用戶提供更為豐富的業(yè)務(wù)。
服務(wù)器集群系統(tǒng)通俗的講就是把多臺服務(wù)器通過快速通信鏈路連接起來,從外部看來這些服務(wù)器就像一臺服務(wù)器在工作,而從內(nèi)來說外面來的負(fù)載通過一定的機(jī)制動態(tài)的分配到這些節(jié)點機(jī)中去,從而達(dá)到超級服務(wù)器才有的高性能、高可用。
集群系統(tǒng)具有高可伸縮性[3]、高可靠性、高性能和高可管理性[4]等優(yōu)點。其中高可伸縮性是指可以根據(jù)用戶的實際需求通過增加或者刪除集群中的服務(wù)器節(jié)點從而達(dá)到擴(kuò)容或者降低成本等目的;高可靠性是指當(dāng)集群中的某臺服務(wù)器工作失效時,集群中另一臺服務(wù)器可以快速的接替其工作,從而避免因單點失效而無法為用戶服務(wù)的情況;高性能是指可以通過負(fù)載均衡技術(shù)把工作負(fù)載合理的分配到集群的各個服務(wù)器上,從而提高整體的運行效率;高可管理性是指在運維管理上可以把整個集群作為一個單一的系統(tǒng)來進(jìn)行管理[4]。
SIP協(xié)議[1]是 IMS系統(tǒng)中用于呼叫控制的最核心的協(xié)議,此協(xié)議用于用戶與 P-CSCF以及三種CSCF之間的會話控制過程,可提供會話管理、確定被叫是否可用、主被叫雙方會話參數(shù)的建立、確定會話所使用的媒體等功能[5]。
SIP定義了兩種類型的消息:請求,從客戶機(jī)發(fā)到服務(wù)器的消息,如 INVITE、ACK、BYE、REGISTER等;響應(yīng),從服務(wù)器返回客戶機(jī)的消息,如成功響應(yīng)2XX、臨時響應(yīng)1XX等。
SIP消息由起始行、頭域和消息體三部分組成。
1)起始行:位于每個SIP消息的開頭,起始行包含的內(nèi)容有消息類型和協(xié)議版本。
2)頭域:SIP頭在語法和語義上與超文本傳輸協(xié)議(HTTP,Hypertext Transfer Protocol)的頭域相同,其格式為<名字>:<值>。SIP的頭域類型很多,如Via頭域、Route頭域、From頭域、To頭域等,其作用都是用來傳遞消息屬性。
3)消息體:消息體部分為可選項,用于描述被初始化的會話。
后續(xù)介紹中未單獨提及 P-CSCF、I-CSCF、S-CSCF的描述則表示其規(guī)則適用于所有類型的CSCF。
CSCF集群的兩種實現(xiàn)方法分別如圖 1和圖 2所示。
在這兩種實現(xiàn)方法中CSCF集群均由集群控制器和多個CSCF服務(wù)器組成,其中P-CSCF集群和S-CSCF集群中的CSCF服務(wù)器之間可以根據(jù)相應(yīng)的策略組成兩兩互備。集群內(nèi)部設(shè)備之間可以采用以太網(wǎng)進(jìn)行連接組成一個小型的內(nèi)部局域網(wǎng),并且采用內(nèi)部私有地址進(jìn)行通信。集群對外則采用外部公有地址進(jìn)行通信。
圖1 CSCF 集群實現(xiàn)方法一
圖2 CSCF集群實現(xiàn)方法二
其中集群控制器提供如下功能:
1)收集CSCF服務(wù)器上的工作負(fù)載情況。
2)收集CSCF服務(wù)器的工作狀態(tài)。
3)對收到的SIP等協(xié)議根據(jù)負(fù)載均衡策略發(fā)送到集群中某個CSCF服務(wù)器上進(jìn)行處理,但是在某次通信過程中一旦選擇了某個CSCF服務(wù)器為此次通信服務(wù)則必須采用此CSCF服務(wù)器為其服務(wù)直至此次通信結(jié)束。
集群中的CSCF服務(wù)器提供如下功能:
1)負(fù)責(zé)提供相應(yīng)的會話控制功能。
2)P-CSCF集群和S-CSCF集群中的某個CSCF服務(wù)器上所記錄的一些信息(如 S-CSCF上的用戶屬性)要實時的同步到它的備用CSCF服務(wù)器上。
由于P-CSCF和S-CSCF在用戶注冊成功后分別會記錄一些信息為后續(xù)的用戶呼叫通信進(jìn)行服務(wù),所以對于P-CSCF集群和S-CSCF集群所采取的負(fù)載均衡策略是用戶數(shù)最小權(quán)值策略,即當(dāng)用戶進(jìn)行注冊時,集群控制器從集群中選擇一個用戶數(shù)最小的CSCF服務(wù)器為其進(jìn)行注冊服務(wù)。用戶注冊成功后發(fā)起后續(xù)的通信時,集群控制器也會選擇此用戶注冊時所選定的CSCF服務(wù)器為其進(jìn)行呼叫通信的服務(wù)。
對于 I-CSCF集群所采取的負(fù)載均衡策略則可以采用負(fù)載最小權(quán)值策略,即集群控制器為某次通信從集群中選擇當(dāng)前工作負(fù)載最小的 I-CSCF服務(wù)器為其進(jìn)行服務(wù)。
在CSCF集群實現(xiàn)方法一中,SIP協(xié)議流程如圖3所示。外部設(shè)備與此CSCF服務(wù)器集群通信時,外部設(shè)備將SIP消息發(fā)送到此集群的集群控制器上(步驟①),再由集群控制器根據(jù)相應(yīng)的負(fù)載均衡策略將消息發(fā)送到某個CSCF服務(wù)器上進(jìn)行處理(步驟②);當(dāng)CSCF服務(wù)器需要往外發(fā)送SIP消息時,先將消息發(fā)送到集群控制器上(步驟③),再由集群控制器將此SIP消息發(fā)送出去(步驟④)。其中往外發(fā)送的SIP請求中與本集群相關(guān)的路由信息中的地址為本集群對外采用的外部公有地址。
圖3 SIP協(xié)議流程一
在CSCF集群實現(xiàn)方法二中,SIP協(xié)議流程如圖4所示。當(dāng)外部設(shè)備發(fā)送 SIP請求消息到此 CSCF服務(wù)器集群時,請求消息的目的地址為此集群控制器的外部公有地址(步驟①),集群控制器根據(jù)相應(yīng)的負(fù)載均衡策略將 SIP請求消息發(fā)送到某個 CSCF服務(wù)器上進(jìn)行處理(步驟②);當(dāng)CSCF服務(wù)器需要往外發(fā)送SIP請求時,直接從此CSCF服務(wù)器上往外發(fā)送,其中SIP請求中與本集群相關(guān)的路由信息(如Via頭)中的地址為此CSCF服務(wù)器對外的公有地址(步驟③)。外部設(shè)備收到請求消息并進(jìn)行處理后要發(fā)送SIP應(yīng)答消息到CSCF服務(wù)器集群時,應(yīng)答消息的路徑沿先前的請求消息的路徑返回(步驟④、⑤、⑥)。
圖4 SIP協(xié)議流程二
CSCF集群所涉及的其它協(xié)議(如Diameter)的處理原理類似于SIP協(xié)議,在此就不做進(jìn)一步的闡述了。
在P-CSCF集群和S-CSCF集群中CSCF服務(wù)器之間可以通過兩兩互備的方式來提高其可用性?;涞膬蓚€服務(wù)器之間采用心跳線來監(jiān)控對方是否正常工作,并且要進(jìn)行實時的信息同步,同步的信息內(nèi)容主要為與通信相關(guān)的一些記錄信息。在集群控制器處要記錄CSCF的互備組合和監(jiān)控CSCF服務(wù)器的工作狀態(tài)。當(dāng)集群中某個CSCF服務(wù)器出現(xiàn)故障時,其備份的CSCF服務(wù)器可以快速的接管其工作,從而以最快的速度恢復(fù)通信。其中信息同步和心跳線均可以采用以太網(wǎng)的方式來實現(xiàn)。
如圖5所示,假設(shè)CSCF1為用戶群1服務(wù),CSCF2為用戶群2服務(wù),CSCF1與CSCF2互為備份,并且這些信息在集群控制器處都有記錄。在正常情況下集群控制器會將用戶群1的通信交由CSCF1處理,將用戶群2的通信交由CSCF2處理,并且CSCF1會將用戶群1的一些與通信相關(guān)的信息實時的同步到CSCF2上,CSCF2也會將用戶群2的一些與通信相關(guān)的信息實時的同步到CSCF1上。如果CSCF1工作異常,不僅集群控制器會得知其工作狀態(tài),而且CSCF2會通過心跳線立即檢測出來,此時CSCF2會做好為用戶群1服務(wù)的準(zhǔn)備。一旦與用戶群1相關(guān)的通信到達(dá)此集群,則集群控制器會將其發(fā)送到 CSCF2上進(jìn)行處理。當(dāng)CSCF1恢復(fù)正常后,CSCF2會將用戶群1的一些與通信相關(guān)的信息傳給CSCF1,然后由CSCF1繼續(xù)為用戶群1的通信服務(wù)。
圖5 CSCF互備
通過對兩種CSCF集群實現(xiàn)方法的介紹和分析,實現(xiàn)了CSCF與集群技術(shù)的結(jié)合,增強(qiáng)了CSCF應(yīng)用的可靠性和可伸縮性,從而實現(xiàn)了一種更優(yōu)的CSCF的使用方式。
[1]強(qiáng)磊,饒少陽,陳卉,等.IMS核心原理與應(yīng)用[M].北京:人民郵電出版社,2008,11(01):8-9,20-23.
[2]趙飛,趙化明.IMS網(wǎng)絡(luò)中多媒體彩鈴業(yè)務(wù)的研究與實現(xiàn)[J].通信技術(shù),2011,44(07):111.
[3]李莉,盧春,楊柯.LVS:優(yōu)秀的服務(wù)器集群解決方案[J].信息安全與通信保密,2011(09):75.
[4]賴建峰,林永怡.淺談服務(wù)器集群技術(shù)在數(shù)字化校園中的應(yīng)用[J].硅谷,2011(09):136.
[5]曾井泉,劉鎮(zhèn).IPv4/IPv6混合網(wǎng)絡(luò)中的SIP通信解決方案[J].通信技術(shù),2009,42(03):132.