徐 陽,吳軍平
(1.光纖通信技術和網絡國家重點實驗室,湖北 武漢430074;2.武漢郵電科學研究院,湖北 武漢430074)
現代信息通信技術和互聯網的發展日新月異,為滿足新業務的豐富需求,現代通信網絡向以軟交換為核心NGN(下一代網絡,Next Generation Network)的演進勢在必行。ETSI TISPAN,ITU-T在研究NGN架構時,將IMS(IP多媒體子系統,IP Multimedia Subsystem)的概念引入到固網的NGN網絡架構中[1]。
目前,IMS作為承載各類綜合性業務的新型電信級網絡,如何保證業務的可靠性,當網絡設備發生故障后,業務如何快速恢復,成為IMS體系必須面對和解決的關鍵問題。本文通過研究一種基于SIP協議的“雙歸屬”倒換技術的實現方法,來解決上述問題。
當通信網絡出現由于無法抗拒的自然災害事故或一些不可預期的人為因素而引起故障時,需要一種能夠提供緊急通信的應急機制,傳統的PSTN網絡難以實現這種功能,因此“雙歸屬”技術應運而生。“雙歸屬”倒換技術可實現異地的容災備份,是IMS網絡的安全容災機制之一。通過相互備份處于異地的軟交換核心網元的方式,來確保其中某處核心網元設備出現故障時,另一處可全盤接管其業務,從而確保當網絡出現故障時業務不會中斷[2]。
基于SIP協議應用的雙歸屬倒換技術是當主用代理服務器斷網后,接入終端UE(用戶設備,User Equipment)可自動向備用代理服務器發起連接[3]。目前,不同的運營商對雙歸屬服務器倒換的要求不同,典型的包括絕對主備和相對主備,分別描述如下:中國移動的雙歸屬服務器要求是絕對主備,中國電信則要求相對主備。
絕對主備:當主用服務器異常后,UE探測備用服務器,若備用服務器正常工作,則UE的所有用戶全部倒換到備用服務器上。隨后,UE周期的探測主用服務器是否恢復正常可用。若主用服務器恢復正常,則該UE上的所有空閑用戶全部切換到主用服務器上,處于呼叫接續或通話過程中的用戶繼續留在備用服務器上。當上述處于呼叫接續或通話的用戶釋放呼叫或完成通話后立刻自動切回到主用服務器上。若當主用服務器異常后,UE探測到備用服務器也異常,則UE繼續在主備服務器之間不間斷的來回探測,直到其中一個服務器恢復正常可用,UE的所有用戶全部切換到該服務器上。
相對主備:當主用服務器異常后,UE探測備用服務器,若備用服務器正常工作,則UE的所有用戶全部倒換到備用服務器上,此時該備用服務器就動態變成了主用服務器,原主用服務器動態變成備用服務器。之后,只有在當前服務器異常情況下,UE才重新探測新備用服務器是否正常可用:若備用服務器可用,則UE的所有用戶全部切換到該服務器上,此時,該服務器又動態變為主用服務器;如果備用服務器不可用,則UE不間斷的來回探測主備服務器的可用性,若探測到某個服務器可用,則UE的所有用戶全部切換到該服務器上,此時該服務器就是主用服務器,另一個服務器就是備用服務器。
當主用服務器斷網后,UE能自動切換到備用服務器,恢復語音業務,在現實工程使用中,也有很高的工程應用價值。
NGN的核心網絡只有一個,即IMS,其核心特點為采用SIP協議和與接入的無關性。IMS中的服務器有PCSCF(代理CSCF,Proxy CSCF),I-CSCF(查詢CSCF,Interrogating CSCF),S-CSCF(服務CSCF,Serving CSCF)等邏輯組件,其中P-CSCF相當于傳統軟交換中的代理服務器,S-CSCF相當于注冊服務器[1]。在整個注冊、呼叫過程中P-CSCF和S-CSCF都必須參與工作,且其地址在終端發出的SIP消息中均有明確的表示。圖1描述了雙歸屬服務器的組網模式。

圖1 雙歸屬服務器的組網圖
服務器的主備將會有兩組主備:主備代理服務器和主備注冊服務器,這樣在實現主備應用時就有4種組合,約定探測組合的先后序列為:
1)探測主用代理服務器、主用注冊服務器;
2)探測備用代理服務器、主用注冊服務器;
3)探測備用代理服務器、備用注冊服務器;
4)探測主用代理服務器、備用注冊服務器。
2.2.1 如何探測服務器
首先,要在兩個雙歸屬服務器之間設置故障檢測機制[4],UE采用標準的SIP OPTIONS消息心跳檢測機制來進行對服務器的探測,根據RFC3261中的規定,標準的SIP非INVITEclient事務的重發間隔為0.5 s,1 s,2 s,4 s,4 s,4 s,4 s,4 s,4 s,4 s,最多發出11個OPTIONS消息,總時長約為32 s。當UE發出OPTIONS消息探測服務器而未收到響應時,就會按照上述規律進行重發,若在UE向服務器發出第一個OPTIONS消息40 s后仍未得到響應,則認為已與服務器斷開鏈接[5]。
在當前服務器組下UE發現通信中斷的判斷條件決定了何時需發起新一輪的服務器探測,這一點是首先必須弄清楚的。這里所說的通信中斷指服務器組不在線,不處理信令包。
當發現與服務器組通信中斷時,需探測下一組服務器。找到下一組服務器組后,用OPTIONS消息來探測服務器是否存在。UE按網關來發送OPTIONS消息(不建議按端口來發送OPTIONS消息,避免占用較多的網絡帶寬,但是UE應該能夠及時正確響應服務器按端口發送過來的OPTIONS請求消息),每次發送時,CSeq要遞增。
2.2.2 切換服務器的流程
尋找下一組服務器組流程:當前服務器組按2.1節中列出的服務器組組合順序向后依次尋找IP非空且與當前服務器組存在不同的服務器組,若4組都已遍歷,仍沒發現不同的服務器組,則認為沒有發現下一組服務器。采用這種確認下一組服務器的方法,配置單服務器組的情況就包含于沒有發現下一組服務器的分支中。
當找到了下一組服務器后,先用OPTIONS消息探測。若收到響應消息回復,則UE開始發送注冊消息請求;若發送N次未收到響應回復,則認為該服務器組不可用,尋找下一個服務器組。
2.2.3 同時支持兩種歸屬服務器的設計方案
首先說明UE存活態和UE注冊態這兩個概念。
注冊態:用于上報該UE是否存在注冊狀態為OK的端點,如果存在,為OK;不存在為FAIL。
存活態:指UE使用的服務器組是否存活。當OPTIONS消息收到響應或者有一個端口注冊包收到響應,即認為服務器組存活,值為OK;否則認為值為FAIL。僅當UE發生雙服務器切換,找到了下一組服務器組時,將存活態的值設為FAIL。
下面分別就兩種雙歸屬倒換技術提出設計方案:
1)相對主備
(1)OPTIONS消息總是朝當前服務器組發送。當前服務器組在上電時選取第一組,否則在切換時找到下一組服務器時再確定;
(2)收到OPTIONS消息響應時,認為可以使用(如果UE存活態為FAIL,就將其改為OK,同時發起注冊),繼續發送OPTIONS消息;
(3)未收到OPTIONS消息響應時,發生切換;
(4)發生切換時,找到了下一組服務器,將UE存活態置為FAIL,設置新的當前服務器組,發送OPTIONS消息。
2)絕對主備
(1)OPTIONS消息朝當前服務器組發送,但是在當前服務器非主用服務器組時,也需要朝主用服務器組發送,即主用注冊服務器和主用代理服務器;
(2)收到OPTIONS消息響應時,判斷消息的響應是否來自于當前服務器組,如果是,認為該服務器組可以使用(如果UE存活態為FAIL,就將其改為OK,同時發起注冊),如果不是,就要判斷當前是否是絕對主備且當前服務器非主用服務器組,且OPTIONS消息的響應來自于主用服務器組,即發生切換,否則丟棄該消息;
(3)未收到OPTIONS消息響應時,判斷該消息的源是否為當前服務器組,如果是,發送N次OPTIONS,N次超時發生切換,若不是,則需判斷當前是否為絕對主備且當前服務器非主用服務器組,且OPTIONS消息源是主用服務器組,繼續發送OPTIONS消息,否則丟棄該消息;
(4)收到OPTIONS消息響應時,判斷當前服務器組是否為主用服務器組,若不是,發生切換,否則認為可使用(若UE存活態為FAIL,就將其改為OK,同時發起注冊);
(5)未收到OPTIONS消息響應時,判斷當前服務器組是否為主用服務器組,若不是,繼續發送OPTIONS消息,否則發送N次,N次超時發生切換;
(6)發生切換時,判斷當前是否為主用服務器組:若不是,將UE存活態改為FAIL,將主用服務器組設為當前使用的,發送OPTIONS消息;否則,尋找下一組服務器,找到后,將UE存活態置為FAIL,設置新的當前服務器組,發送OPTIONS消息。
UE在某服務器組下正常工作,且心跳功能打開,默認UE存活態是OK。具體算法流程如圖2所示。

圖2 雙歸屬服務器流程圖
前提:UE在某服務器組下正常工作,且心跳功能打開,默認UE存活態是OK。
下文將詳細分析算法描述。
1)發送OPTIONS消息,向當前服務器組發送,發送次數加1,然后判斷是否為絕對主備且當前服務器非主用服務器組,增加向主用服務器組發送OPTIONS。
2)收到OPTIONS消息,分如下情況分類處理:
(1)消息的響應是否來自于當前服務器組,如果是:此時若當前UE存活態為FAIL,就將其改為OK,同時發起注冊,跳到4);如果不是:跳到(2);
(2)絕對主備且當前服務器非主用服務器組,且OPTIONS消息響應來自于主用服務器組,此時發生切換,跳到5),否則退出。
3)未收到OPTIONS消息,分如下情況分類處理:
(1)若消息源是當前服務器組:判斷是否發送了N次,如果未到N次,跳到1),如果到了N次,發生切換,跳到5);若消息源非當前服務器組:跳到(2);
(2)絕對主備且當前服務器非主用服務器組且OPTIONS消息源是主用服務器組:啟動探測主用存活的定時器,超時,跳到1),否則退出。
4)次數清0,啟動心跳定時器,超時后跳到1)。
5)尋找下一組服務器:
(1)若為相對主備或者絕對主備時當前服務器組為主用服務器組,依次向后遍歷4組服務器,找尋不同于當前服務器組的一組;
(2)若為絕對主備且當前服務器組不為主用服務器組,則下一組服務器為主用服務器。
6)未找到下一組服務器,跳到4)。
7)找到下一組服務器,將UE存活態改為FAIL,該服務器組設為當前使用的,跳到4)。
本文提出一種在IMS網絡架構中基于SIP協議的雙歸屬服務器倒換技術的實現方案[6],并分析了解決方案的關鍵點,設計可以同時支持兩種歸屬服務器的方案,在雙歸屬服務器算法中,詳細分情況論述了雙歸屬倒換機制的流程,提供了一種提高接入網與核心網連接的安全性與可靠性的新思路。
[1]YD/T 1522.5—2010,Technical requirements for session initiation protocol part5:Session initiation protocol based on the unified IMS[S].2011.
[2]龔德靜,宋薇.軟交換網絡中的雙歸屬實現方法[J].China Academic Journal Electronic Publishing House,2007(2):29-30.
[3]潘平.會話邊界控制UE服務器應用的相關研究[J].廣東通信技術,2010(5):13-15.
[4]錢蕾,施亞男,張艷.軟交換雙歸屬方案探討[J].數據通信,2007(1):30-32.
[5]IETF,RFC3261:SIP:Session initiation protocol[S].2002.
[6]陳羽,張治中,邢進.IMS網絡中基于策略的QoS視頻會話研究[J].電視技術,2009,33(1):68.