本發明專利技術公開了一種碼流的解碼方法及裝置,包括:接收數據碼流,解析得到所述數據碼流中的屬性值對(AVP),為AVP構造哈希鍵值;對AVP進行解碼,將解碼結果保存到哈希表中;對AVP進行位置編碼,得到位置編碼信息,將位置編碼信息保存到哈希表中。采用本發明專利技術可以快速的解析DIAMETER數據碼流,并且通過編碼信息唯一地區分每個AVP值,為上層應用的使用提供了便利。
【技術實現步驟摘要】
一種碼流的解碼方法及裝置
本專利技術涉及直徑(DIAMETER)協議,尤其涉及一種碼流的解碼方法及系統。
技術介紹
計費系統和策略控制規則系統是業務產品的重要組成部分,目前與計費和策略控制規則系統交互普遍采用DIAMETER協議。在業務應用中,DIAMETER協議的解碼效率直接影響業務產品性能。目前傳統的對DIAMETER協議碼流解碼的方式,一般是將二進制碼流轉換為最終需要的數據結構,大多為樹型的層次結構,最后根據轉換得到的數據結構獲取DIAMETER協議碼流中的信息。目前是將二進制碼流轉換為樹型結構,而樹形結構的查找比較緩慢。在復雜多變的業務環境和不同的計費模式下,不能高效快速地從數據結構中獲取解碼結果。
技術實現思路
本專利技術要解決的技術問題是提供一種碼流的解碼方法及裝置,能夠快速解析DIAMETER協議數據碼流,供上層應用調用。為解決上述技術問題,本專利技術的一種碼流的解碼方法,包括:接收數據碼流,解析得到所述數據碼流中的屬性值對(AVP),為所述AVP構造哈希鍵值;對所述AVP進行解碼,將解碼結果保存到所述哈希表中;對所述AVP進行位置編碼,得到位置編碼信息,將所述位置編碼信息保存到所述哈希表中。進一步地,所述為所述AVP構造哈希鍵值的步驟包括:獲取所述AVP的碼(CODE)和制造商標識(VENDORID),將所述CODE和VENDORID作為所述AVP的鑰匙(KEY)信息進行保存;判斷所述AVP是否為組類型,如果是,則將所述AVP的KEY信息作為所述哈希鍵值。進一步地,如果判斷所述AVP不是組類型,則將所述AVP的KEY信息和該AVP的上一層AVP的哈希鍵值進行組合,作為所述AVP的哈希鍵值。進一步地,所述對所述AVP進行位置編碼,得到位置編碼信息的步驟包括:在所述AVP為組類型時,將所述AVP的位置信息作為所述AVP的位置編碼信息,所述位置信息是所述AVP在同層AVP中的序號。進一步地,在所述AVP不是組類型時,將所述AVP的位置信息與所述AVP的上一層AVP的位置編碼信息進行組合,作為所述AVP的位置編碼信息。進一步地,所述將編碼結果保存到所述哈希表中和所述將所述位置編碼信息保存到所述哈希表中的步驟包括:創建保存解碼結果的解碼鏈表和保存位置編碼信息的位置鏈表,將所述編碼結果保存在所述解碼鏈表上,將所述位置編碼信息保存在所述位置鏈表上,將所述解碼鏈表和位置鏈表插入到所述哈希表中。進一步地,還包括:在為所述AVP構造哈希鍵值后,在所述哈希表中查找是否存在相同的哈希鍵值,如果不存在,且所述AVP不是組類型,則進行所述解碼和位置編碼的操作;如果存在,則獲取所述哈希表中的元素,對所述AVP進行解碼和位置編碼,將解碼結果和位置編碼信息分別保存在所述解碼鏈表和位置鏈表中。進一步地,一種碼流的解碼裝置,包括:碼流解析單元、哈希鍵值構造單元、解碼單元和位置編碼單元,其中:所述碼流解析單元,用于接收數據碼流,解析得到所述數據碼流中的屬性值對(AVP);所述哈希鍵值構造單元,用于為所述AVP構造哈希鍵值;所述解碼單元,用于對所述AVP的值進行解碼,將解碼結果保存到所述哈希表中;所述位置編碼單元,用于對所述AVP進行位置編碼,得到位置編碼信息,將所述位置編碼信息保存到所述哈希表中。進一步地,所述哈希鍵值構造單元是用于獲取所述AVP的碼(CODE)和制造商標識(VENDORID),將所述CODE和VENDORID作為所述AVP的鑰匙(KEY)信息進行保存;判斷所述AVP是否為組類型,如果是,則將所述AVP的KEY信息作為所述哈希鍵值;如果不是,則將所述AVP的KEY信息和該AVP的上一層AVP的哈希鍵值進行組合,作為所述AVP的哈希鍵值。進一步地,所述位置編碼單元是用于在所述AVP為組類型時,將所述AVP的位置信息作為所述AVP的位置編碼信息,所述位置信息是所述AVP在同層AVP中的序號;在所述AVP不是組類型時,將所述AVP的位置信息與所述AVP的上一層AVP的位置編碼信息進行組合,作為所述AVP的位置編碼信息。綜上所述,采用本專利技術可以快速的解析DIAMETER數據碼流,并且通過編碼信息唯一地區分每個AVP值,為上層應用的使用提供了便利。附圖說明圖1是本專利技術實施方式的碼流解碼系統的架構圖;圖2是本專利技術實施方式的碼流解碼方法的流程圖;圖3是DIAMETER碼流內部結構的示意圖;圖4為本專利技術實施方式的碼流解碼裝置的結構圖。具體實施方式本實施方式提出了一種碼流的解碼方法,對DIAMETER協議碼流實現高效解碼,采用哈希表存儲AVP(AttributeValuePair,屬性值對)的值,根據碼流的樹形結構為每個AVP編碼,確保每個AVP都有唯一的編碼,并將父節點信息保存在AVP的編碼中,從而克服了哈希表存儲結構無法表現出DIAMETER協議樹形結構的缺點,達到高效解碼的目的。下面對本實施方式進行詳細說明。參考圖1和圖2,本實施方式的對DIAMETER協議碼流的解碼步驟,包括:步驟201:接收計費系統和策略控制規則系統的DIAMETER協議數據碼流,對DIAMETER協議數據碼流進行解析;如圖3所示為DIMAETER數據碼流的結構,ROOT節點為第0層,ROOT節點的子節點為第1層,ROOT節點的子節點的子節點為第2層,依次類推。步驟202:判斷解碼是否完成,如果未完成,則執行步驟203;如果解碼完成,則結束流程,將解碼結果發送給上層系統;步驟203:遍歷DIAMETER數據碼流,獲取碼流中的AVP;每一個AVP具有各自的類型、值、CODE(碼)和VENDORID(制造商標識)等,AVP的值根據不同的計費模式和不同的計費場景有所不同,例如,CC-Request-Type這個AVP,在初始信用請求/應答消息的碼流中值為INITIAL_REQUEST,在更新信用控制請求/應答消息的碼流中,值為UPDATE_REQUEST,在終止信用控制請求/應答消息的碼流中,值為TERMINATION_REQUEST。步驟204:將AVP的CODE(碼)和VENDORID(制造商標識)組成KEY(鑰匙)信息,作為AVP的標識信息進行保存;步驟205:判斷當前AVP的類型是不是已知的類型,如果是已知的類型,則執行步驟206;不是,則當成未知數據類型處理,直接執行步驟207;步驟206:從基礎哈希表中獲取數據類型,并保存AVP的類型信息,執行步驟207;在基礎哈希表中保存有已知的數據類型,可以將AVP的類型與基礎哈希表中的數據類型進行比較,從而獲知AVP的類型是不是已知的數據類型,如果是已知的數據類型可以進一步獲知當前AVP的類型。步驟207:為AVP構造哈希鍵值,并在解碼哈希表中查找是否存在相同的哈希鍵值,若不存在,執行步驟208;若存在,則執行步驟209;哈希鍵值作為AVP的唯一標識。步驟208:在AVP不是GROUP類型時,創建保存解碼結果的鏈表和位置編碼信息的鏈表,根據數據類型對AVP進行解碼,并對AVP進行位置編碼,將解碼結果和位置編碼信息分別保存在前面創建的兩個鏈表上,分別作為解碼鏈表和位置鏈表,插入到哈希表中;在AVP是GROUP(組)類型時,執行步驟202。編碼信息用于區分DIAMETER碼流中存在的多個相同的AVP,確保每個A本文檔來自技高網...

【技術保護點】
一種碼流的解碼方法,包括:接收數據碼流,解析得到所述數據碼流中的屬性值對(AVP),為所述AVP構造哈希鍵值;對所述AVP進行解碼,將解碼結果保存到所述哈希表中;對所述AVP進行位置編碼,得到位置編碼信息,將所述位置編碼信息保存到所述哈希表中。
【技術特征摘要】
1.一種碼流的解碼方法,包括:接收數據碼流,解析得到所述數據碼流中的屬性值對AVP,為所述AVP構造哈希鍵值;所述為所述AVP構造哈希鍵值的步驟包括:獲取所述AVP的碼CODE和制造商標識VENDORID,將所述CODE和VENDORID作為所述AVP的鑰匙KEY信息進行保存;如果判斷所述AVP不是組類型,則將所述AVP的KEY信息和該AVP的上一層AVP的哈希鍵值進行組合,作為所述AVP的哈希鍵值;對所述AVP進行解碼,將解碼結果保存到解碼鏈表中;對所述AVP進行位置編碼,得到位置編碼信息,將所述位置編碼信息保存到該哈希鍵值對應的位置鏈表中;其中,對所述AVP進行位置編碼,得到位置編碼信息的步驟包括:將所述AVP的位置信息,或者所述AVP的位置信息與所述AVP的上一層AVP的位置編碼信息進行組合,作為所述AVP的位置編碼信息;所述位置信息是所述AVP在同層AVP中的序號。2.如權利要求1所述的方法,其特征在于,所述對所述AVP進行位置編碼,得到位置編碼信息的步驟包括:在所述AVP為組類型時,將所述AVP的位置信息作為所述AVP的位置編碼信息。3.如權利要求2所述的方法,其特征在于:在所述AVP不是組類型時,將所述AVP的位置信息與所述AVP的上一層AVP的位置編碼信息進行組合,作為所述AVP的位置編碼信息。4.如權利要求1所述的方法,其特征在于,將解碼結果保存到解碼鏈表中和將所述位置編碼信息保存到該哈希鍵值對應的位置鏈表中的步驟包括:創建保存解碼結果的解碼鏈表和保存位置編碼信息的位置鏈表,將所述解碼結果保存在所述解碼鏈表上,將所述位置編碼信息保存在所述位置鏈表上,將所述解碼鏈表和位置鏈表插入到所述哈希表中。5.如權利要求4所述的方法,其...
【專利技術屬性】
技術研發人員:白麗娟,
申請(專利權)人:中興通訊股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。