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