?

CDMA20001x EVDO網絡MM4+協議監測的實現

2013-08-13 05:07張治中
電視技術 2013年19期
關鍵詞:哈希解碼路由

張 嬌,張治中,陳 慧

(重慶郵電大學通信網與測試技術重點試驗室,重慶 400065)

隨著移動通信的發展,用戶對通信網絡的要求也越來越高。然而,由于傳統價值鏈上的運營商對市場的業務需求缺乏一整套靈活的反應機制,使得業務開發周期長、種類不夠豐富、收費模式單一,這與現代化通信需求相悖。因此,迫切需要一種新的價值鏈來促進電信產業的發展。這種新的業務需求被統稱為增值業務[1]。增值業務的產生,使得通信網絡多元化。與此同時,這也導致了網絡負荷的增加。為了保證網絡質量,使用戶能高效、便捷地使用增值業務,需要對增值業務信令進行監測及分析。通過對增值業務信令的監測,運營商可以有效地把握用戶的行為特征。本文針對增值業務中不同運營商多媒體消息互通問題,提供一個完善的、高效率的監測技術方案極。在CDMA20001x EVDO網絡中,增值業務位于業務網絡中,屬于上層網絡,通過Pi接口(PDSN與WAP網關)將業務網絡與CDMA2000網絡相關聯[2]。MM4接口在增值業務網絡中位于不同網絡的MMSC(多媒體信息服務中心)之間,是運營商最為關注的網絡監測接口之一,它實現了不同網絡之間的信息交互,這是保證增值業務能順利進行的前提。通過對其接口協議的解碼、消息流程操作等精確、全面的監測可以幫助解決不同運營商通信交互存在的問題[3]。作為CDMA2000運營商自定義的MM4接口中的MM4+協議,通過對該協議的分析、解碼、CDR(呼叫詳細記錄)合成、統計和存儲等過程,完整地呈現了點對點多媒體消息的流程。與此同時,本文借助哈希索引提出了一種新的CDR存儲方法,提高了監測效率。下面對其涉及到的原理及方法進行闡述。

1 MM4+協議及過程

作為CDMA2000運營商自定義的網關間多媒體消息業務交互協議,MM4+協議主要提供了點對點多媒體消息的前轉功能?;ヂ摼W關作為雙方網絡之間的接口網關,為雙方的多媒體消息系統之間進行數據交換提供了一條安全、快捷的通道?;ヂ摼W關之間采用直接連接或經過第三方網關轉接,雙方網絡通過互聯網關實現多媒體消息系統之間的互聯[3]。其主要協議層次及具體消息流程如圖1所示。

圖1 主要協議層次

圖1直觀地展現了MM4+協議的承載協議層次。MM4+ 協議通過 EthernetII(Physical Layer,Link Layer)、IP、TCP協議承載。在一條MM4+消息中,協議棧解碼的先后順序依次為EthernetII層、IP層以及TCP層,最后是MM4+層。MM4+協議是SMTP協議的一個演進,其在傳統的SMTP上新增了多媒體信息功能[4]。在本文中,將SMTP也視為MM4+消息,統一做監測操作。

圖2呈現了MM4+協議的消息流程。MM4+協議的消息主要包括路由前轉消息、路由前轉遞送報告消息以及路由前轉閱讀報告消息。每一種類型的消息都包含有請求和響應2個過程。其中,MM4+_forward.REQ為路由前轉請求,MM4+_forward.RES為路由前轉響應;MM4+_delivery_report.REQ為路由前轉遞送報告請求,MM4+_delivery_report.RES為路由前轉遞送報告響應;MM4+_read_reply.REQ為路由前轉閱讀報告請求,MM4+_read_reply.RES為路由前轉閱讀報告響應。其中,MM4+協議的消息格式為基于文本編碼的格式,類似于SMTP[5],如圖3所示。

圖2 消息流程示意圖

圖3 MM4+協議消息格式

如圖3所示,所有被采集到的數據為二進制比特流形式。通過解碼,可以將需要的數據直觀地呈現出來。其中在承載協議數據里面,需要提取的數據有:以太層的grekey參數;IP層的源、目的IP地址以及TCP層中的源、目的端口號。這些參數的提取為判斷是否為MM4+協議消息以及后面的合成起著至關重要的作用。

2 MM4+協議監測功能整體設計

根據相關測試規范的要求,CDMA20001x EVDO網絡MM4接口的MM4+協議監測模塊需要實現如下基本功能:協議數據單元的解碼與分析、MM4+CDR的合成、消息分類統計以及對統計分析結果的輸出等。MM4+協議監測過程中數據消息處理流程如圖4所示。

圖4 MM4+協議監測功能總體設計流程

首先,通過相應接口的數據采集卡將捕獲到的數據保存到消息緩存中,此數據包含有MM4+的相關數據。然后將消息緩存中的數據取出來,通過解碼器逐層解碼(就本協議而言,即依次調用EthernetII解碼器、IP解碼器、TCP解碼器,最后調用MM4+解碼器)。MM4+協議解碼主要分為合成解碼和詳細解碼。詳細解碼Fdecode則是使MM4+消息內的信息單元能顯示到信令工具中。在詳細解碼中,首先對傳入數據的長度、字節大小等參數進行判斷,如果滿足條件,則向協議棧申請一張數據表,然后逐字節、逐比特進行解碼,并將解碼結果填入該數據表中,記錄解碼結果。最后將數據表添加到鏈表中,并取出上層數據單元,詳細解碼操作結束;合成解碼parse的作用是為合成代碼做提取字段的準備,通過合成解碼將到達MM4+解碼器的各條消息得到每條消息的呼叫相關信息,上傳至協議分析器進行消息合成與統計[6]。由圖2可知,MM4接口上的MM4+協議主要有3種CDR,即路由前轉消息CDR、路由前轉遞送報告CDR以及路由前轉閱讀報告CDR。路由前轉消息CDR主要用來記錄多媒體消息前轉時的類型、方向以及涉及的摘要消息;路由前轉遞送報告CDR主要用于記錄遞送報告從接收方互聯網關路由前轉至始發方互聯網關,在MMS用戶代理提取MM以后要求接收方互聯網關必須給始發方互聯網關返回路由前轉遞送報告;路由前轉閱讀報告CDR用于記錄從接收方互聯網關到發送方互聯網關閱讀報告的路由前轉時的類型、方向及其涉及的摘要消息。首先,將底層(主要為EthernetII、IP層、TCP層以及MM4+層)解碼器中合成解碼提取到的合成所需字段傳入合成代碼,開始CDR合成。一條MM4+消息進入合成后,首先通過GREkey,源、目的端口號,源、目的IP來確定key值。再通過哈希索引,找到哈希表里生成的 CDRID,根據 CDRID判斷CDRBuf是否存在;若存在,則取出CDR,并修改CDR屬性;判斷CDR是否結束,若結束,則合成完成;若未結束,則修改CDR狀態,再將CDR存盤。若不存在,創建新的CDR,設置CDR屬性值,并將新的CDR存盤,合成完成。再將得到的呼叫合成結果記錄組成的CDR集合與自定義的呼叫統計結果,以文件形式保存在磁盤中。最后,根據用戶的需要顯示合成統計的結果。

3 哈希索引合成算法

CDR合成主要是根據一些關鍵參數的查找、匹配來確定是否屬于同一個消息流程,通過對關鍵參數的判斷得到傳入的消息是否屬于同一個CDR,然后建立關聯[5]。因此在這個過程中,需要提取一些協議內和協議間進行關聯的關鍵參數。另外,CDR合成涉及大量的查找、匹配,需要建立許多方便查找的索引,所以選取一個較好的建立索引的方法對提高CDR合成效率至關重要。本方案主要采用了Hash索引的方法。哈希算法的本質是構造一個哈希函數,而哈希函數就是關于查找元素與其對應位置的一個具體映射關系。哈希函數的設計很靈活,選取合適的關鍵字使得哈希函數值都落在允許的范圍內即可[6]。不同關鍵字可能會出現落在同一范圍內,這將會出現沖突。最理想的情況是建立查找函數與對應位置一一映射關系。下面針對本協議如何構建哈希函數以及如何選取key值才能使得沖突最小做相關介紹。

本設計構建哈希函數的做法是先將構成key值的關鍵字(源、目的IP和源、目的端口)做位或運算,然后再將結果與字段grekey相加。具體函數代碼如下:

uint32 GetHashValueByMm4PlusKey(const CMM4PlusKey&key)

{

uint32 uResult=0;

uResult=key.m_uSrcIP|key.m_uDstIP|key.m_uSrcport|key.m_uDstport;

uResult+=key.m_GREKey;

return uResult;

}

為避免沖突,本設計采取的的方法為將IP層的源、目的IP和TCP中源、目的端口以及GRE中的GREKey建立1個key類,通過將key與CDRID做關聯,即CHash<CDRID,CMM4PlusKey>。通過對這幾個字段的判斷,便能正確查找到CDR的CDRID,從而找到對應CDR。

4 一種新的CDR存儲方法

一個完整的CDR合成流程包括了請求和響應。CDR合成算法主要是根據一些關鍵參數進行查找、匹配來確定是否屬于同一個消息流程,因此在這個過程中,需要一些臨時存儲方式來保存沒有匹配到的消息,在內存分配上比較復雜,涉及動態分配內存[7]。在CDR合成結束后,所有內存會釋放。但是有時候需要在CDR釋放后再次查詢相應的CDR(統稱消息回放)用于分析用戶信息以及通信網絡。故保存CDR顯得極為重要。

4.1 CDR合成存儲原始操作

原始CDR存儲的主要思想為:在合成處理消息時,當一條消息進入合成時,該條消息有一個單獨的key,先通過哈希表索引出key對應的CDRID,然后通過CDRID查到對應的CDRBuf,并將該消息保存至CDRBuf中。如果后面進入一條消息為相同CDRID的消息時,即繼續添加到相應索引的CDRBuf中;如果進入合成中的消息經哈希索引到一個新的CDRID時,則在CDRBuf中查找對應的CDR,并在CDRBuf中存儲。具體流程圖如圖5所示。

圖5 原始CDR存儲流程圖

CDRBuf存盤的優點在于在原始數據很大但服務器內存有限的情況下,起一個緩存的作用,避免了數據“擁塞”,同時為消息回放流程提供了條件。但是在CDR合成中,若需添加、修改字段時,必須先修改CDR,然后通過哈希表查到CDRBuf,修改CDRBuf內CDR的值,才能保證用戶從CDRBuf中查到最準確的信息。這樣做的缺點是信令處理效率低下。隨著當代網絡的日益強大,用戶對效率的更高追求,提出了一種新的CDR存儲方案。

4.2 一種新的CDR合成存儲操作

為了提高效率,提出了一種新的解決方案,即舍棄CDRBuf,直接通過哈希表獲取CDR,然后通過一個寫文件操作進行存盤,這樣使處理速度變快,為與日俱增的現網數據處理提供極大的好處。流程圖如圖6所示。

圖6 新的CDR存儲流程圖

本設計不再使用CDRBuf,而是通過key值索引,直接將CDR存入哈希表中。在1個CDR合成操作完成后,直接通過寫文件操作將CDR寫入MR文件中。這樣做的好處是:在查找、修改流程的具體內容時,不再需要修改完CDR后,還需通過CDRID關聯查找到CDRBuf再做修改,然后才能完成的狀態。這樣使得實時數據的處理速度得到了很大提高,這也與新網絡時代對通信效率的高要求相吻合。

4.3 新舊CDR合成存儲的比較

在原始的CDR合成存儲中,通過CDRBuf存儲CDR。其作用在于在硬盤文件存取慢的情況下,起一個緩存的作用,這樣做的好處是避免了數據“擁塞”。CDRBuf為消息回放流程提供了條件。但是,在CDR合成中,因為用戶是從CDRBuf文件中查詢消息流程,所以在合成操作中,若需要修改、添加CDR,必須從CDRBuf中取出對應的CDR,對它進行相應的操作,操作完成后,還需要再將修改后的CDR放回CDRBuf中。很明顯,這樣的操作使得監測效率變低,與當代高效率需求相悖。新的CDR存儲舍棄了CDRBuf,直接通過哈希表獲取CDR,然后通過一個寫文件操作進行存盤,這樣做的好處是:在添加、修改流程的具體內容時,不用再從CDRBuf文件中取和存CDR,而是直接在哈希表里面做相應操作后再統一存盤,這樣使監測效率提高,為與日俱增的現網數據處理提供極大的便捷。這也與新網絡時代對通信效率的高要求相吻合。

5 實測數據及結果分析

圖7為一個正常消息流程的監測結果圖。其右側位置為詳細解碼結果。詳細解碼能將MM4+協議棧中的各層不同協議的具體字段及對應值清晰地呈現給用戶以及運營商,讓其對MM4+協議棧結構及信息單元有了更加深入的了解,為點對點多媒體消息業務監測技術的發展提供了基礎。MM4+協議合成模塊監測結果及流程圖如圖7原始數據上面部分所示。以路由前轉消息為例(另外2種消息類似),此為1個完整的路由前轉消息CDR,其中,10.137.17.55和10.137.19.130分別代表2個互聯網關地址,本條CDR一共包含2條消息。第1條為前轉請求消息;第2條為前轉響應消息。第2條消息表明針對IWGW1向IWGW2的前轉請求,IWGW2給予了1個回復,即不同運營商間的多媒體消息發送成功。

圖7 實測數據結果顯示(截圖)

6 小結

通過對CDMA2000網絡MM4+協議模塊的監測研究,結合協議內和協議間的關聯,利用高效的哈希索引算法以及一種新的CDR存儲方案,極大提高了協議關聯以及CDR合成及統計效率。本設計已應用到“重郵匯測CDMA2000網絡增值業務監測系統”中,并通過了現網數據的測試,驗證了本設計理論的有效性和可靠性。

[1]陶蒙華.電信增值業務平臺的體系架構極其發展趨勢[J].移動通信,2005(6):40-43.

[2]QB-W-XXX-2011,中國電信業務網絡設備技術規范——移動增值業務信令監測(全國)技術規范[S],2011.

[3]Q/CT 2052—2008,中國電信CDMA業務網絡接口協議技術規范M1/M4/M7接口協議規范[S].2009.

[4]IETF STD 0010(RFC 2821):“簡單郵件傳輸協議”(Simple Mail Transfer Protocol)[EB/OL].[2013-02-10].http://www.ietf.org/rfc/rfc2821.txt.

[5]IETF RFC 2046:“多用途因特網郵件擴展(MIME)第2部分:媒體類型”(Multipurpose Internet Mail extension(MIME)Part Two:Media Types)[EB/OL].[2013-02 -10].http//www.ietf.org/rfc/rfc2046.txt.

[6]宋光秀,張治中,王瑋,等.TD-SCDMA網絡Iub接口RRC協議監測研究與實現[J]. 電視技術,2010,34(11):124.

[7]夏韃,雒江濤,張治中.TD-SCDMA測試儀中Iub接口CDR的合成方案[J].重慶郵電大學學報:自然科學版,2007,19(1):35-38.

猜你喜歡
哈希解碼路由
《解碼萬噸站》
哈希值處理 功能全面更易用
文件哈希值處理一條龍
鐵路數據網路由匯聚引發的路由迭代問題研究
解碼eUCP2.0
一種基于虛擬分扇的簇間多跳路由算法
NAD C368解碼/放大器一體機
Quad(國都)Vena解碼/放大器一體機
探究路由與環路的問題
基于預期延遲值的擴散轉發路由算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合