程 方,楊 力,黃 建,蒲 偉
(重慶郵電大學通信網與測試技術重點試驗室 重慶 400065)
LTE是3G項目的長期演進,是3G和4G技術之間的一個過渡[1]。目前,中國移動正在主導建設LTE-TDD,并稱為TD-LTE。在2011年2月巴塞羅那舉辦的移動世界大會上,中國移動聯合全球多家主流運營商發起了全球TD-LTE發展倡議(GTI),這一倡議旨在促進TD-LTE的多方國際合作,共同解決TD-LTE發展的關鍵問題,加速推動TD-LTE的規模商用,實現TD-LTE在全球的應用和部署。隨著中國移動7個地市LTE規模實驗網開始建設,LTE已經成為目前通信網絡的大熱門[2]。
對于有序排列的消息來講,兩個相鄰的可選或條件性可選信元不可以是相同類型的信元,這是因為一旦其中任何一個信元不在,就無法確定另一個信元究竟是哪個參數。GTPv2協議引入了實例部分,很好地解決了這個問題:無論是信元有序還是無序,信元的定義順序不再受類型限制[3]。GTPv2協議運用在S5/S8/S4/S11等多個EPC重要接口,因此GTPv2的研究具有深遠而重要的意義。
本文的研究目的在于研究和實現一種LTE網絡GTPv2協議的監測技術,該項目來源于重慶某通信技術公司的LTE網絡測試儀,該測試儀采用模塊化思想,使軟件易于移植、維護和升級,同時降低了開發難度、測試的復雜度及開發成本,本文的工作是其中GTPv2模塊的實現。論文采用了一種將消息標識、偏移量結合起來標識某個上層信息分組的數學模型,有效地解決了定位消息所屬呼叫流程、高效存儲CDR、原始信令消息、統計數據等問題。
控制面GTPv2消息頭格式如圖1所示[4]。
控制面GTPv2消息頭采用可變長度消息頭。

(1)T
TEID 標識。當 T=0時,TEID 域不存在,k=0,m=0,n=5;當 T=1 時,TEID 域存在,k=1,m=5,n=9。
(2)Version
消息的版本標識,這里的值應為“010”。
(3)P
攜帶消息標識符。當P=0時,無攜帶消息;當P=1時,本條消息緊接著存在另一條GTPv2-C消息,即為當前消息的攜帶消息。
(4)Spare
發送端設置為0,接收端忽略該域。
GTP負責提供所有流程及隧道管理(創建、修改、釋放隧道)、位置管理消息等,UDP層協議則用于負責傳送信令消息[5]。每個GTP-C消息使用的源地址和目標IP地址以及UDP端口的值,取決于消息在消息交換中的作用。這條消息可以是一個初步的消息,或觸發的消息,觸發消息的觸發回復消息。一個初始消息包含發送方選擇的序列號,發送給對等GTP實體。發送觸發消息以響應初始消息。觸發回復消息可能被發送,用于響應觸發信息。
由圖2可知,GTPv2協議監測模塊主要由GTPv2解碼模塊及GTPv2協議分析模塊組成,通過接口提供外部需要的不同功能?,F網采集卡完成對不同鏈路實時網絡數據的捕獲。采集的原始數據經過預處理后保存到數據緩存區中,并由主控模塊調用GTPv2解碼模塊、GTPv2協議分析模塊進行相應的處理。為了提高網絡測試儀的處理效率,便于實現儀表功能升級,該測試儀采用模塊化思想,將GTPv2與下層各承載協議分離。

GTPv2解碼模塊由GTPv2簡單解碼、GTPv2詳細解碼、GTPv2合成解碼3個部分組成。其中,GTPv2簡單解碼及GTPv2合成解碼指嚴格按照消息到達的先后順序依次解碼分析處理,可以完成分片重組,在一個流程的不同消息之間傳遞較多的關聯信息,因此可以積累較多的信息,這些信息需要存儲下來,以供CDR過濾、消息過濾、CDR流程查看使用。GTPv2詳細解碼由用戶觸發,具有隨機性,可以先訪問第1條消息,接著訪問第70條消息。
GTPv2協議分析模塊由主控觸發,主要完成GTPv2消息流程的合成、統計功能以及完成多段關聯。解碼模塊以及協議分析模塊將自己相應的信息存入解碼過程中的永久信息緩沖區及CDR記錄緩沖區,并由應用進程通過接口調用對相應的結果進行呈現。
對于GTPv2的承載協議,GTPv2解碼按照 GTPv2協議對應的消息類型進行解碼。消息解碼在整個信令優化分析系統中占據舉足輕重的地位,是進行后續解析和合成的前提。對協議棧的消息進行解碼依據協議棧消息結構模型進行。解碼設計流程如圖3如示。

簡單解碼的目的是根據待解碼的數據,填充解碼結果表,并取出上層協議的分組交給協議棧,簡單解碼是為消息列表顯示和消息過濾時用的,外部對簡單解碼調用時,消息標識MSGID參數具有隨機性。
合成解碼的目的是根據待解碼的數據,為后臺CDR合成服務。外部在調用合成解碼時,會逐條按順序調用合成解碼,在被調用方式上與簡單解碼存在不同。理論上說,在注冊時,注冊過的字段,如果對合成沒有幫助,合成解碼可以不解碼,不填充;在注冊時還可注冊一些專門為合成解碼服務的自定義字段,在簡單解碼時可以不填充。這也是合成解碼與簡單解碼的區別。如果存在分片重組情況,合成解碼需要進行分片重組。
詳細解碼用于用戶詳細分析一個數據分組,需要依據協議,逐字節、逐比特進行解碼,并能生成解碼結果與原始數據的對應關系。對于分片重組的情況,詳細解碼只依據合成解碼分片重組處理的結果進行,如果存在重組,此時詳細解碼需要拼裝出新的PDU,以完成解碼結果與原始數據的對應。詳細解碼主要由用戶觸發,用戶想查看某個消息,就對某個消息進行詳細解碼,因此,調用詳細解碼時,消息標識MSGID具有隨機性。
合成的本質是對消息的處理,通過采集卡采集到核心網的消息只有時間順序和消息編號,如何在數百萬條中查找和定位與用戶業務相關或與信令相關的消息成為難點。本設計采用了散列索引合成方法。對GTPv2消息來說,不同的消息流程可以通過TEID(tunnel endpoint identifier)、IP地址、端口號來區分[6]。因此,以源、目的TEID,源、目的IP地址以及源、目的端口號作為散列索引的關鍵字段key值,該設計采用了除留余數法的散列方式。在合成模塊中,CGTPv2 CallInfor類用于提取消息的關鍵字段值,并提交給多段關聯模塊和統計出表模塊,是消息過程的基本表征載體。各接口的信令流程CDR類的字段值各有所不同,但也有相同的地方。將相同的字段提取為CDR基類,記錄消息的共同信息,如cdrid和各時間值等信息。再由CDR基類派生出各過程CDR子類,有助于明確各CDR所特有的字段。
對于每一條消息的分析流程如圖4所示。

步驟1:首先檢查消息是否超時,若超時刪除對應的關鍵字段key值,并將該CDRID對應的信息存盤。并根據CGTPv2CallInfor傳送過來的解析信息建立散列的關鍵字段key值。
步驟2:判斷該消息是否是創建會話請求消息,并根據關鍵字key值查找散列表,判斷CDR是否存在。若是創建會話請求消息轉到步驟3,不是會話請求消息并且能找到對應的CDR,轉到步驟5。
步驟3:如果沒找到對應的CDR,創建新的 CDR,填寫基類信息,用于記錄消息的共同信息;如果找到對應的 CDR,將關鍵字key值刪掉,并將該條信息存入 CDR緩存區。
步驟4:創建會話過程子CDR,轉到步驟7。
步驟5:取出該CDR信息,根據消息類型判斷是否是創建會話響應消息,如果是,修改父CDR中源、目的TEID的值。
步驟6:提取父CDR的屬性值,將相對應的父CDR屬性值賦給關鍵字段作為新的key值。
步驟7:結束本條消息的合成,進行下一條消息的合成。
LTE核心網絡中GTPv2協議運用于多個接口,如何將這些接口關聯是本設計的一個難點。其工作原理跟CDR合成的原理類似,負責將接收到的CDR信息進行整合。多段關聯的工作原理如圖5所示。

同一個流程CDR的不同消息之間存在關鍵的字段,不同接口的GTPv2協議中存在共同的源、目的TEID,源、目的IP地址,源、目的端口號。因此,在建立散列索引時只要將相同字段作為索引key值,每條消息到來時提取相應的key值,然后進行查詢,若存在關聯CDR將該CDR存儲,并更新CDR狀態。
通過與原始數據及協議進行比對,詳細解碼準確地對選定消息進行了逐字逐比特的分析。儀表對過程結果可以根據手機IMSI、源TEID、目的TEID等識別號進行過濾,準確、快速捕捉。
如圖6所示為合成的結果,471 s SGW向PDN GW發起創建會話請求消息過程,IMSI號為460089990000015的移動臺建立S5/S8接口的隧道,用于傳輸用戶數據。而在645 s的時候,用戶業務終止,又由PDN GW向MME發起刪除會話消息過程,刪除用戶的使用隧道標志。S5/S8接口建立隧道的時長為2.94 s。通過具體分析各CDR合成流程圖,證明了該合成技術的正確性與有效性。

本文介紹了GTPv2協議監測儀的功能設計方案,具體分析了GTPv2協議監測解碼模塊、協議分析模塊的具體實現形式。傳統的合成一般使用IP網絡傳輸特性,使用源IP地址、目的IP地址、源端口號、目的端口號和序號來標識CDR過程,而在GTPv2協議監測消息中增加了源TEID、目的TEID關鍵字段,且不同的消息對應的TEID個數以及意義有所不同,GTPv2協議在LTE核心網絡中應用于多個接口,因此選取關聯字段、關鍵字段是本方案的難點。
最后將方案編程實現,得到測試結果。測試結果表明:方案能正確有效地進行協議解碼、協議分析、消息合成、CDR過濾、查找、導出等,且程序穩定可靠,監測效率較高。本方案已經用于重慶中天重郵通信技術有限公司的LTE測試儀中,效果良好。
1 唐海.TD-LTE的標準化工作及進展.電信科學,2009(1)
2 林輝.LTE-Advanced的標準化情況.電信科學,2009(1)
3 黃韜,劉韻潔,張智江等.LTE/SAE移動通信網絡技術.北京:人民郵電出版社,2009
4 3GPP TS 29.274 V8.4.0.Evolved General Packet Radio Service(GPRS)Tunnelling Protocol for Control plane(GTPv2-C)
5 夏韃,雒江濤,張治中.TD-SCDMA測試儀中Iub接口CDR合成方案.重慶郵電大學學報(自然科學版),2007,19(1):35~38
6 Manjua M,Varaprasad G.Implementation of Decoders for LTE Inferface Message.Journal of Ubiquitous Systems&Pervasire Networks,2011,2(3):55~58