王朝陽,曹龍漢,張治中
(1.重慶郵電大學(xué)通信網(wǎng)與測試技術(shù)重點實驗室 重慶 400065;2.重慶通信學(xué)院控制工程重點實驗室 重慶 400035)
中國移動LTE試驗商用網(wǎng)已經(jīng)在上海、廣州、深圳等城市實現(xiàn)了主城區(qū)的全覆蓋,LTE基站數(shù)已達(dá)到2萬個左右,LTE網(wǎng)絡(luò)也將逐漸在全國各個城市布局[1]。為了保證LTE網(wǎng)絡(luò)的質(zhì)量和穩(wěn)定性,對網(wǎng)絡(luò)的監(jiān)測顯得非常重要。LTE網(wǎng)絡(luò)測試儀通過對LTE網(wǎng)絡(luò)中各個接口信令數(shù)據(jù)的采集與分析,實現(xiàn)對整個LTE網(wǎng)絡(luò)運行狀況的監(jiān)測。LTE網(wǎng)絡(luò)測試儀采用分布式、模塊化、可組合的架構(gòu)體系,易于維護(hù)和擴展,能夠針對不同的需求進(jìn)行快速的個性化設(shè)計,對網(wǎng)絡(luò)的監(jiān)測更加高效、可靠、穩(wěn)定[2,3]。LTE網(wǎng)絡(luò)測試儀能夠進(jìn)行網(wǎng)絡(luò)監(jiān)測、故障定位和網(wǎng)絡(luò)優(yōu)化,為LTE網(wǎng)絡(luò)的運行維護(hù)提供強大的技術(shù)支撐,從而加速LTE網(wǎng)絡(luò)的推廣和產(chǎn)業(yè)化發(fā)展。S6a接口Diameter協(xié)議的監(jiān)測方案是LTE網(wǎng)絡(luò)測試儀中重要的組成部分,本文重點介紹監(jiān)測方案的設(shè)計,包括整體方案設(shè)計、協(xié)議解碼設(shè)計、CDR合成設(shè)計,并利用LTE現(xiàn)網(wǎng)數(shù)據(jù)對監(jiān)測方案進(jìn)行了測試。
S6a接口是 LTE網(wǎng)絡(luò)中 MME(mobility management entity,移動性管理實體)與 HSS(home subscriber server,歸宿用戶服務(wù)器)之間的接口,Diameter協(xié)議是S6a接口的應(yīng)用層協(xié)議,是支持基于IP技術(shù)的AAA框架的AAA協(xié)議。AAA包括認(rèn)證、計費和鑒權(quán)。認(rèn)證是網(wǎng)絡(luò)系統(tǒng)對用戶身份的確認(rèn);計費是指網(wǎng)絡(luò)系統(tǒng)根據(jù)用戶對資源的使用情況進(jìn)行收費;鑒權(quán)是指用戶在網(wǎng)絡(luò)系統(tǒng)授權(quán)的情況下以特定的方式使用其資源。網(wǎng)絡(luò)系統(tǒng)對特定用戶資源使用情況的準(zhǔn)確記錄是依靠認(rèn)證、計費、鑒權(quán)實現(xiàn)的,這樣既保障了合法用戶的權(quán)益,又保障了網(wǎng)絡(luò)系統(tǒng)安全可靠地運行。Diameter協(xié)議包括基礎(chǔ)協(xié)議、網(wǎng)絡(luò)接入服務(wù)協(xié)議、可擴展鑒別協(xié)議等,其作用是對用戶認(rèn)證、計費和鑒權(quán)等相關(guān)信息進(jìn)行處理[4]。
根據(jù)相關(guān)測試規(guī)范的要求,Diameter協(xié)議監(jiān)測主要包括以下幾個功能:Diameter協(xié)議簡單解碼、詳細(xì)解碼和CDR合成。Diameter協(xié)議監(jiān)測流程如圖1所示。
圖1 Diameter協(xié)議監(jiān)測流程
根據(jù)原始數(shù)據(jù)的不同來源,監(jiān)測模式可分為實時監(jiān)測模式和數(shù)據(jù)回放模式[6]。在實時監(jiān)測模式下,原始數(shù)據(jù)來源于采集卡捕獲的現(xiàn)網(wǎng)數(shù)據(jù);在數(shù)據(jù)回放模式下,原始數(shù)據(jù)來源于從現(xiàn)網(wǎng)上采集并已保存的數(shù)據(jù)。原始數(shù)據(jù)經(jīng)過S6a接口的篩選,將消息保存到消息緩存中。S6a接口解碼模塊從消息緩存中取出消息,逐跳逐層次地解碼,詳細(xì)解碼模塊獲得消息每一個比特的詳細(xì)信息,簡單解碼模塊只提取消息的關(guān)鍵字段,如消息特征字段信息等,并把關(guān)鍵字段封裝到CDR合成信息類中。CDR合成模塊的功能是把同一用戶同一業(yè)務(wù)中相關(guān)聯(lián)的信息組合在一起,形成一個完整的信令流程,如認(rèn)證、位置更新等。用戶在界面上可以根據(jù)需要觸發(fā)解碼、CDR合成等流程,或檢查網(wǎng)絡(luò)運行情況。
對各個模塊進(jìn)行獨立設(shè)計,并以動態(tài)鏈接庫的形式進(jìn)行連接,模塊之間耦合度低,功能獨立,從而既能防止故障擴散,又能縮短軟件開發(fā)周期,并具有良好的擴展性。
Diameter協(xié)議解碼由簡單解碼和詳細(xì)解碼兩部分組成。簡單解碼是CDR合成的基礎(chǔ),對信令消息進(jìn)行部分解析,主要包括消息ID、消息來源、消息接收時間、消息類型等基本信息,便于界面上的消息索引;詳細(xì)解碼是對消息進(jìn)行逐比特地解碼,將Diameter消息的所有字段全部解析出來,并將解碼結(jié)果反饋給顯示模塊用于界面呈現(xiàn)。解碼思路是采用逐跳逐層次的方式對消息進(jìn)行解析,將解碼函數(shù)模塊化、定義和實現(xiàn)相分離,從而提高代碼的獨立性和可移植性。
Diameter消息結(jié)構(gòu)如圖2所示[5],從功能上可以劃分為Diameter消息頭和一個或多個屬性值字段——AVP(attribute value pair,屬性值對)。Diameter消息頭包括版本號、消息長度、命令標(biāo)識位、命令字、應(yīng)用ID、逐跳標(biāo)識符和端對端標(biāo)識符;AVP字段用于封裝協(xié)議應(yīng)用的信息,如路由消息、計費消息等。
圖2 Diameter消息結(jié)構(gòu)
圖3 詳細(xì)解碼流程
針對Diameter消息結(jié)構(gòu)的特點,設(shè)計Diameter詳細(xì)解碼流程如圖3所示。在詳細(xì)解碼線程啟動后,詳細(xì)解碼函數(shù)通過函數(shù)入?yún)@取待解碼消息的數(shù)據(jù)長度和頭指針,然后函數(shù)會進(jìn)行數(shù)據(jù)是否有效的判斷,如Diameter的消息頭占20 byte,如果數(shù)據(jù)的長度小于20 byte,那么數(shù)據(jù)無效,解碼結(jié)束并返回解碼數(shù)據(jù)出錯的提示;如果數(shù)據(jù)有效,解碼函數(shù)獲取內(nèi)存池句柄和顯示語言的種類,同時調(diào)用diameter_fdecode函數(shù)對數(shù)據(jù)進(jìn)行解碼,解碼函數(shù)采用逐層解析的方式,首先解析Diameter的消息頭,然后解析Diameter消息體AVP字段。如果顯示的語言種類為中文,將調(diào)用中文的解碼函數(shù);如果是英文,將調(diào)用英文的解碼函數(shù)。
3.2.1 CDR合成算法設(shè)計
CDR合成是將消息按信令流程歸類,并按照特定關(guān)系將其關(guān)聯(lián)起來,還原出真實的通信流程,為流程查詢、網(wǎng)絡(luò)指標(biāo)統(tǒng)計和故障定位等功能提供數(shù)據(jù)支撐,是信令監(jiān)測中非常重要的環(huán)節(jié)[6]。
CDR合成通常采用紅黑樹索引合成算法,當(dāng)網(wǎng)絡(luò)中的數(shù)據(jù)量比較小時,使用此算法是高效、準(zhǔn)確的,但隨著網(wǎng)絡(luò)的飛速發(fā)展,網(wǎng)絡(luò)中的數(shù)據(jù)量急劇增加,繼續(xù)使用此算法會導(dǎo)致合成效率低下,部分合成結(jié)果不準(zhǔn)確。針對網(wǎng)絡(luò)中數(shù)據(jù)量龐大的問題,在CDR合成時提出了高效的緩存索引算法,以空間換時間,實現(xiàn)了監(jiān)測系統(tǒng)對海量數(shù)據(jù)的高效、準(zhǔn)確處理。緩存索引算法采用以特定的key值為索引、CDRID為映射值的數(shù)據(jù)結(jié)構(gòu)模式,對key值和待查找信息的存儲地址建立映射關(guān)系,并且映射關(guān)系是唯一的,這樣就可以通過key值直接找到其對應(yīng)的存儲地址,從而大大提高了合成效率。
3.2.2 CDR超時處理機制
采集數(shù)據(jù)時可能會出現(xiàn)分組丟失、設(shè)備故障等問題,從而有可能導(dǎo)致信令數(shù)據(jù)不完全等異常情況出現(xiàn),信令數(shù)據(jù)不完全會導(dǎo)致CDR合成無法結(jié)束,最終導(dǎo)致CDR合成錯誤。針對此問題,提出了超時處理機制,原理是通過建立鏈表記錄緩存索引中每個CDR的key值和超時時間,創(chuàng)建每個CDR時都在超時鏈表中添加一個節(jié)點,該節(jié)點的結(jié)構(gòu)體包括該CDR對應(yīng)的key值和預(yù)設(shè)的超時時間。每當(dāng)有新的消息進(jìn)入CDR合成模塊時,合成模塊都會調(diào)用CheckTimeCdr函數(shù)查詢并處理超時鏈表中的超時節(jié)點。在對鏈表中的超時節(jié)點處理完成后,合成模塊會刪除鏈表中的超時節(jié)點,這樣就消除了緩存索引表中超時的CDR。
3.2.3 CDR合成實現(xiàn)
根據(jù)Diameter協(xié)議的特點,S6a接口Diameter的CDR合成關(guān)鍵字采用目的IP地址、目的SCTP端口號、源IP地址、源SCTP端口號,四者均能唯一標(biāo)識傳送雙方,會話ID在同一個信令流程中是相同的,因此通過這幾個參數(shù)就能確定同一個信令流程。CDR合成建立在簡單解碼的基礎(chǔ)上,簡單解碼為CDR合成提供必要的信息,如Diameter的應(yīng)用ID、消息。CDR合成流程如圖4所示,具體分為如下幾步。
(1)簡單解碼結(jié)束,將合成所需的信息提交給合成模塊,并觸發(fā)合成。
(2)合成開始后,檢查緩存中的CDR是否存在超時的情況,如果有,則對超時的CDR進(jìn)行處理。
(3)從簡單解碼結(jié)果中提取Diameter的應(yīng)用ID進(jìn)行判斷。
(4)根據(jù)判定的結(jié)果進(jìn)入不同的應(yīng)用分支并進(jìn)行相應(yīng)的處理,以S6a接口的合成為例進(jìn)行說明。
(5)S6a合成模塊從簡單解碼的結(jié)果中提取建立合成緩存區(qū)所需要的key值。
(6)在S6a合成模塊的CDR緩存中查找是否有與當(dāng)前key值對應(yīng)的CDR,如果不存在,則進(jìn)行第(7)步,如果存在,就進(jìn)行第(8)步。
(7)在合成緩存區(qū)中插入key值,同時創(chuàng)建一個新的CDR,并為其分配一個CDR ID,同時將簡單解碼的結(jié)果填入對應(yīng)的CDR屬性中。
(8)在合成緩存區(qū)中找到與CDR ID對應(yīng)的CDR,并利用簡單解碼的結(jié)果更新該CDR,更新完成后判斷該CDR是否結(jié)束,如果沒有結(jié)束則進(jìn)行第(9)步,如果結(jié)束就進(jìn)行第(10)步。
(9)設(shè)置CDR超時時間,并將其放入S6a模塊的CDR緩存中,重復(fù)上述Diameter協(xié)議合成流程。
圖4 合成流程
(10)關(guān)閉該CDR,刪除超時節(jié)點,合成完成。
利用LTE網(wǎng)絡(luò)的現(xiàn)網(wǎng)數(shù)據(jù)對監(jiān)測系統(tǒng)進(jìn)行測試,包括解碼測試和CDR合成測試。LTE網(wǎng)絡(luò)測試儀中詳細(xì)解碼的界面顯示為用戶提供了中文和英文兩種語言,解碼結(jié)果以樹型結(jié)構(gòu)呈現(xiàn)。一條消息的中文解碼結(jié)果如圖5所示,在消息列表的消息特征欄中顯示這是一條位置更新消息,將Diameter協(xié)議展開,顯示Diameter協(xié)議的版本號、消息分組的長度以及命令標(biāo)識、命令碼、應(yīng)用標(biāo)識、跳到跳標(biāo)識、端到端標(biāo)識和一系列AVP值。從請求消息標(biāo)識位的值可知,該消息為update location request(即位置更新請求消息)。由解碼結(jié)果的樹型結(jié)構(gòu)可知,協(xié)議最上層為Diameter協(xié)議,底層依次是SCTP、IP、Ethernet協(xié)議,界面上對消息中的字段名、字段值、解釋及位掩碼等信息進(jìn)行了詳細(xì)說明。通過與原始數(shù)據(jù)及協(xié)議進(jìn)行對比,證實解碼結(jié)果是完整、正確的。
S6a接口上一次位置更新消息的CDR流程如圖6所示。首先MME向HSS發(fā)送一條認(rèn)證請求消息authentication information request,合成模塊提取這條消息的會話ID、源IP地址和目的IP地址、源STCP端口號和目的STCP端口號等信息,并創(chuàng)建CDR。HSS收到認(rèn)證請求消息后,向MME回復(fù)一條認(rèn)證響應(yīng)消息authentication information answer,合成模塊判斷該消息攜帶的key值后,對CDR進(jìn)行填充。在收到HSS發(fā)送的認(rèn)證響應(yīng)消息后,MME向HSS發(fā)送位置更新請求消息update location request,HSS又向MME發(fā)送位置更新響應(yīng)消息update location answer。在收到位置更新響應(yīng)消息后,合成模塊填充了位置更新結(jié)束時間,CDR合成結(jié)束。
在此次CDR合成中,用戶在HSS中注冊的IMSI為404309990000002,通過消息編號查找這4條消息的詳細(xì)解碼結(jié)果,這4條消息的會話ID一致,再結(jié)合相關(guān)協(xié)議規(guī)范中Diameter同一個信令流程中會話ID相同的原則,證明該CDR合成正確。
圖5 Diameter協(xié)議解碼結(jié)果
圖6 CDR合成流程
通過對LTE網(wǎng)絡(luò)S6a接口Diameter協(xié)議的研究,提出了針對Diameter協(xié)議的監(jiān)測方案,即協(xié)議解碼和CDR合成方案。監(jiān)測方案在開發(fā)時使用VS2010開發(fā)環(huán)境,利用面向?qū)ο蟮乃枷耄O(shè)計了模塊化的解碼方案和高效的CDR合成方案。該監(jiān)測方案已通過LTE現(xiàn)網(wǎng)數(shù)據(jù)的測試,取得良好的監(jiān)測效果。該監(jiān)測方案的設(shè)計方法對于設(shè)計LTE網(wǎng)絡(luò)中其他協(xié)議的監(jiān)測方案具有指導(dǎo)和推廣意義。
1 黃海峰.4G為移動互聯(lián)網(wǎng)帶來變革 中國移動TD-LTE發(fā)展思路明確.通信世界,2012(21)
2 李艷,張治中.LTE網(wǎng)絡(luò)S1AP監(jiān)測方案的研究與實現(xiàn).電信科學(xué),2013,29(1):31~38
3 李丹鳳,張治中.LTE網(wǎng)絡(luò)監(jiān)測系統(tǒng)中DHCP協(xié)議的解碼方案研究.電視技術(shù),2012,36(9):69~73
4 3GPP TS 29.272.Evolved Packet System (EPS);Mobility Management Entity(MME)and Serving GPRS Support Node(SGSN)Related Interfaces Based on Diameter Protocol(Release 12),2013
5 IETF RFC5516.Diameter Command Code Registration for Third Generation Partnership Project (3GPP)Evolved Packet System(EPS),2009
6 楊理想,張治中.GSM用戶感知系統(tǒng)中BTSM協(xié)議監(jiān)測方案研究.重慶郵電大學(xué)學(xué)報:自然科學(xué)版,2012,24(6):751~755