李 勇,雒江濤,2,黃 建
(1.重慶郵電大學(xué)通信網(wǎng)與測試技術(shù)重點試驗室,重慶400065;2.重慶中天重郵通信技術(shù)有限公司,重慶401121)
隨著近幾年中國通信業(yè)的快速發(fā)展,通信網(wǎng)絡(luò)運維中存在的網(wǎng)絡(luò)質(zhì)量、服務(wù)質(zhì)量等問題越來越突出,這為各測試設(shè)備廠商提供了新的機遇和挑戰(zhàn)。原有的網(wǎng)絡(luò)監(jiān)測方法主要是通過測試儀表來實現(xiàn),這種方法相對落后,一般在網(wǎng)絡(luò)出現(xiàn)故障后才使用,實現(xiàn)方式被動,接口單一,無法滿足運營商對網(wǎng)絡(luò)監(jiān)測的需求。在這種情況下,一種能夠?qū)θW(wǎng)運行狀況進行實時監(jiān)測并預(yù)警,對故障進行定位分析的監(jiān)測系統(tǒng)概念孕育而生。
以往的信令監(jiān)測手段實時性及準確率低。采用的紅黑樹的CDR(Calling Detail Record)索引算法遍歷速度慢,執(zhí)行效率低,訪問CDR造成硬盤讀寫次數(shù)過大,速度慢。監(jiān)測系統(tǒng)要對數(shù)據(jù)進行實時采集、實時分析,好的信息索引方式對解決CDR合成效率問題至關(guān)重要。
為了提高合成效率,我們采用了哈希索引合成的方法,建立以KEY值為索引、CDRID為映射值的數(shù)據(jù)結(jié)構(gòu)管理模式,解決以往索引效率低下等難題。
SIP作為軟交換網(wǎng)絡(luò)的關(guān)鍵協(xié)議,用于創(chuàng)建并控制雙方或多方參加的多媒體會話[1]。結(jié)合對SIP協(xié)議的分析,亦可采用這一高效的合成技術(shù)應(yīng)用于SIP協(xié)議的監(jiān)測中。
該系統(tǒng)以實時處理為核心,以分布采集、集中分析方式實現(xiàn)對網(wǎng)絡(luò)的網(wǎng)元及接口的綜合監(jiān)測。由遠端的信令采集模塊提供實時的信令數(shù)據(jù),用戶要對某種電信業(yè)務(wù)行為進行分析、統(tǒng)計時,會讀取相關(guān)的數(shù)據(jù)并進行信令處理,然后提供給用戶網(wǎng)絡(luò)性能及業(yè)務(wù)統(tǒng)計、計費核查數(shù)據(jù)、監(jiān)測設(shè)備狀況和網(wǎng)絡(luò)優(yōu)化分析等應(yīng)用報告,監(jiān)測網(wǎng)絡(luò)中的異常情況,自動彈出告警信息,有效地協(xié)助用戶完成故障的分析與定位,從而對網(wǎng)絡(luò)的優(yōu)化和調(diào)整提供信息和依據(jù)[2]。
為了滿足系統(tǒng)集中分析的要求,信令監(jiān)測平臺的架構(gòu)可分為數(shù)據(jù)采集部分、信令處理管理模塊、信令處理模塊、基礎(chǔ)應(yīng)用部分和存儲模塊等。信令監(jiān)測平臺架構(gòu)如圖1所示。
圖1 信令監(jiān)測平臺架構(gòu)圖Fig.1 The structure of signaling monitoring platform
數(shù)據(jù)采集模塊主要負責(zé)將網(wǎng)絡(luò)中的信令數(shù)據(jù)通過數(shù)據(jù)采集卡成功提取。
信令處理管理模塊內(nèi)設(shè)數(shù)據(jù)采集服務(wù)端與遠端的采集設(shè)備交互,信令處理服務(wù)端等與相應(yīng)處理進程交互。應(yīng)用服務(wù)器是各設(shè)備命令交互中心,負責(zé)用戶權(quán)限管理,是所有客戶端訪問信令分析平臺的總接口。
信令處理模塊是整個信令處理部分,包括對采集到的數(shù)據(jù)進行協(xié)議解碼、CDR的合成及統(tǒng)計。
基礎(chǔ)應(yīng)用部分基于數(shù)據(jù)庫存儲的信令數(shù)據(jù),完成實時鏈路監(jiān)測、告警監(jiān)測、拓撲管理、網(wǎng)絡(luò)統(tǒng)計和業(yè)務(wù)分析、消息和CDR詳細記錄查詢等應(yīng)用功能。
存儲模塊存儲信令處理后的工程信息及信令統(tǒng)計信息,并將數(shù)據(jù)表通過入庫系統(tǒng)導(dǎo)入數(shù)據(jù)庫,提供給上層應(yīng)用平臺,用于上層處理。
SIP協(xié)議是由IETF于1999年提出的一種實時通信應(yīng)用信令協(xié)議,其最終目標是為所有因特網(wǎng)成功的應(yīng)用提供無所不在的接入,成為聯(lián)系因特網(wǎng)和電信、多媒體的媒介。SIP工作在應(yīng)用層,與其它協(xié)議相互合作,例如:RTP(Real-time Transmit Protocol)用于傳輸實時數(shù)據(jù)并提供服務(wù)質(zhì)量(QoS)反饋,RTSP(Real-Time Stream Protocol)用于控制實時媒體流的傳輸,SDP(Session Description Protocol)用于描述多媒體會話。SIP協(xié)議網(wǎng)絡(luò)層協(xié)議為IP,傳輸層協(xié)議為TCP或UDP。
SIP協(xié)議棧結(jié)構(gòu)如圖2所示[3]。
圖2 SIP協(xié)議棧Fig.2 SIP stack
本文根據(jù)相關(guān)測試規(guī)范的要求[4],創(chuàng)新性地提出了一種對SIP協(xié)議的監(jiān)測設(shè)計方案,其實現(xiàn)的功能主要有協(xié)議解碼、CDR合成、性能統(tǒng)計等。
SIP是一個基于文本的分層協(xié)議,類似于HTTP,至頂向下依次為事務(wù)用戶層(TransactionUser)、事務(wù)層(Transaction)、傳輸層(Transport)以及語法和編碼層(Syntax and Encoding)[5]。SIP消息采用UTF-8字符集。根據(jù)SIP協(xié)議的消息格式,所有的SIP消息均由起始行、頭域部分和消息體(可選)組成。由于SIP消息格式層次性及靈活性,如復(fù)合行、縮略頭域標識、線性空白(Line White Space,LWS)等,因而采用正則表達式匹配解碼的手段可有效解析SIP消息內(nèi)容。
呼叫合成是指將屬于同一次呼叫及信令流程的消息關(guān)聯(lián)起來,并記錄與該呼叫流程相關(guān)的屬性信息。這里關(guān)鍵問題是如何解決在消息處理過程中同一個時刻可能存在成千上萬個未完成的呼叫,如何組織這些消息能很快找到其所屬的呼叫流程[6]。在設(shè)計中,為了完成快速查找的工作,對SIP消息來說,不同的呼叫均可以通過呼叫標識(Call-ID)和源、目的URI標簽來區(qū)分??紤]到消息的關(guān)聯(lián)我們采用哈希索引的方式,以Call-ID、ToTag、FromTag作為Hash索引的關(guān)鍵KEY值,并通過一定的散列算法,獲得一個唯一的散列值,從而完成對同一呼叫流程消息的合成。我們采用了CDRID為映射值的數(shù)據(jù)結(jié)構(gòu)管理模式,對于每一個流程由CDRID唯一標識,從而完成對不同呼叫流程的索引。SIP呼叫合成設(shè)計流程如圖3所示。
圖3 SIP呼叫合成的總體流程Fig.3 The whole process of SIP CDR synthesis
對于每一條消息,分析的流程都是按照“重發(fā)檢查※有效性檢查※處理※記錄”的思路進行。
步驟1:當(dāng)一條SIP數(shù)據(jù)消息到來,首先判斷消息類型,成功解碼后將協(xié)議分析時需要的數(shù)據(jù)存儲在SIPCallInfo這個結(jié)構(gòu)體中;
步驟2:當(dāng)進入?yún)f(xié)議分析模塊后,首先進行超時檢測,將根據(jù)SIPCallInfo傳送過來的關(guān)鍵信息建立該Hash索引的關(guān)鍵KEY值;
步驟3:然后通過該KEY值遍歷存儲SIP數(shù)據(jù)流CDR的哈希模板,在合成緩沖區(qū)中搜索相關(guān)關(guān)鍵字的節(jié)點是否存在;
步驟4:如果找到則執(zhí)行步驟5,如果沒有找到,則說明該表中沒有相關(guān)的記錄,判斷如果是起始消息,則在Hash表中添加一個CDR節(jié)點,并為之指派唯一ID,修改新CDR屬性值并保存,否則返回;
步驟5:根據(jù)此KEY在SIP CDR緩存中搜索到當(dāng)前消息屬于某條CDR,則根據(jù)消息類型(呼叫信息中),調(diào)用不同的消息處理函數(shù)進行處理;修改CDR屬性信息及SIP攜帶的SDP信息并保存消息ID,然后判斷該消息是否是CDR結(jié)束消息,若該消息包含結(jié)束指示,則從緩存區(qū)中移除KEY,然后結(jié)束合成,否則修改狀態(tài)指示并將CDR放回緩存。
在合成中要特別注意INVITE消息的處理。由于INVITE消息是一個事務(wù)的起始,它在一個呼叫中可能以多種身份出現(xiàn),即一開始是呼叫發(fā)起,而后續(xù)收到的INVITE消息可能是鑒權(quán)、重定向,也可能是呼叫保持、修改會話,或者是重發(fā)。這些不同的后續(xù)流程涉及到CDR中不同的處理方式。所以必須要把這些不同流程區(qū)分開,而依據(jù)除了某個狀態(tài)特有的標志外,主要靠CSeq的序號以及INVITE事務(wù)結(jié)束的標志位,與INVITE事務(wù)配合使用的CANCEL、BYE等消息通過CSeq序號一致性相關(guān)聯(lián)。
在合成中記錄CDR開始、結(jié)束時間,主被叫號碼、計費類型、接通、應(yīng)答、通話時長等信息的流程,通過這些信息就可以掌握每一條呼叫詳細記錄,從而提供給統(tǒng)計模塊進行不同維度的分析處理。
SIP統(tǒng)計模塊的設(shè)計方案如圖4所示。在SIP合成模塊設(shè)置觀察者線程,分析不同消息類別的合成處理,從而設(shè)置調(diào)用不同的觀察者函數(shù)。在CDR結(jié)束標志標識的消息處,調(diào)用pSipCdrChange->On-CDREnd()函數(shù),觸發(fā)SIP統(tǒng)計觀察模塊并將CDR相應(yīng)屬性信息入隊列存入緩存,并通過統(tǒng)計處理模塊將CDR信息出隊列,以CDR結(jié)束時間為統(tǒng)計開始時間并設(shè)置統(tǒng)計粒度(時間),當(dāng)前時刻超過統(tǒng)計結(jié)束時刻,就執(zhí)行SIP呼叫控制KPI統(tǒng)計函數(shù),并生成統(tǒng)計數(shù)據(jù),通過入庫系統(tǒng)將數(shù)據(jù)供上層應(yīng)用平臺分析。
該KPI信息中有呼叫信息的基本屬性(如主叫號碼等),還有接通時長、網(wǎng)絡(luò)接通次數(shù)、網(wǎng)絡(luò)呼損次數(shù)等。
圖4 SIP統(tǒng)計模塊的設(shè)計流程Fig.4The design flow chart of SIP statistics module
此監(jiān)測技術(shù)已經(jīng)應(yīng)用到軟交換網(wǎng)絡(luò)信令監(jiān)測系統(tǒng)中,圖5為軟交換網(wǎng)絡(luò)信令監(jiān)測系統(tǒng)對現(xiàn)網(wǎng)數(shù)據(jù)的監(jiān)測結(jié)果,這是一條詳細呼叫記錄的分析。該方案不同于信令監(jiān)測儀表對數(shù)據(jù)的回放,它支持通過Web界面的在線流程圖查詢,并可查看多段關(guān)聯(lián)的信令流程。
圖5 SIP CDR合成Fig.5 SIP CDR synthesis
通過Hash算法對節(jié)點進行插入和刪除的操作,其時間復(fù)雜度的理論值最好為O(1),最差為O(n)。如果選取的表項(m)足夠多,且Hash函數(shù)足夠好的話,當(dāng) m≤n時,其時間復(fù)雜度為O(n/m);當(dāng) m>n/lg(n)時,Hash表的平均表現(xiàn)就比二叉樹要好;當(dāng)m≥n時,其時間復(fù)雜度趨近于O(1),相對于紅黑樹有很大的提高。實測表明,采用Hash技術(shù)大大提高了合成的時效性和準確性。
在實際現(xiàn)網(wǎng)測試的時候會出現(xiàn)大量的“合成中”的CDR,這是由于采集到的數(shù)據(jù)不完整造成的,如果不及時終止合成,會造成系統(tǒng)資源的嚴重浪費。本方案在設(shè)計中加入了超時機制的判斷,實測中該問題得到了有效解決。
通過對軟交換網(wǎng)絡(luò)集中監(jiān)測系統(tǒng)的架構(gòu)及模塊分析,筆者提出了一種符合測試規(guī)范要求的SIP協(xié)議監(jiān)測子模塊的設(shè)計方案。該方法的創(chuàng)新點在于:采用了一種新的合成算法,并且利用高效Hash索引有效解決了合成的難題;設(shè)計觀察者為統(tǒng)計模塊和多段關(guān)聯(lián)提供接口。該方案已通過測試,效果良好,對其它協(xié)議的監(jiān)測具有良好的借鑒意義。但是由于系統(tǒng)對數(shù)據(jù)采集及實時分析的要求比較高,如何有效保證高的處理速率和準確率仍有待研究與解決。
[1]Schlzrinne H,Rosenberg J.The Session initiation protocol:Internet Centric signaling[J].IEEE Communications Magazine,2008(1):134-141.
[2]胡曉娟,周立巖.軟交換信令監(jiān)測系統(tǒng)的研究[J].電信科學(xué),2007,23(1):34-37.HU Xiao-juan,ZHOU Li-yan.Research on the Soft-switching Monitoring System[J].Telecommunications Science,2007,23(1):34-37.(in Chinese)
[3]司端鳳,韓心慧,龍勤.SIP標準中的核心技術(shù)與研究進展[J].軟件學(xué)報,2005,16(2):239-250.SI Duan-feng,HAN Xin-hui,LONG Qin.A Survey on the Core T echnique and Research Development in SIP Standard[J].Journal of Software,2005,16(2):239-250.(in Chinese)
[4]中國電信DC1軟交換信令監(jiān)測系統(tǒng)項目測試功能規(guī)范書[S].The functional specification book of China T elecom DC1softswitch signaling monitoringsystem project testing[S].(in Chinese)
[5]Internet RFC 3428,Campbell B,Rosenberg J.Session initiation protocol(SIP)extension for the instant messaging[S].
[6]夏韃,雒江濤,張治中.TD-SCDMA測試儀中 Iub接口CDR的合成方案[J].重慶郵電大學(xué)學(xué)報(自然科學(xué)版),2007,19(1):35-38.XIA Da,LUO Jiang-tao,ZHANG Zhi-zhong.Scheme of CDR synthesis on Iub interface in TD-SCD MA network analyzer[J].Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition),2007,19(1):35-38.(in Chinese)