李 艷,張治中
(重慶郵電大學(xué)通信網(wǎng)與測試技術(shù)重點實驗室 重慶 400065)
作為3G與4G技術(shù)之間的一個過渡,LTE由于其眾多優(yōu)勢,成為全球移動通信的發(fā)展趨勢和方向[1]。在通信網(wǎng)絡(luò)的監(jiān)測方面,國內(nèi)外均有各種監(jiān)測產(chǎn)品,但主要針對2G和3G網(wǎng)絡(luò)如GSM、WCDMA、cdma2000等,而針對LTE網(wǎng)絡(luò)的監(jiān)測產(chǎn)品較少。在LTE網(wǎng)絡(luò)建設(shè)和優(yōu)化、維護過程中,對網(wǎng)絡(luò)質(zhì)量的測試和評估非常必要,完善LTE網(wǎng)絡(luò)監(jiān)測技術(shù)十分重要。S1接口將EPC和E-UTRAN連接起來,是LTE網(wǎng)絡(luò)中的核心節(jié)點,所有從接入網(wǎng)到核心網(wǎng)的信令都要經(jīng)過S1接口[2,3],若S1接口出現(xiàn)故障,對網(wǎng)絡(luò)造成的影響不可估計。S1AP是S1接口控制平面的應(yīng)用層協(xié)議,因此,對S1AP的監(jiān)測可以迅速感知網(wǎng)絡(luò)中各節(jié)點的運行狀況并定位故障,意義重大。
結(jié)合LTE網(wǎng)絡(luò)測試儀的功能和軟件架構(gòu),提出了S1AP監(jiān)測方案,分別對協(xié)議解碼、CDR合成、多段關(guān)聯(lián)和統(tǒng)計的設(shè)計與實現(xiàn)進行了詳細闡述。針對解碼模塊中傳統(tǒng)的全字段解析,本文采用定義和實現(xiàn)相分離的思想,提高了代碼的獨立性和可移植性;由于目前國內(nèi)外CDR合成多采用二叉樹的查找算法,無法滿足現(xiàn)網(wǎng)大數(shù)據(jù)量合成的需求,導(dǎo)致出現(xiàn)大量CDR合成信息丟失、合成不全的嚴重后果,通過采用散列索引和超時管理機制進行CDR合成,保證了合成的準確性和有效性;將多段關(guān)聯(lián)和統(tǒng)計模塊的處理流程嵌入合成流程中,增加了可靠性和實時性。最后結(jié)合大量仿真數(shù)據(jù)對S1AP監(jiān)測方案進行了測試和驗證,并對解碼模塊、合成模塊和多段關(guān)聯(lián)模塊的結(jié)果進行了展示和分析。分析結(jié)果表明,該方案能夠準確、有效地實現(xiàn)S1AP的信令監(jiān)測,達到預(yù)期目標。
S1AP作為LTE網(wǎng)絡(luò)監(jiān)測儀表不可缺少的監(jiān)測協(xié)議,其監(jiān)測方案的研究與開發(fā)依托于儀表架構(gòu)進行。LTE網(wǎng)絡(luò)監(jiān)測儀表通過采集卡捕獲LTE網(wǎng)絡(luò)中的信令數(shù)據(jù),并為信令數(shù)據(jù)加上分組頭后存入消息緩存,其中分組頭信息包括采集時的鏈路信息、時間戳和消息編號,消息編號由消息進入緩存的順序分配,其與消息之間是一一對應(yīng)的關(guān)系。
數(shù)據(jù)處理層對信令數(shù)據(jù)進行協(xié)議分析,并將分析結(jié)果提供給應(yīng)用層,用于界面顯示。結(jié)合LTE網(wǎng)絡(luò)監(jiān)測儀表的信令數(shù)據(jù)處理流程,S1AP的監(jiān)測主要包括協(xié)議解碼、CDR合成、多段關(guān)聯(lián)和統(tǒng)計4個部分,S1AP監(jiān)測總體架構(gòu)如圖1所示。
圖1 S1AP監(jiān)測總體架構(gòu)
圖1 中,原始數(shù)據(jù)指的是消息緩存中的信令數(shù)據(jù),讀取到數(shù)據(jù)后,進入解碼模塊對消息進行解碼,然后通過CDR合成模塊、統(tǒng)計模塊和多段關(guān)聯(lián)模塊進行協(xié)議分析,從而實現(xiàn)對S1AP的監(jiān)測。界面通過消息列表、過濾、CDR流程圖、協(xié)議層次和統(tǒng)計結(jié)果等來顯示S1AP分析結(jié)果,用戶通過查看界面的結(jié)果可獲取LTE網(wǎng)絡(luò)S1AP的運行情況。
解碼模塊包括進行全字段解析的詳細解碼和進行部分字段解析的簡單解碼、合成解碼。詳細解碼是將消息進行完整的解碼后,為界面提供顯示的信息;簡單解碼和合成解碼都只提取必要的信息,簡單解碼的結(jié)果直接用于界面的消息列表和過濾等功能,合成解碼的結(jié)果則直接提交給合成模塊,用于CDR合成。解碼過程思路是根據(jù)協(xié)議棧結(jié)構(gòu)對消息進行從底層到上層的 “逐層解析”[4],若S1AP中包含了NAS PDU,則還需進行NAS協(xié)議的解碼。
S1AP采用ASN.1的基本壓縮編碼(basic-PER)原則,不同消息中包括了多種類型的信息元素,同時還具有信息元素嵌套定義的特征[5]。S1AP消息的特點是手動解碼較為復(fù)雜,且很多公司推出了第三方的ASN.1編譯器,因此提出了采用ASN.1編譯器生成ASN.1解碼函數(shù)的方法,并在此基礎(chǔ)上進行二次解碼,以滿足LTE網(wǎng)絡(luò)測試儀的需求。ASN.1編譯器采用了共用體和鏈表結(jié)合的結(jié)構(gòu)用于存儲解碼結(jié)果,不同類型的消息結(jié)果采用共用體存儲,而消息內(nèi)部的協(xié)議信息單元則采用鏈表的方式進行存儲。根據(jù)ASN.1解碼函數(shù)輸出結(jié)果的特點,S1AP的解碼流程如圖2所示。
S1AP解碼流程中,首先需要通過S1AP消息參數(shù)(如數(shù)據(jù)頭指針、長度等)和PER模式構(gòu)造ASN.1解碼函數(shù)所需的數(shù)據(jù)塊,其中PER模式設(shè)置為對齊,該數(shù)據(jù)塊作為ASN.1解碼函數(shù)的輸入。其次調(diào)用ASN.1解碼函數(shù),獲取初始解碼結(jié)果。通過獲取到的消息類別和過程碼,確定該S1AP消息屬于哪種消息類型,具體實現(xiàn)為先對消息類別進行判斷,再調(diào)用對應(yīng)消息類別的解碼函數(shù),然后提取過程碼,并通過過程碼的取值來確定調(diào)用該消息類型的解碼函數(shù),以實現(xiàn)對消息的解碼。最后調(diào)用特定消息解碼函數(shù)進行解碼,針對消息類型定義不同的鏈表結(jié)構(gòu)和節(jié)點指針,采用循環(huán)結(jié)構(gòu)獲取該條消息中各信息元素。
圖2 S1AP解碼流程
CDR合成是將屬于同一通信過程的消息關(guān)聯(lián)在一起,是實現(xiàn)通信結(jié)果信息統(tǒng)計監(jiān)測和網(wǎng)絡(luò)性能測試的基礎(chǔ)[6,7]。對LTE網(wǎng)絡(luò)中的消息按不同的歸屬呼叫流程進行歸類,并利用散列索引和超時管理機制把這些屬于同一呼叫流程的消息關(guān)聯(lián)到一起,以便于完成如呼叫合成和呼叫呼損統(tǒng)計等各項高級功能。
對于S1AP消息來說,不同消息流程可以通過IP地址、SCTP端口號、eNode B UE S1AP ID和 MME UE S1AP ID來區(qū)分,其中IP地址和端口號可以唯一標識傳送地址,eNode B UE S1AP ID可以唯一標識eNode B內(nèi)S1接口上的UE,MME UE S1AP ID可以唯一標識MME內(nèi)S1接口上的UE,因此采用源、目的 IP地址,源、目的SCTP端口號,eNode B UE S1AP ID和MME UE S1AP ID共6個參數(shù)作為散列索引的關(guān)鍵字段key值,可以唯一確定一次通信過程。在合成模塊中,CS1AP Callnfo類用于提取消息的關(guān)鍵字段值,并提交給多段關(guān)聯(lián)模塊和統(tǒng)計出表模塊,是消息過程的基本表征載體??紤]到減少代碼量和保證代碼的整潔性,定義基本類CS1AP CDR用于存儲公共屬性,各子CDR都從CS1AP CDR派生。
S1AP監(jiān)測中,CDR合成采用超時管理機制來處理異常情形,為每個CDR設(shè)置一個超時時間,若CDR超過此時間就將其關(guān)閉。采用的超時管理機制通過建立專門的時間鏈表完成,該時間鏈表采用時間作為主線,并建立超時時間與CDR之間的對應(yīng)關(guān)系。在實際開發(fā)中,將超時管理的一些基本操作封裝成類模板CTimeCheck,以避免重復(fù)開發(fā)。CTimeCheck聲明為template
S1AP CDR合成的基本流程如圖3所示。
具體實現(xiàn)步驟如下。
(1)合成解碼結(jié)束后,提取合成所需信息,并觸發(fā)合成器,開始合成。
(2)全局CDR超時檢查,檢查全局CDR對應(yīng)的緩存中是否有超時的CDR,對超時CDR進行處理。
(3)使用S1接口的解碼結(jié)果,填寫全局CDR對應(yīng)的合成關(guān)鍵字key。
(4)在全局CDR對應(yīng)的緩存中查找是否有與該key匹配的全局CDR存在,如果有,則進入第(5)步,否則進入第(6)步。
(5)在全局CDR的緩存中插入key,生成一個合成節(jié)點,創(chuàng)建CDR并為其分配一個CDR ID,使用該消息攜帶的信息設(shè)置CDR屬性,同時設(shè)置該消息屬于全局CDR,進入第(7)步。
(6)從全局CDR緩存中獲取CDR,使用該消息攜帶的信息更新CDR屬性,同時設(shè)置該消息屬于全局CDR,并判斷該消息是否為全局CDR的結(jié)束消息,若不是結(jié)束消息,進入第(7)步,否則進入第(9)步。
(7)設(shè)置全局CDR的超時時間,將全局CDR存入緩存。
(8)結(jié)合S1AP和NAS協(xié)議的消息類型,判定該消息是否屬于某一子CDR的信令流程,是則進入對應(yīng)的子CDR合成,否則結(jié)束合成。
(9)關(guān)閉全局CDR,并刪除該全局CDR對應(yīng)的超時節(jié)點,合成結(jié)束。
圖3 S1APCDR合成基本流程
在CDR合成結(jié)果的基礎(chǔ)上,多段關(guān)聯(lián)實現(xiàn)S1接口與EPC側(cè)的接口之間的關(guān)聯(lián),關(guān)聯(lián)接口包括了S1接口、S6a接口和S11接口。通過多段關(guān)聯(lián)為用戶呈現(xiàn)完整的信令流程,從而獲取到完整的通信過程信息。在LTE網(wǎng)絡(luò)測試儀中,GTPv2-C協(xié)議主要定義了創(chuàng)建會話CDR、創(chuàng)建承載CDR、更新承載CDR、修改承載CDR、刪除承載CDR和刪除會話CDR,Diameter協(xié)議主要定義了鑒權(quán)CDR和更新CDR。一種類型的CDR對應(yīng)了一個信令流程,如S1AP的附著CDR對應(yīng)S1AP上的一次附著流程。因此,以上接口的多段關(guān)聯(lián)就可以轉(zhuǎn)換成對S1AP、GTP-C協(xié)議和Diameter協(xié)議3種協(xié)議CDR的關(guān)聯(lián)。
LTE網(wǎng)絡(luò)監(jiān)測儀表的多段關(guān)聯(lián)是基于文本配置,并采用了消息觸發(fā)機制,在CDR合成過程中,需要進行建立或索引的消息到來時,就觸發(fā)多段關(guān)聯(lián)對象完成關(guān)聯(lián)。多段關(guān)聯(lián)基于文本配置主要體現(xiàn)在關(guān)聯(lián)規(guī)則通過填寫文本配置文件進行設(shè)置,這樣就可以根據(jù)實際情況靈活地修改多段關(guān)聯(lián)規(guī)則[8]。不同的信令流程由不同消息交互完成,各消息攜帶的參數(shù)也不盡相同。因此,需要根據(jù)各信令流程之間的關(guān)系,選取不同的參數(shù)實現(xiàn)CDR之間的關(guān)聯(lián)。多段關(guān)聯(lián)處理流程如圖4所示。
圖4 多段關(guān)聯(lián)處理流程
以最典型的開機附著業(yè)務(wù)為例進行說明,手機開機就需要通過附著流程登記到網(wǎng)絡(luò)中,以獲取EPS的分組服務(wù)。在收到用戶發(fā)送的附著請求后,MME向HSS請求鑒權(quán)信息,之后如果鑒權(quán)成功,MME向SGW發(fā)送創(chuàng)建會話請求并通過SGW轉(zhuǎn)發(fā)至PGW,由PGW為UE分配IP地址等。結(jié)合附著業(yè)務(wù)的過程,將S1、S6a和S11接口之間所需關(guān)聯(lián)的CDR、關(guān)聯(lián)參數(shù)等關(guān)聯(lián)規(guī)則歸納為表1。
表1 附著業(yè)務(wù)關(guān)聯(lián)規(guī)則
通過表1可知,S1接口的附著CDR與S6a接口的鑒權(quán)CDR通過IMSI關(guān)聯(lián),S1接口的附著CDR與S11接口的創(chuàng)建會話CDR通過IMSI關(guān)聯(lián)。
統(tǒng)計模塊是對S1AP的統(tǒng)計,包括流量統(tǒng)計、消息統(tǒng)計和業(yè)務(wù)統(tǒng)計的功能。流量統(tǒng)計和消息統(tǒng)計是基于消息的統(tǒng)計,消息統(tǒng)計包括了對S1AP和NAS消息的統(tǒng)計,業(yè)務(wù)統(tǒng)計是基于CDR的統(tǒng)計,包括附著統(tǒng)計、E-RAB統(tǒng)計、切換統(tǒng)計、分離統(tǒng)計、跟蹤區(qū)更新和業(yè)務(wù)請求統(tǒng)計。統(tǒng)計結(jié)果通過界面直觀地呈現(xiàn)給用戶,此外還能通過excel表格輸出以滿足用戶的需求。流量統(tǒng)計、消息統(tǒng)計和業(yè)務(wù)統(tǒng)計的統(tǒng)計思想相同,區(qū)別主要在于統(tǒng)計指標不同,為提高處理效率,統(tǒng)計中也采用了散列方式進行索引,統(tǒng)計方法的具體處理流程如圖5所示。
統(tǒng)計基本處理流程主要包括以下步驟。
(1)判斷是否為第一次統(tǒng)計,若是則記錄第一次統(tǒng)計和本段統(tǒng)計的開始時間,并將統(tǒng)計狀態(tài)設(shè)置為統(tǒng)計中,然后填寫統(tǒng)計結(jié)束時間,若不是則直接填寫統(tǒng)計結(jié)束時間。
(2)進行單次統(tǒng)計,通過調(diào)用單次統(tǒng)計函數(shù)進行計算,生成單個統(tǒng)計結(jié)果記錄SItem。
(3)填寫統(tǒng)計關(guān)鍵字key,在緩存中查找是否存在與該key對應(yīng)的節(jié)點,如果是則獲取統(tǒng)計項對象,否則插入key并建立key與SItem的映射關(guān)系。
(4)進行統(tǒng)計運算,通過調(diào)用統(tǒng)計指標計算函數(shù),將SItem與統(tǒng)計項對象按照各統(tǒng)計指標進行計算獲取統(tǒng)計結(jié)果,并將統(tǒng)計結(jié)果存入緩存。
(5)判斷統(tǒng)計結(jié)束時間與本段開始時間之間的時間差是否大于或等于5 min,若是則將統(tǒng)計結(jié)果寫入索引文件中,清空緩存中的統(tǒng)計key以及與key對應(yīng)的統(tǒng)計項對象之間的映射關(guān)系,同時更新本段統(tǒng)計開始時間。
通過與原始數(shù)據(jù)及協(xié)議進行比對,S1AP的詳細解碼能夠準確地對選定的消息進行逐字節(jié)、逐比特的解碼,且解碼結(jié)果正確。如圖6所示的S1AP解碼結(jié)果,協(xié)議從底層到上層的顯示順序依次為Ethernet、IP、SCTP和S1AP,并通過字段名、字段值、解釋和位掩碼對消息進行詳細說明。
該消息的消息類別為成功輸出,過程碼為9,對應(yīng)的消息類型為初始上下文建立成功。此外,該消息還包含了
3個協(xié)議信息單元:ID為0,指示該字段為MME_UE_S1AP_ID,字段值為53;ID為8,指示該字段為 eNode B_UE_S1AP_ID,字段值為22;ID為51,指示該字段為E-RAB建立列表,里面僅包含了一個E-RAB,E-RAB ID為5,傳輸層地址為0xc0a803c9,GTP隧道斷電ID為0x0000001e。結(jié)合3GPP規(guī)范36.413對原始數(shù)據(jù)中突出顯示部分的16進制數(shù)據(jù)進行分析可知,該解碼結(jié)果準確。
圖7為用戶附著成功的CDR合成結(jié)果,UE的IMSI為在HSS中已注冊的460089990000003,該MME在對UE進行鑒權(quán)、認證等過程后,發(fā)送附著接受消息,再由UE發(fā)送附著完成消息。其中只有突出顯示的為附著流程的消息,整個流程中的其他消息都做了灰化處理,由此把屬于該附著CDR的消息與整個流程中的其他消息區(qū)分開來。對附著消息、附著接受和附著完成消息所攜帶小區(qū)號、M-TMSI等參數(shù)與CDR屬性相同,結(jié)合協(xié)議規(guī)范對流程圖和模擬場景的流程比較可知,合成準確。
圖8為開機附著業(yè)務(wù)關(guān)聯(lián)流程,由IMSI為460089990000001的UE執(zhí)行附著命令發(fā)起附著流程,其中eNode B的 IP地址為 192.168.124.131,MME的 IP地址為 192.168.124.128,HSS的 IP地 址 為 192.168.124.130,SGW的IP地址為192.168.124.129。MME接收到其中包含用戶的IMSI:460089990000001的附著請求后,向HSS發(fā)送鑒權(quán)請求消息,確認該用戶IMSI是否合法、加密算法是否匹配等。鑒權(quán)成功后,HSS向MME發(fā)送鑒權(quán)信息應(yīng)答消息進行確認。之后,MME又與HSS之間進行了更新位置的過程。鑒權(quán)成功后,MME向SGW發(fā)送創(chuàng)建會話請求消息,該消息中攜帶了用戶IMSI:460089990000001及用戶的PDN地址:20.20.20.1。該過程成功后,MME向用戶分配M-TMSI,并發(fā)送附著接受和附著完成消息,完成附著流程。實現(xiàn)了 S1AP的附著 CDR、Diameter的鑒權(quán) CDR和GTPv2的創(chuàng)建會話CDR之間的關(guān)聯(lián)。
圖7 附著成功的CDR合成結(jié)果
本文在研究LTE網(wǎng)絡(luò)監(jiān)測儀表架構(gòu)的基礎(chǔ)上,設(shè)計了S1AP監(jiān)測方案,具體分析了S1AP解碼模塊、CDR合成模塊、多段關(guān)聯(lián)模塊和統(tǒng)計模塊的實現(xiàn)方案。針對S1AP的特征,增加eNode B_UE_S1AP_ID和MME_UE_S1AP_ID參數(shù)作為散列索引的關(guān)鍵字段,并引入超時管理機制的概念,極大地提高了協(xié)議關(guān)聯(lián)和CDR合成及統(tǒng)計效率。該方案已應(yīng)用到LTE網(wǎng)絡(luò)監(jiān)測儀表中,并通過仿真數(shù)據(jù)測試,驗證了該協(xié)議監(jiān)測方案能有效地進行協(xié)議解碼、CDR合成、多段關(guān)聯(lián)和統(tǒng)計等功能,監(jiān)測效果良好。本文研究成果
的應(yīng)用,不僅為LTE網(wǎng)絡(luò)優(yōu)化提供了分析工具,也為網(wǎng)絡(luò)監(jiān)測和質(zhì)量評估提供強有力的支撐。
圖8 開機附著業(yè)務(wù)關(guān)聯(lián)流程
1 唐海.TD-LTE的標準化工作及進展.電信科學(xué),2009(1):22~26
2 3GPP TS 36.300.Evolved Universal Terrestrial Radio Access(E-UTRA)and Evolved UniversalTerrestrialRadioAccess Network(E-UTRAN),Overall Description V8.12.0,2010
3 3GPP TS 36.410.Evolved Universal Terrestrial Access Network(E-UTRAN),S1 General Aspects and Principles V8.3.0,2010
4 魏輝,張治中.TD-SCDMA網(wǎng)絡(luò)測試儀中SCCP解碼及上層PDU獲取方案.重慶郵電大學(xué)學(xué)報 (自然科學(xué)版),2007,19(1):47~52
5 3GPP TS 36.413.Evolved Universal Terrestrial Radio Access Network(E-UTRAN):S1 Application Protocol V8.10.0,2010
6 夏韃,雒江濤,張治中.TD-SCDMA測試儀中Iub接口CDR的合成方案.重慶郵電大學(xué)學(xué)報(自然科學(xué)版),2007(2):35~38
7 陳玉花,張治中,左書川等.TD-SCDMA網(wǎng)絡(luò)Iu-PS口CDR合成方案研究.電信科學(xué),2009(11):50~54
8 舒忠玲.基于文本配置文件的多段關(guān)聯(lián)方法.中國:CN 101527653A,2009