基于HASH表的Diameter消息處理方法和裝置制造方法
【專利摘要】本發(fā)明實施例公開了種基于HASH表的Diameter消息處理方法和裝置。該方法中,在Diameter節(jié)點(diǎn)初始化時,僅分配用于存儲Diameter會話關(guān)鍵字串和業(yè)務(wù)處理單元的對應(yīng)關(guān)系信息的內(nèi)存空間,而未分配用于存儲Diameter會話關(guān)鍵字串的內(nèi)存空間;當(dāng)收到Diameter消息并需要建立會話時,才分配用于存儲該會話的關(guān)鍵字的內(nèi)存空間,并基于HASH運(yùn)算創(chuàng)建該關(guān)鍵字串與業(yè)務(wù)處理單元的對應(yīng)關(guān)系,從而實現(xiàn)了Diameter會話關(guān)鍵字串的內(nèi)存空間的動態(tài)管理,與現(xiàn)有技術(shù)相比,節(jié)省了HASH表的內(nèi)存空間。
【專利說明】基于HASH表的Diameter消息處理方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉一種基于HASH表的Diameter消息處理方法和裝置?!颈尘凹夹g(shù)】
[0002]Diameter協(xié)議是為一種為滿足網(wǎng)絡(luò)訪問控制要求的AAA (Authentication,Authorization and Accounting,認(rèn)證、授權(quán)、計費(fèi))協(xié)議,Diameter協(xié)議由基礎(chǔ)協(xié)議和應(yīng)用協(xié)議組成,為各種認(rèn)證、授權(quán)和計費(fèi)業(yè)務(wù)提供了安全、可靠、易于擴(kuò)展的框架。
[0003]如圖1A所示,SAE (3GPP系統(tǒng)架構(gòu)演進(jìn))架構(gòu)中,支持Diameter協(xié)議的節(jié)點(diǎn)稱為Diameter 節(jié)點(diǎn),Diameter 節(jié)點(diǎn)包括 MME(Mobility Management Entity,移動性管理實體)、HSS (Home Subscriber Server,歸屬簽約用戶服務(wù)器)、PCRF (Policy and Charging RulesFunction,策略控制計費(fèi)規(guī)則功能)實體、PGW (Packed Data Network Gateway,分組數(shù)據(jù)網(wǎng)絡(luò)網(wǎng)關(guān))等。其中,S6a接口、Gx接口、Rx接口、Sp接口等使用Diameter協(xié)議。
[0004]為滿足負(fù)載均衡和容災(zāi)備份的要求,SAE架構(gòu)中的Diameter節(jié)點(diǎn)采用分布式部署。如圖1B所示,Diameter節(jié)點(diǎn)中包括一個全局處理單元和多個業(yè)務(wù)處理單元,全局處理單元通常是指主控板,業(yè)務(wù)處理單元通常是指業(yè)務(wù)板。
[0005]全局處理單元維護(hù)Diameter會話與業(yè)務(wù)處理單元的對應(yīng)關(guān)系的HASH(哈希)表,以保證將屬于同一個會話的Diameter消息發(fā)送到同一個業(yè)務(wù)處理單元進(jìn)行處理。Diameter消息中的SessionID (會話標(biāo)識)是Diameter會話的唯一標(biāo)識。
[0006]當(dāng)PCRF實體的全局處理單元根據(jù)收到的CCR (Credit Control Request,信用控制請求)消息創(chuàng)建Diameter會話時,將該消息中的SessionID作為HASH表項的Key (關(guān)鍵字),將業(yè)務(wù)處理單元地址作為HASH表項的Data (值),插入到HASH表中。后續(xù)對于接收到的同一會話的CCR消息,全局處理單元會根據(jù)消息中的SessionID進(jìn)行HASH表的查找并處理。
[0007]使用HASH表存儲SessionId和業(yè)務(wù)處理單元對應(yīng)關(guān)系,雖然能夠高效進(jìn)行HASH表插入和查找,但內(nèi)存消耗較大。假定SessionId的最大長度為128字節(jié),業(yè)務(wù)處理單元地址為4字節(jié),在最大承載200W用戶呼叫量的情況下,HASH表初始化時需分配的空間大小為128 字節(jié) *200W+4 字節(jié) *200W=260MB。
[0008]由此可見,現(xiàn)有技術(shù)中使用固定空間大小的HASH表來存儲SessionId和業(yè)務(wù)處理單元對應(yīng)關(guān)系,導(dǎo)致內(nèi)存空間消耗過大。
【發(fā)明內(nèi)容】
[0009]本發(fā)明實施例提供了一種基于HASH表的Diameter消息處理方法及設(shè)備,用以解決使用固定空間大小的HASH表來存儲SessionId和業(yè)務(wù)處理單元對應(yīng)關(guān)系,導(dǎo)致內(nèi)存空間消耗過大的問題。
[0010]本發(fā)明實施例提供的基于HASH表的Diameter消息處理方法,包括:
[0011]初始化時,根據(jù)最大用戶數(shù)分配內(nèi)存空間,所述內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,所述內(nèi)存空間采用HASH表結(jié)構(gòu);
[0012]當(dāng)根據(jù)接收到的第一 Diameter消息建立會話時,執(zhí)行:確定用于處理所述第一Diameter消息所屬會話的第一業(yè)務(wù)處理單元,將所述第一 Diameter消息發(fā)送給所述第一業(yè)務(wù)處理單元;從所述第一 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第一關(guān)鍵字串,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;分配第一內(nèi)存塊,將所述第一關(guān)鍵字串存入所述第一內(nèi)存塊;對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中。
[0013]上述方案中,由于在初始化時僅分配用于存儲關(guān)鍵字串和業(yè)務(wù)處理單元的對應(yīng)關(guān)系信息的內(nèi)存空間,而未分配用于存儲Diameter會話關(guān)鍵字串的內(nèi)存空間;當(dāng)收到Diameter消息并需要根據(jù)該消息建立會話時,才分配用于存儲該會話的關(guān)鍵字串的內(nèi)存空間,并基于HASH運(yùn)算創(chuàng)建該關(guān)鍵字串與業(yè)務(wù)處理單元的對應(yīng)關(guān)系,從而實現(xiàn)了 Diameter會話關(guān)鍵字串的內(nèi)存空間的動態(tài)管理,與現(xiàn)有技術(shù)相比,節(jié)省了用于存儲Diameter會話關(guān)鍵字及其與業(yè)務(wù)處理單元的對應(yīng)關(guān)系的內(nèi)存空間。
[0014]在一種優(yōu)選方式中,所述內(nèi)存空間包括第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間;初始化時,根據(jù)最大用戶數(shù)分配第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間,所述第一內(nèi)存空間包括N個存儲單元,每個存儲單元用于存儲一個關(guān)鍵字串的指針和一個業(yè)務(wù)處理單元的地址,所述第二內(nèi)存空間用于存儲所述存儲單元的索引值,所述第三內(nèi)存空間包含N個HASH表項,每個HASH表項由唯一的HASH關(guān)鍵字索引,每個HASH表項用于存儲一個關(guān)鍵字串的地址和一個所述存儲單元的索引值,所述N為最大用戶數(shù);
[0015]所述對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中,包括:
[0016]根據(jù)所述第一關(guān)鍵字串計算第一 HASH關(guān)鍵字;
[0017]分配第一索引號,將所述第一內(nèi)存塊的地址和所述第一索引號存入所述第一 HASH關(guān)鍵字對應(yīng)的HASH表項,將所述第一關(guān)鍵字串的指針和所述第一業(yè)務(wù)處理單元的地址,存入所述第一索引號對應(yīng)的存儲單元。
[0018]上述優(yōu)選方案提供了一種簡單易行且合理的實現(xiàn)過程。
[0019]在一種優(yōu)選方案中,還包括:當(dāng)根據(jù)接收到的第二 Diameter消息更新會話時,執(zhí)行:從所述第二 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第二關(guān)鍵字串,根據(jù)所述第二關(guān)鍵字串計算第二 HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;根據(jù)所述第二 HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第二內(nèi)存塊地址;根據(jù)所述第二內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第二內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第二關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第二 HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第二業(yè)務(wù)處理單元地址,將所述第二 Diameter消息發(fā)送給所述第二業(yè)務(wù)處理單元。
[0020]上述優(yōu)選方案中,可在需要更新Diameter會話時,根據(jù)Diameter消息的關(guān)鍵字串進(jìn)行查找和會話更新,實現(xiàn)了 Diameter會話關(guān)鍵字串的內(nèi)存空間的動態(tài)管理,與現(xiàn)有技術(shù)相比,節(jié)省了用于存儲Diameter會話關(guān)鍵字及其與業(yè)務(wù)處理單元的對應(yīng)關(guān)系的內(nèi)存空間。[0021]在一種優(yōu)選方案中,還包括:當(dāng)根據(jù)接收到的第三Diameter消息刪除會話時,執(zhí)行:從所述第三Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第三關(guān)鍵字串,根據(jù)所述第三關(guān)鍵字串計算第三HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;根據(jù)所述第三HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第三內(nèi)存塊地址;根據(jù)所述第三內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第三內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第三關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第三業(yè)務(wù)處理單元地址,將所述第三Diameter消息發(fā)送給所述第三業(yè)務(wù)處理單元;釋放所述第三內(nèi)存塊地址對應(yīng)的內(nèi)存塊,根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,清空對應(yīng)的存儲單元,并清空所述第三HASH關(guān)鍵字對應(yīng)的HASH表項。
[0022]上述優(yōu)選方案中,在會話刪除時釋放用于存儲該會話的關(guān)鍵字的內(nèi)存空間,從而實現(xiàn)了 Diameter會話關(guān)鍵字串的內(nèi)存空間的動態(tài)管理,與現(xiàn)有技術(shù)相比,節(jié)省了用于存儲Diameter會話關(guān)鍵字及其與業(yè)務(wù)處理單元的對應(yīng)關(guān)系的內(nèi)存空間。
[0023]在一種優(yōu)選方案中,所述內(nèi)存空間還包括第四內(nèi)存空間,在初始化時,還包括:分配第四內(nèi)存空間,所述第四內(nèi)存空間用于臨時存儲根據(jù)Diameter消息得到的關(guān)鍵字串。這樣,可以使技術(shù)實現(xiàn)以及內(nèi)存資源利用更為合理。
[0024]在一種優(yōu)選方案中,分配所述第一內(nèi)存塊時,根據(jù)所述第一關(guān)鍵字串的長度確定內(nèi)存塊的大小,根據(jù)確定出的內(nèi)存塊的大小分配所述第一內(nèi)存塊。這樣可以保證根據(jù)實際需要分配內(nèi)存,從而合理利用內(nèi)存資源。
[0025]在一種優(yōu)選方案中,從Diameter消息中提取的關(guān)鍵字還包括:主機(jī)名和/或域名。這樣可以保證在PCRF實體可以與多個PGW互通,各個PGW生成的SessionId有可能重復(fù)的情況下,HASH表中關(guān)鍵字(key)的唯一性。
[0026]本發(fā)明實施例提供的Diameter節(jié)點(diǎn)裝置,包括:
[0027]初始化模塊,用于根據(jù)最大用戶數(shù)分配內(nèi)存空間,所述內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,所述內(nèi)存空間采用HASH表結(jié)構(gòu);
[0028]HASH表處理模塊,用于當(dāng)根據(jù)接收到的第一 Diameter消息建立會話時,執(zhí)行:確定用于處理所述第一 Diameter消息所屬會話的第一業(yè)務(wù)處理單元;從所述第一 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第一關(guān)鍵字串,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;分配第一內(nèi)存塊,將所述第一關(guān)鍵字串存入所述第一內(nèi)存塊;對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中;
[0029]消息分發(fā)模塊,用于將所述第一 Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第一業(yè)務(wù)處理單元。
[0030]具體的,所述內(nèi)存空間包括第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間;
[0031]所述初始化模塊具體用于,初始化時,根據(jù)最大用戶數(shù)分配第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間,所述第一內(nèi)存空間包括N個存儲單元,每個存儲單元用于存儲一個關(guān)鍵字串的指針和一個業(yè)務(wù)處理單元的地址,所述第二內(nèi)存空間用于存儲所述存儲單元的索引值,所述第三內(nèi)存空間包含N個HASH表項,每個HASH表項由唯一的HASH關(guān)鍵字索弓丨,每個HASH表項用于存儲一個關(guān)鍵字串的地址和一個所述存儲單元的索弓丨值,所述N為最大用戶數(shù) ;
[0032]所述HASH表處理模塊具體用于,根據(jù)所述第一關(guān)鍵字串計算第一 HASH關(guān)鍵字;分配第一索引號,將所述第一內(nèi)存塊的地址和所述第一索引號存入所述第一 HASH關(guān)鍵字對應(yīng)的HASH表項,將所述第一關(guān)鍵字串的指針和所述第一業(yè)務(wù)處理單元的地址,存入所述第一索引號對應(yīng)的存儲單元。
[0033]進(jìn)一步的,所述HASH表處理模塊還用于,當(dāng)根據(jù)接收到的第二 Diameter消息更新會話時,執(zhí)行:從所述第二 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第二關(guān)鍵字串,根據(jù)所述第二關(guān)鍵字串計算第二 HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;根據(jù)所述第二 HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第二內(nèi)存塊地址;根據(jù)所述第二內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第二內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第二關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第二 HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第二業(yè)務(wù)處理單元地址;
[0034]所述消息分發(fā)模塊還用于,將所述第二 Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第二業(yè)務(wù)處理單元。
[0035]進(jìn)一步的,所述HASH表處理模塊還用于,當(dāng)根據(jù)接收到的第三Diameter消息刪除會話時,執(zhí)行:從所述第三Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第三關(guān)鍵字串,根據(jù)所述第三關(guān)鍵字串計算第三HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;根據(jù)所述第三HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第三內(nèi)存塊地址;根據(jù)所述第三內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第三內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第三關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第三業(yè)務(wù)處理單元地址;釋放所述第三內(nèi)存塊地址對應(yīng)的內(nèi)存塊,根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,清空對應(yīng)的存儲單元,并清空所述第三HASH關(guān)鍵字對應(yīng)的HASH表項;
[0036]所述消息分發(fā)模塊還用于,將所述第三Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第三業(yè)務(wù)處理單元。
[0037]進(jìn)一步的,所述內(nèi)存空間還包括第四內(nèi)存空間;所述初始化模塊還用于,在初始化時,分配第四內(nèi)存空間,所述第四內(nèi)存空間用于臨時存儲根據(jù)Diameter消息得到的關(guān)鍵字
串O
[0038]具體的,所述HASH表處理模塊分配所述第一內(nèi)存塊時,根據(jù)所述第一關(guān)鍵字串的長度確定內(nèi)存塊的大小,根據(jù)確定出的內(nèi)存塊的大小分配所述第一內(nèi)存塊。
[0039]具體的,所述HASH表處理模塊從Diameter消息中提取的關(guān)鍵字還包括:主機(jī)名和/或域名。
【專利附圖】
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0041]圖1A為現(xiàn)有技術(shù)中的SEA架構(gòu)示意圖;
[0042]圖1B為現(xiàn)有技術(shù)中的Diameter節(jié)點(diǎn)部署示意圖;
[0043]圖2A、圖2B、圖2C為本發(fā)明實施例提供的HASH表處理流程示意圖;
[0044]圖3為本發(fā)明實施例中Diameter節(jié)點(diǎn)初始化后,映射數(shù)組空間、索引資源空間、HASH表空間和全局內(nèi)存塊的示意圖;
[0045]圖4為本發(fā)明實施例提供的Diameter會話建立流程示意圖;
[0046]圖5為圖4所示流程中的HASH表插入示意圖;
[0047]圖6為本發(fā)明實施例提供的Diameter消息轉(zhuǎn)發(fā)流程示意圖;
[0048]圖7為圖6所示流程中的HASH表查找示意圖;
[0049]圖8為本發(fā)明實施例提供的Diameter會話刪除流程示意圖;
[0050]圖9為圖8所示流程中的HASH表刪除示意圖;
[0051]圖10為本發(fā)明實施例提供的Diameter節(jié)點(diǎn)裝置的示意圖。
【具體實施方式】
[0052]為了解決現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明實施例提供了一種基于HASH表的Diameter消息處理方法和裝置。本發(fā)明實施例中,在Diameter節(jié)點(diǎn)初始化時分配內(nèi)存空間,以存儲Diameter會話關(guān)鍵字串與業(yè)務(wù)處理單元的對應(yīng)關(guān)系信息;在需要創(chuàng)建Diameter會話時,才為該Diameter會話分配存儲該會話的關(guān)鍵字串的內(nèi)存空間,從而與現(xiàn)有技術(shù)相t匕,節(jié)省了用于存儲Diameter會話關(guān)鍵字及其與業(yè)務(wù)處理單元的對應(yīng)關(guān)系的內(nèi)存空間。
[0053]本發(fā)明實施例可應(yīng)用于圖1A所示的系統(tǒng)架構(gòu)。本發(fā)明實施例中的Diameter節(jié)點(diǎn)是指運(yùn)行Diameter協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn),該網(wǎng)絡(luò)節(jié)點(diǎn)可以是物理節(jié)點(diǎn),也可以是邏輯節(jié)點(diǎn),比如,Diameter 節(jié)點(diǎn)可以是 MME、HSS、PCRF, PGW 等。
[0054]Diameter節(jié)點(diǎn)可采用如圖1B所示的分布式架構(gòu),Diameter節(jié)點(diǎn)中可包括一個全局處理單元,以及一個或多個業(yè)務(wù)處理單元,當(dāng)然為了提高可靠性,還可以包括一個或多個備份全局處理單元。全局處理單元通常為主控板(即實現(xiàn)控制功能的單板),業(yè)務(wù)處理單元通常為業(yè)務(wù)板(即實現(xiàn)業(yè)務(wù)功能的單板)。
[0055]當(dāng)Diameter節(jié)點(diǎn)初始化時,Diameter節(jié)點(diǎn)的全局處理單元需要根據(jù)最大用戶數(shù)分配內(nèi)存空間,用來存儲Diameter會話的關(guān)鍵字串的存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息。以最大用戶數(shù)等于N為例,初始化時,根據(jù)最大用戶數(shù)N分配內(nèi)存空間,該內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,該內(nèi)存空間采用HASH表結(jié)構(gòu)。
[0056]如圖2A所示,當(dāng)根據(jù)接收到的第一 Diameter消息建立會話時,執(zhí)行以下步驟:
[0057]步驟201:確定用于處理所述第一 Diameter消息所屬會話的第一業(yè)務(wù)處理單元,將第一 Diameter消息發(fā)送給第一業(yè)務(wù)處理單元;
[0058]步驟202:從第一 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第一關(guān)鍵字串,提取的關(guān)鍵字中至少包括會話標(biāo)識;
[0059]步驟203:分配第一內(nèi)存塊,將第一關(guān)鍵字串存入所述第一內(nèi)存塊;
[0060]步驟204:對第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字(HASHKey),將第一內(nèi)存塊的地址和第一業(yè)務(wù)處理單元的地址存入該內(nèi)存空間內(nèi)該HASH關(guān)鍵字對應(yīng)的HASH表項中。
[0061]如圖2B所示,當(dāng)根據(jù)接收到的第二 Diameter消息進(jìn)行會話處理時,執(zhí)行以下步驟:
[0062]步驟211:從第二 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第二關(guān)鍵字串,根據(jù)第二關(guān)鍵字串計算第二 HASH關(guān)鍵字,提取的關(guān)鍵字中至少包括會話標(biāo)識;
[0063]步驟212:根據(jù)第二 HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第二內(nèi)存塊地址,根據(jù)第二內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串;
[0064]步驟213:將根據(jù)第二內(nèi)存塊地址獲取到的關(guān)鍵字串與第二關(guān)鍵字串進(jìn)行比較,若相同,則轉(zhuǎn)入步驟214,否則結(jié)束本流程;
[0065]步驟214:根據(jù)第二 HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第二業(yè)務(wù)處理單元地址,將第二 Diameter消息發(fā)送給第二業(yè)務(wù)處理單元。
[0066]如圖2C所示,當(dāng)根據(jù)接收到的第三Diameter消息刪除會話時,執(zhí)行:
[0067]步驟221:從第三Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第三關(guān)鍵字串,根據(jù)第三關(guān)鍵字串計算第三HASH關(guān)鍵字,提取的關(guān)鍵字中至少包括會話標(biāo)識;
[0068]步驟222:根據(jù)第三HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第三內(nèi)存塊地址,根據(jù)第三內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串;
[0069]步驟223:將根據(jù)第三內(nèi)存塊地址獲取到的關(guān)鍵字串與第三關(guān)鍵字串進(jìn)行比較,若相同,則轉(zhuǎn)入步驟224,否則結(jié)束本流程;
[0070]步驟224:根據(jù)第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第三業(yè)務(wù)處理單元地址,將第三Diameter消息發(fā)送給第三業(yè)務(wù)處理單元;
[0071]步驟225:釋放第三內(nèi)存塊地址對應(yīng)的內(nèi)存塊,根據(jù)第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,清空對應(yīng)的存儲單元,并清空第三HASH關(guān)鍵字對應(yīng)的HASH表項。
[0072]本發(fā)明的上述實施例,由于在初始化時僅分配用于存儲關(guān)鍵字串和業(yè)務(wù)處理單元的對應(yīng)關(guān)系信息的內(nèi)存空間,而未分配用于存儲Diameter會話關(guān)鍵字串的內(nèi)存空間;當(dāng)收到Diameter消息并需要根據(jù)該消息建立會話時,才分配用于存儲該會話的關(guān)鍵字的內(nèi)存空間,并基于HASH運(yùn)算創(chuàng)建該關(guān)鍵字串與業(yè)務(wù)處理單元的對應(yīng)關(guān)系,在會話刪除時釋放用于存儲該會話的關(guān)鍵字的內(nèi)存空間,從而實現(xiàn)了 Diameter會話關(guān)鍵字串的內(nèi)存空間的動態(tài)管理,與現(xiàn)有技術(shù)相比,節(jié)省了用于存儲Diameter會話關(guān)鍵字及其與業(yè)務(wù)處理單元的對應(yīng)關(guān)系的內(nèi)存空間。
[0073]下面對本發(fā)明實施例的具體實現(xiàn)過程進(jìn)行詳細(xì)描述。
[0074]初始化時,Diameter節(jié)點(diǎn)的全局處理單元所分配的上述用途的內(nèi)存空間可包括以下第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間:
[0075]第一內(nèi)存空間,用于存儲Diameter會話關(guān)鍵字串的指針和業(yè)務(wù)處理單元的地址的映射關(guān)系。第一內(nèi)存空間包括N個存儲單元,每個存儲單元用于存儲一個Diameter關(guān)鍵字串的指針和一個業(yè)務(wù)處理單元的地址。Diameter會話關(guān)鍵字串的指針和業(yè)務(wù)處理單元的地址的映射關(guān)系,可以采用數(shù)組形式的數(shù)據(jù)結(jié)構(gòu)存儲,因此也可將第一內(nèi)存空間稱為映射數(shù)組空間,該數(shù)組共有N個元素,每個元素由Diameter關(guān)鍵字串的指針和業(yè)務(wù)處理單元的地址構(gòu)成。
[0076]第二內(nèi)存空間(以下稱為索引資源空間),用于存儲第一內(nèi)存空間中的每個存儲單元的索引值。該索引值通常從O開始連續(xù)編號,即索引號,在第一內(nèi)存空間為數(shù)組形式進(jìn)行組織時,該索引號即為數(shù)組的下標(biāo)。
[0077]第三內(nèi)存空間(以下稱為HASH表空間),包含N個HASH表項,HASH表項由HASH key(HASH關(guān)鍵字)索引,每個HASH表項即為一個存儲單元,用于存儲一個Diameter會話關(guān)鍵字串的地址和第一內(nèi)存空間中的存儲單元的索引值(如映射數(shù)組的下標(biāo))。HASH表項也可稱為HASH桶(Bucket),每個HASH桶有一個唯一的HASH桶號,HASH桶號即為HASH key。HASH桶的桶號由Diameter會話的關(guān)鍵字串基于HASH算法運(yùn)算得到。
[0078]進(jìn)一步的,為了方便后續(xù)HASH表的查找操作,Diameter節(jié)點(diǎn)的全局處理單元還可以在初始化時分配第四內(nèi)存空間(以下稱為全局內(nèi)存塊),用于在HASH表查找時,臨時存儲根據(jù)Diameter消息得到的Diameter會話的關(guān)鍵字串。
[0079]初始化操作完成后,當(dāng)Diameter節(jié)點(diǎn)接收到Diameter消息,并決定創(chuàng)建Diameter會話時,執(zhí)行HASH表插入過程,即,分配內(nèi)存塊以存儲Diameter會話關(guān)鍵字串(該內(nèi)存分配過程可稱為動態(tài)內(nèi)存分配),并建立該關(guān)鍵字串的存儲地址與業(yè)務(wù)處理單元地址的映射關(guān)系O
[0080]下面以第一內(nèi)存空間為映射數(shù)組空間、第二內(nèi)存空間為索引資源空間、第三內(nèi)存空間為HASH表空間、第四內(nèi)存空間為全局內(nèi)存塊為例,對本發(fā)明實施例的實現(xiàn)過程進(jìn)行詳細(xì)描述。
[0081]圖3示出了 Diameter節(jié)點(diǎn)初始化后,全局處理單元分配的映射數(shù)組空間、索引資源空間、HASH表空間和全局內(nèi)存塊的示意圖。圖中的UNIT8*p表示內(nèi)存塊指針,該指針指向存儲關(guān)鍵字串的內(nèi)存塊(即動態(tài)內(nèi)存塊),該指針為UNIT型(即無符號整型)的8比特數(shù)值;圖中的UNIT32uiAddress表示業(yè)務(wù)處理單元的地址,該地址為32比特的UNIT型數(shù)值。
[0082]上述映射數(shù)組空間、索引資源空間、HASH表空間和全局內(nèi)存塊,在初始化時分配完成后,其容量保持不變,可稱為靜態(tài)內(nèi)存空間。
[0083]通常情況下,Diameter會話關(guān)鍵字串的指針為I個字節(jié)長度,業(yè)務(wù)處理單元的地址為4個字節(jié)長度,關(guān)鍵字串的地址為I個字節(jié)長度,全局內(nèi)存塊為512字節(jié),索引號的長度可根據(jù)最大用戶數(shù)來確定。仍以最大用戶數(shù)為200萬的環(huán)境為例,則索引號長度為4字節(jié),初始化時,在沒有用戶接入的情況下,上述映射數(shù)組空間、索引資源空間、HASH表空間和全局內(nèi)存塊的內(nèi)存占用量為:
[0084](關(guān)鍵字串指針長度+業(yè)務(wù)處理單元地址長度)*200W+索引號長度*200W+(關(guān)鍵字串地址長度 + 索引號長度)*200W+512= (1+4) *200ff+4*200ff+ (1+4) *200W+521=24MB
[0085]可以看出,與采用現(xiàn)有技術(shù)需要分配260MB內(nèi)存空間相比,本發(fā)明實施例可以在初始化時節(jié)省約10倍空間。
[0086]初始化操作完成后,當(dāng)Diameter節(jié)點(diǎn)接收到Diameter消息,并決定創(chuàng)建Diameter會話時,執(zhí)行HASH表插入過程,即,分配內(nèi)存塊以存儲Diameter會話關(guān)鍵字串(該內(nèi)存分配過程可稱為動態(tài)內(nèi)存分配),并建立該關(guān)鍵字串的存儲地址與業(yè)務(wù)處理單元地址的映射關(guān)系O[0087]下面結(jié)合圖4,以PCRF實體接收到PGW發(fā)送來的CCR消息后建立Diameter會話的處理過程為例,描述HASH表插入過程。
[0088]如圖4所示,該流程可包括以下步驟:
[0089]步驟401 =PCRF實體的全局處理單元接收到PGW發(fā)送來的CCR消息后,決定創(chuàng)建Diameter會話。PCRF實體接收到CCR消息后,若確定該CCR消息中攜帶有表明該消息為初始消息的IE (Information Unit,信息單元),則決定創(chuàng)建Diameter會話。
[0090]步驟402 =PCRF實體的全局處理單元確定用于處理該CCR消息所屬會話的業(yè)務(wù)處理單元。優(yōu)選的,可根據(jù)負(fù)載分擔(dān)原則,確定用于處理該CCR消息所屬會話的業(yè)務(wù)處理單元。這里以選擇業(yè)務(wù)處理單元I來處理該CCR消息為例描述。
[0091]步驟403:PCRF實體的全局處理單元從該CCR消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成關(guān)鍵字串,根據(jù)該關(guān)鍵字串并運(yùn)用HASH算法計算HASH桶號。所提取的關(guān)鍵字中至少包括 SessionID。
[0092]考慮到PCRF實體可以與多個PGW互通,各個PGW生成的SessionId有可能重復(fù),因此無法保證HASH表中關(guān)鍵字(key)的唯一性,因而導(dǎo)致無法進(jìn)行HASH查詢。為了解決該問題,本發(fā)明實施例中,在提取關(guān)鍵字時,除了提取CCR消息中的SessionID,還可提取發(fā)送該CCR消息的Diameter節(jié)點(diǎn)的主機(jī)名(OriginHost)和該Diameter節(jié)點(diǎn)的域名(OriginRealm),根據(jù)提取的 SessionID、OriginHost 和 OriginRealm 生成關(guān)鍵字串。
[0093]在根據(jù)提取的關(guān)鍵字生成關(guān)鍵字串時,可將提取的關(guān)鍵字拼接為關(guān)鍵字串,中間用間隔符(比如“&”)分割,優(yōu)選的,拼接后的關(guān)鍵字串為:主機(jī)名&域名&SeSSionID。例如,主機(jī)名為 “pgwl”,域名為 “aaa.cn”, SessionID 為 “pgwI ;12345 ;5483”(其中,SessionID的組成為:主機(jī)名;單增序列;設(shè)備ID或時間戮),則拼接后的關(guān)鍵字串為:pgwl&aaa.cn&pgwl ; 12345 ;5483。
[0094]步驟404:PCRF實體的全局處理單元分配索引號和內(nèi)存塊,將生成的關(guān)鍵字串存入該內(nèi)存塊,將該內(nèi)存塊的地址和分配的索弓丨號存入計算出的HASH桶號對應(yīng)的HASH桶(即插入HASH表),將該關(guān)鍵字串的指針和業(yè)務(wù)處理單元I的地址,存入映射數(shù)組空間中與分配的索引號對應(yīng)的數(shù)組內(nèi)。
[0095]步驟404的處理過程可如圖5所示,具體可包括以下步驟:
[0096]a)分配內(nèi)存塊,將生成的關(guān)鍵字串存入該內(nèi)存塊,該內(nèi)存塊的地址表示為“V’;在分配內(nèi)存塊時,可根據(jù)關(guān)鍵字串的長度進(jìn)行分配,以保證所分配的內(nèi)存塊有足夠的空間存放關(guān)鍵字串,且不會造成內(nèi)存空間浪費(fèi);
[0097]b)分配索引號index,所分配的索引號index為當(dāng)前未使用的索引號,如對應(yīng)的數(shù)組中還沒有存儲數(shù)據(jù);
[0098]c)根據(jù)該關(guān)鍵字串計算得到的HASH桶號索引到對應(yīng)的HASH桶,將步驟a分配的內(nèi)存塊的地址“ P”和步驟b分配的索引號index,存入該HASH桶;
[0099]d)根據(jù)步驟b分配的索引號index索引到映射數(shù)組空間中對應(yīng)的數(shù)組,將該關(guān)鍵字的指針和業(yè)務(wù)處理單元I的地址存入該數(shù)組。優(yōu)選的,可將步驟a分配的內(nèi)存塊地址作為關(guān)鍵字串的指針存入該數(shù)組。
[0100]步驟405 =PCRF實體的全局處理單元將該CCR消息發(fā)送給步驟402確定出的業(yè)務(wù)處理單元I。進(jìn)一步的,在步驟406中,業(yè)務(wù)處理單元I還可以向PCRF實體的全局處理單元返回CCA (Credit Control ACK,信用控制確認(rèn))消息,PCRF實體的全局處理單元還可將該CCA消息轉(zhuǎn)發(fā)給PGW。
[0101]圖4的流程是以PCRF節(jié)點(diǎn)收到CCR消息為例描述的,其他Diameter節(jié)點(diǎn)收到Diameter消息并確定創(chuàng)建Diameter會話的過程,與圖4的流程類似,在此不再詳述。
[0102]通過以上圖4的流程可以看出,本發(fā)明實施例使用靜態(tài)分配內(nèi)存和動態(tài)分配相結(jié)合的方式進(jìn)行HASH表插入,關(guān)鍵字串存放在動態(tài)內(nèi)存中,動態(tài)內(nèi)存在會話建立時分配,動態(tài)內(nèi)存的大小可根據(jù)關(guān)鍵字串的實際長度進(jìn)行分配,在HASH表的存儲單元中存放關(guān)鍵字串的地址。在關(guān)鍵字串很長的情況下可大大節(jié)約HASH表占用的內(nèi)存空間。另一方面,本發(fā)明實施例使用Diameter消息中的0riginHost、0riginRealm和SessionId組合字符串作為HASH表的關(guān)鍵字,在PCRF連接多個PGW客戶端的情況下,也可保證關(guān)鍵字的唯一性。
[0103]另外,現(xiàn)有技術(shù)中,不同生產(chǎn)廠商的PGW發(fā)送的D i ame ter消息中攜帶的SessionId的長度可能不同,則有可能出現(xiàn)HASH表中預(yù)留的SessionId長度不夠,導(dǎo)致后續(xù)的查找出錯,也有可能出現(xiàn)HASH表中預(yù)留的SessionId長度過大,導(dǎo)致內(nèi)存空間的浪費(fèi);而本發(fā)明實施例,由于包含SessionID的關(guān)鍵字串存儲于動態(tài)分配的內(nèi)存空間,即,在需要創(chuàng)建Diameter會話時才根據(jù)關(guān)鍵字串的大小來分配內(nèi)存塊以存儲該關(guān)鍵字創(chuàng),因此有效解決了該問題。
[0104]Diameter節(jié)點(diǎn)接收到Diameter消息且已創(chuàng)建相應(yīng)Diameter會話的情況下,執(zhí)行HASH表查找過程,即,查找到處理該Diameter會話的業(yè)務(wù)處理單元,并將該Diameter消息發(fā)送到查詢到的業(yè)務(wù)處理單元進(jìn)行處理。
[0105]下面結(jié)合圖6,以PCRF實體接收到PGW發(fā)送來的CCR消息后分發(fā)給CCR消息的處理過程為例,描述HASH表查找過程。
[0106]如圖6所示,該流程可包括以下步驟:
[0107]步驟601 =PCRF實體的全局處理單元接收PGW發(fā)送來的CCR消息,并決定分發(fā)該CCR消息。PCRF實體接收到CCR消息后,若確定該CCR消息中攜帶有表明該消息為更新消息的IE,則決定分發(fā)該CCR消息。
[0108]步驟602:PCRF實體的全局處理單元從該CCR消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成關(guān)鍵字串,根據(jù)生成的關(guān)鍵字串并利用HASH算法,計算HASH桶號。
[0109]該步驟中,如果關(guān)鍵字可以僅包括SessionID,也可以進(jìn)一步包括OriginHost和OriginRealm0 如果包括 SessionID、OriginHost 和 OriginRealm,則按照與圖 4 所不流程中的方式,將SessionID、OriginHost和OriginRealm拼接成關(guān)鍵字串。
[0110]進(jìn)一步的,PCRF實體的全局處理單元可將生成的關(guān)鍵字串存儲到全局內(nèi)存塊中,以便于后續(xù)使用。
[0111]步驟603:PCRF實體的全局處理單元根據(jù)計算出的HASH桶號,從對應(yīng)的HASH桶中獲取內(nèi)存塊地址,并根據(jù)該內(nèi)存塊地址,從對應(yīng)的內(nèi)存塊獲取關(guān)鍵字串;
[0112]步驟604 =PCRF實體的全局處理單元將步驟603獲取到的關(guān)鍵字串與步驟602生成的關(guān)鍵字串進(jìn)行比較,若相同,則從該HASH桶中獲取索引號,根據(jù)該索引號從對應(yīng)的數(shù)組中獲取業(yè)務(wù)處理單元的地址,否則HASH表查找失敗,結(jié)束本次流程;
[0113]步驟605:PCRF實體的全局處理單元根據(jù)步驟605獲得的業(yè)務(wù)處理單元地址,將該CCR消息發(fā)送給對應(yīng)的業(yè)務(wù)處理單元。進(jìn)一步的,在步驟606中,PCRF實體的全局處理單元接收業(yè)務(wù)處理單元返回的CCR消息的響應(yīng)消息,并返回給PGW。
[0114]上述步驟603?604的具體實現(xiàn)過程可如圖7所示。
[0115]圖6的流程是以PCRF節(jié)點(diǎn)收到CCR消息為例描述的,其他Diameter節(jié)點(diǎn)收到Diameter消息并決定將該Diameter消息轉(zhuǎn)發(fā)給相應(yīng)的業(yè)務(wù)處理單元進(jìn)行處理的過程,與圖6的流程類似,在此不再詳述。
[0116]通過以上圖6所示的流程可以看出,本發(fā)明實施例使用動態(tài)內(nèi)存和靜態(tài)內(nèi)存結(jié)合的方式進(jìn)行HASH表查找,關(guān)鍵字串存放在動態(tài)內(nèi)存中,動態(tài)內(nèi)存在會話建立時分配,動態(tài)內(nèi)存的大小可根據(jù)關(guān)鍵字串的實際長度進(jìn)行分配,在HASH表的存儲單元中存放關(guān)鍵字串的地址。在關(guān)鍵字串很長的情況下可大大節(jié)約HASH表占用的內(nèi)存空間。
[0117]Diameter節(jié)點(diǎn)接收到Diameter消息,并決定刪除對應(yīng)的Diameter會話的情況下,首先執(zhí)行HASH表查找過程,然后執(zhí)行HASH表刪除過程。
[0118]下面結(jié)合圖8,以PCRF實體接收到PGW發(fā)送來的CCR消息后刪除Diameter會話的處理過程為例,描述HASH表刪除過程。
[0119]如圖8所示,該流程可包括以下步驟:
[0120]步驟801 =PCRF實體的全局處理單元接收PGW發(fā)送來的CCR消息,并決定刪除對應(yīng)的Diameter會話。PCRF實體接收到CCR消息后,若確定該CCR消息中攜帶有表明該消息為刪除消息的IE,則決定刪除Diameter會話。
[0121]步驟802:PCRF實體的全局處理單元從該CCR消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成關(guān)鍵字串,根據(jù)生成的關(guān)鍵字串并利用HASH算法,計算HASH桶號。
[0122]該步驟中,如果關(guān)鍵字可以僅包括SessionID,也可以進(jìn)一步包括OriginHost和OriginRealm0 如果包括 SessionID、OriginHost 和 OriginRealm,則按照與圖 4 所不流程中的方式,將SessionID、OriginHost和OriginRealm拼接成關(guān)鍵字串。
[0123]進(jìn)一步的,PCRF實體的全局處理單元可將生成的關(guān)鍵字串存儲到全局內(nèi)存塊中,以便于后續(xù)使用。
[0124]步驟803:PCRF實體的全局處理單元根據(jù)計算出的HASH桶號,從對應(yīng)的HASH桶中獲取內(nèi)存塊地址,并根據(jù)該內(nèi)存塊地址,從對應(yīng)的內(nèi)存塊獲取關(guān)鍵字串;
[0125]步驟804 =PCRF實體的全局處理單元將步驟803獲取到的關(guān)鍵字串與步驟802生成的關(guān)鍵字串進(jìn)行比較,若相同,則從該HASH桶中獲取索引號,根據(jù)該索引號從對應(yīng)的數(shù)組中獲取業(yè)務(wù)處理單元的地址,否則HASH表查找失敗,結(jié)束本次流程;
[0126]步驟805:PCRF實體的全局處理單元根據(jù)步驟804獲得的業(yè)務(wù)處理單元地址,將該CCR消息發(fā)送給對應(yīng)的業(yè)務(wù)處理單元,并釋放步驟803中獲取到的內(nèi)存塊地址對應(yīng)的內(nèi)存塊,清空步驟804中獲取到的索引號對應(yīng)的數(shù)組,并清空步驟803中計算出的HASH桶號對應(yīng)的HASH桶。進(jìn)一步的,在步驟806中,PCRF實體的全局處理單元接收業(yè)務(wù)處理單元返回的CCR消息的響應(yīng)消息,并返回給PGW。
[0127]上述步驟805的具體實現(xiàn)過程可如圖9所示。
[0128]圖8的流程是以PCRF節(jié)點(diǎn)收到CCR消息后刪除Diameter會話為例描述的,其他Diameter節(jié)點(diǎn)收到Diameter消息并決定刪除對應(yīng)Diameter會話的過程,與圖8的流程類似,在此不再詳述。
[0129]通過以上圖8所示的流程可以看出,本發(fā)明實施例使用動態(tài)內(nèi)存和靜態(tài)內(nèi)存結(jié)合的方式進(jìn)行HASH表插入,關(guān)鍵字串存放在動態(tài)內(nèi)存中,動態(tài)內(nèi)存在會話建立時分配,在會話刪除時釋放,動態(tài)內(nèi)存的大小可根據(jù)關(guān)鍵字串的實際長度進(jìn)行分配,在HASH表的存儲單兀中存放關(guān)鍵字串的地址。在關(guān)鍵字串很長的情況下可大大節(jié)約HASH表占用的內(nèi)存空間。
[0130]在本發(fā)明的另一種優(yōu)選方案中,基于與上述實施例相同的技術(shù)思想,可以對上述實施例的內(nèi)存空間數(shù)據(jù)結(jié)構(gòu)進(jìn)行進(jìn)一步簡化,從而進(jìn)一步減少初始化時需要分配的內(nèi)存空間。
[0131]在該優(yōu)化方案中,Diameter節(jié)點(diǎn)初始化時,可以不用分配映射數(shù)組空間和索引號空間,但需要分配HASH表空間,該HASH表中包括N個HASH桶(N為最大用戶數(shù)),每個HASH桶用于存儲Diameter會話關(guān)鍵字串地址和處理該Diameter會話的業(yè)務(wù)處理單元的地址。相應(yīng)的,在HASH表插入、查找和刪除過程中,可以省略相關(guān)針對映射數(shù)組和索引號的操作。具體的,在HASH表插入過程中,可按照前述方式確定對應(yīng)的業(yè)務(wù)處理單元、分配內(nèi)存塊,并根據(jù)Diameter消息獲得關(guān)鍵字串后,將該關(guān)鍵字串存入到該內(nèi)存塊,根據(jù)該關(guān)鍵字串計算得到HASH桶號,在該HASH桶號在對應(yīng)的HASH桶中存入該內(nèi)存塊地址和該業(yè)務(wù)處理單元地址;在HASH表查找過程中,可按照前述方式,根據(jù)Diameter消息獲得關(guān)鍵字串后,根據(jù)該關(guān)鍵字串計算得到HASH桶號,根據(jù)該HASH桶號從對應(yīng)的HASH桶中獲取內(nèi)存塊地址,根據(jù)該內(nèi)存塊地址獲取關(guān)鍵字串,并與根據(jù)Diameter消息獲得關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)該HASH桶號從對應(yīng)的HASH桶中獲取業(yè)務(wù)處理單元地址,將該Diameter消息發(fā)送給對應(yīng)的業(yè)務(wù)處理單元進(jìn)行處理;在HASH表刪除過程中,按照前述方式查找到HASH桶后,從該HASH桶中獲取業(yè)務(wù)處理單元的地址,將接收到的Diameter消息發(fā)送給對應(yīng)的業(yè)務(wù)處理單元進(jìn)行處理,并釋放該HASH桶以及該HASH桶中的內(nèi)存塊地址指向的內(nèi)存塊。
[0132]通過該優(yōu)化方案可以看出,無論靜態(tài)分配的內(nèi)存空間采用何種HASH表結(jié)構(gòu),只要使用靜態(tài)分配的內(nèi)存空間存儲關(guān)鍵字串地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系,使用動態(tài)分配的內(nèi)存空間存儲關(guān)鍵字串,靜態(tài)內(nèi)存空間在系統(tǒng)初始化時一次性分配,動態(tài)內(nèi)存空間在Diameter會話建立時申請,會話刪除時釋放,即可與現(xiàn)有技術(shù)相比節(jié)省HASH表的內(nèi)存空間。
[0133]基于相同的技術(shù)構(gòu)思,本發(fā)明實施例還提供了一種可應(yīng)用于上述流程的Diameter節(jié)點(diǎn)裝置。
[0134]參見圖10,為本發(fā)明實施例提供的Diameter節(jié)點(diǎn)裝置的結(jié)構(gòu)示意圖,如圖所示,該裝置可包括:初始化模塊1001、HASH表處理模塊1002、消息分發(fā)模塊1003,其中:
[0135]初始化模塊1001,用于根據(jù)最大用戶數(shù)分配內(nèi)存空間,所述內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,所述內(nèi)存空間采用HASH表結(jié)構(gòu);
[0136]HASH表處理模塊1002,用于當(dāng)根據(jù)接收到的第一 Diameter消息建立會話時,執(zhí)行:確定用于處理所述第一 Diameter消息所屬會話的第一業(yè)務(wù)處理單元;從所述第一Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第一關(guān)鍵字串,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;分配第一內(nèi)存塊,將所述第一關(guān)鍵字串存入所述第一內(nèi)存塊;對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中;
[0137]消息分發(fā)模塊1003,用于將所述第一 Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第一業(yè)務(wù)處理單元。[0138]具體的,所述內(nèi)存空間可包括第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間。相應(yīng)的,初始化模塊1001可在初始化時,根據(jù)最大用戶數(shù)分配第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間,所述第一內(nèi)存空間包括N個存儲單元,每個存儲單元用于存儲一個關(guān)鍵字串的指針和一個業(yè)務(wù)處理單元的地址,所述第二內(nèi)存空間用于存儲所述存儲單元的索引值,所述第三內(nèi)存空間包含N個HASH表項,每個HASH表項由唯一的HASH關(guān)鍵字索引,每個HASH表項用于存儲一個關(guān)鍵字串的地址和一個所述存儲單元的索引值,所述N為最大用戶數(shù)。HASH表處理模塊1002可根據(jù)所述第一關(guān)鍵字串計算第一 HASH關(guān)鍵字;分配第一索引號,將所述第一內(nèi)存塊的地址和所述第一索引號存入所述第一 HASH關(guān)鍵字對應(yīng)的HASH表項,將所述第一關(guān)鍵字串的指針和所述第一業(yè)務(wù)處理單元的地址,存入所述第一索引號對應(yīng)的存儲單元。
[0139]進(jìn)一步的,HASH表處理模塊1002還可當(dāng)根據(jù)接收到的第二 Diameter消息更新會話時,執(zhí)行:從所述第二Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第二關(guān)鍵字串,根據(jù)所述第二關(guān)鍵字串計算第二 HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;根據(jù)所述第二 HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第二內(nèi)存塊地址;根據(jù)所述第二內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第二內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第二關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第二 HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第二業(yè)務(wù)處理單元地址。相應(yīng)的,消息分發(fā)模塊1003還可將所述第二 Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第二業(yè)務(wù)處理單元。
[0140]進(jìn)一步的,HASH表處理模塊1002還可當(dāng)根據(jù)接收到的第三Diameter消息刪除會話時,執(zhí)行:從所述第三Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第三關(guān)鍵字串,根據(jù)所述第三關(guān)鍵字串計算第三HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識;根據(jù)所述第三HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第三內(nèi)存塊地址;根據(jù)所述第三內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第三內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第三關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第三業(yè)務(wù)處理單元地址;釋放所述第三內(nèi)存塊地址對應(yīng)的內(nèi)存塊,根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,清空對應(yīng)的存儲單元,并清空所述第三HASH關(guān)鍵字對應(yīng)的HASH表項。相應(yīng)的,消息分發(fā)模塊1003還可將所述第三Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第三業(yè)務(wù)處理單元。
[0141]具體的,所述內(nèi)存空間還可包括第四內(nèi)存空間。相應(yīng)的,初始化模塊1001還可在初始化時,分配第四內(nèi)存空間,所述第四內(nèi)存空間用于臨時存儲根據(jù)Diameter消息得到的
關(guān)鍵字串。
[0142]進(jìn)一步的,HASH表處理模塊1002分配所述第一內(nèi)存塊時,可根據(jù)所述第一關(guān)鍵字串的長度確定內(nèi)存塊的大小,根據(jù)確定出的內(nèi)存塊的大小分配所述第一內(nèi)存塊。
[0143]進(jìn)一步的,HASH表處理模塊1002從Diameter消息中提取的關(guān)鍵字還可包括:主機(jī)名和/或域名。
[0144]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0145]這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0146]這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0147]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0148]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種基于HASH表的Diameter消息處理方法,其特征在于,包括: 初始化時,根據(jù)最大用戶數(shù)分配內(nèi)存空間,所述內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,所述內(nèi)存空間采用HASH表結(jié)構(gòu);當(dāng)根據(jù)接收到的第一 D i ame t er消息建立會話時,執(zhí)行: 確定用于處理所述第一 Diameter消息所屬會話的第一業(yè)務(wù)處理單元,將所述第一Diameter消息發(fā)送給所述第一業(yè)務(wù)處理單元; 從所述第一 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第一關(guān)鍵字串,所述提取的關(guān)鍵字中至少包括會話標(biāo)識; 分配第一內(nèi)存塊,將所述第一關(guān)鍵字串存入所述第一內(nèi)存塊; 對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中。
2.如權(quán)利要求1所述的方法,其特征在于,所述內(nèi)存空間包括第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間; 所述初始化時,根據(jù)最大用戶數(shù)分配內(nèi)存空間,所述內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,所述內(nèi)存空間采用HASH表結(jié)構(gòu),包括: 初始化時,根據(jù)最大用戶數(shù)分配第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間,所述第一內(nèi)存空間包括N個存儲單元,每個存儲單元用于存儲一個關(guān)鍵字串的指針和一個業(yè)務(wù)處理單元的地址,所述第二內(nèi)存空間用于存儲所述存儲單元的索引值,所述第三內(nèi)存空間包含N個HASH表項,每個HASH表項由唯一的HASH關(guān)鍵字索引,每個HASH表項用于存儲一個關(guān)鍵字串的地址和一個所述存儲單元的索引值,所述N為最大用戶數(shù); 所述對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中,包括: 根據(jù)所述第一關(guān)鍵字串計算第一 HASH關(guān)鍵字; 分配第一索引號,將所述第一內(nèi)存塊的地址和所述第一索引號存入所述第一 HASH關(guān)鍵字對應(yīng)的HASH表項,將所述第一關(guān)鍵字串的指針和所述第一業(yè)務(wù)處理單元的地址,存入所述第一索引號對應(yīng)的存儲單元。
3.如權(quán)利要求2所述的方法,其特征在于,還包括: 當(dāng)根據(jù)接收到的第二 Diameter消息更新會話時,執(zhí)行: 從所述第二 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第二關(guān)鍵字串,根據(jù)所述第二關(guān)鍵字串計算第二 HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識; 根據(jù)所述第二 HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第二內(nèi)存塊地址; 根據(jù)所述第二內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第二內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第二關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第二 HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第二業(yè)務(wù)處理單元地址,將所述第二 Diameter消息發(fā)送給所述第二業(yè)務(wù)處理單元。
4.如權(quán)利要求2所述的方法,其特征在于,還包括:當(dāng)根據(jù)接收到的第三Diameter消息刪除會話時,執(zhí)行: 從所述第三Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第三關(guān)鍵字串,根據(jù)所述第三關(guān)鍵字串計算第三HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識; 根據(jù)所述第三HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第三內(nèi)存塊地址; 根據(jù)所述第三內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第三內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第三關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第三業(yè)務(wù)處理單元地址,將所述第三Diameter消息發(fā)送給所述第三業(yè)務(wù)處理單元; 釋放所述第三內(nèi)存塊地址對應(yīng)的內(nèi)存塊,根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,清空對應(yīng)的存儲單元,并清空所述第三HASH關(guān)鍵字對應(yīng)的HASH表項。
5.如權(quán)利要求2所述的方法,其特征在于,所述內(nèi)存空間還包括第四內(nèi)存空間,在初始化時,還包括: 分配第四內(nèi)存空間,所述第四內(nèi)存空間用于臨時存儲根據(jù)Diameter消息得到的關(guān)鍵字串。
6.如權(quán)利要求1-5中任 一項所述的方法,其特征在于,分配所述第一內(nèi)存塊時,根據(jù)所述第一關(guān)鍵字串的長度確定內(nèi)存塊的大小,根據(jù)確定出的內(nèi)存塊的大小分配所述第一內(nèi)存塊。
7.如權(quán)利要求1-5中任一項所述的方法,其特征在于,從Diameter消息中提取的關(guān)鍵字還包括:主機(jī)名和/或域名。
8.—種Diameter節(jié)點(diǎn)裝置,其特征在于,包括: 初始化模塊,用于根據(jù)最大用戶數(shù)分配內(nèi)存空間,所述內(nèi)存空間用于存儲Diameter會話關(guān)鍵字串存儲地址和業(yè)務(wù)處理單元地址的對應(yīng)關(guān)系信息,所述內(nèi)存空間采用HASH表結(jié)構(gòu); HASH表處理模塊,用于當(dāng)根據(jù)接收到的第一 Diameter消息建立會話時,執(zhí)行: 確定用于處理所述第一 Diameter消息所屬會話的第一業(yè)務(wù)處理單元; 從所述第一 Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第一關(guān)鍵字串,所述提取的關(guān)鍵字中至少包括會話標(biāo)識; 分配第一內(nèi)存塊,將所述第一關(guān)鍵字串存入所述第一內(nèi)存塊; 對所述第一關(guān)鍵字串進(jìn)行HASH運(yùn)算,根據(jù)運(yùn)算得到的HASH關(guān)鍵字,將所述第一內(nèi)存塊的地址和所述第一業(yè)務(wù)處理單元的地址存入所述內(nèi)存空間內(nèi)所述HASH關(guān)鍵字對應(yīng)的HASH表項中; 消息分發(fā)模塊,用于將所述第一 Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第一業(yè)務(wù)處理單元。
9.如權(quán)利要求8所述的裝置,其特征在于,所述內(nèi)存空間包括第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間; 所述初始化模塊具體用于,初始化時,根據(jù)最大用戶數(shù)分配第一內(nèi)存空間、第二內(nèi)存空間和第三內(nèi)存空間,所述第一內(nèi)存空間包括N個存儲單元,每個存儲單元用于存儲一個關(guān)鍵字串的指針和一個業(yè)務(wù)處理單元的地址,所述第二內(nèi)存空間用于存儲所述存儲單元的索引值,所述第三內(nèi)存空間包含N個HASH表項,每個HASH表項由唯一的HASH關(guān)鍵字索引,每個HASH表項用于存儲一個關(guān)鍵字串的地址和一個所述存儲單元的索引值,所述N為最大用戶數(shù); 所述HASH表處理模塊具體用于,根據(jù)所述第一關(guān)鍵字串計算第一 HASH關(guān)鍵字;分配第一索引號,將所述第一內(nèi)存塊的地址和所述第一索引號存入所述第一 HASH關(guān)鍵字對應(yīng)的HASH表項,將所述第一關(guān)鍵字串的指針和所述第一業(yè)務(wù)處理單元的地址,存入所述第一索引號對應(yīng)的存儲單元。
10.如權(quán)利要求9所述的裝置,其特征在于,所述HASH表處理模塊還用于,當(dāng)根據(jù)接收到的第二 Diameter消息更新會話時,執(zhí)行: 從所述第~ Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第二關(guān)鍵字串,根據(jù)所述第二關(guān)鍵字串計算第二 HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識; 根據(jù)所述第二 HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第二內(nèi)存塊地址; 根據(jù)所述第二內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第二內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第二關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第二 HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第二業(yè)務(wù)處理單元地址; 所述消息分發(fā)模塊還用于,將所述第二 Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第二業(yè)務(wù)處理單元。
11.如權(quán)利要求9所述的裝置,其特征在于,所述HASH表處理模塊還用于,當(dāng)根據(jù)接收到的第三Diameter消息刪除 會話時,執(zhí)行: 從所述第三Diameter消息中提取關(guān)鍵字,根據(jù)提取的關(guān)鍵字生成第三關(guān)鍵字串,根據(jù)所述第三關(guān)鍵字串計算第三HASH關(guān)鍵字,所述提取的關(guān)鍵字中至少包括會話標(biāo)識; 根據(jù)所述第三HASH關(guān)鍵字,從對應(yīng)的HASH表項中獲取第三內(nèi)存塊地址; 根據(jù)所述第三內(nèi)存塊地址獲取對應(yīng)內(nèi)存塊中存儲的關(guān)鍵字串,將根據(jù)所述第三內(nèi)存塊地址獲取到的關(guān)鍵字串與所述第三關(guān)鍵字串進(jìn)行比較,若相同,則根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,從對應(yīng)的存儲單元獲取第三業(yè)務(wù)處理單元地址; 釋放所述第三內(nèi)存塊地址對應(yīng)的內(nèi)存塊,根據(jù)所述第三HASH關(guān)鍵字對應(yīng)的HASH表項中存儲的存儲單元的索引號,清空對應(yīng)的存儲單元,并清空所述第三HASH關(guān)鍵字對應(yīng)的HASH表項; 所述消息分發(fā)模塊還用于,將所述第三Diameter消息發(fā)送給所述HASH表處理模塊確定出的所述第三業(yè)務(wù)處理單元。
12.如權(quán)利要求9所述的裝置,其特征在于,所述內(nèi)存空間還包括第四內(nèi)存空間; 所述初始化模塊還用于,在初始化時,分配第四內(nèi)存空間,所述第四內(nèi)存空間用于臨時存儲根據(jù)Diameter消息得到的關(guān)鍵字串。
13.如權(quán)利要求8-12中任一項所述的裝置,其特征在于,所述HASH表處理模塊分配所述第一內(nèi)存塊時,根據(jù)所述第一關(guān)鍵字串的長度確定內(nèi)存塊的大小,根據(jù)確定出的內(nèi)存塊的大小分配所述第一內(nèi)存塊。
14.如權(quán)利要求8-12中任一項所述的裝置,其特征在于,所述HASH表處理模塊從Diameter消息中提取的 關(guān)鍵字還包括:主機(jī)名和/或域名。
【文檔編號】G06F12/02GK103544292SQ201310521860
【公開日】2014年1月29日 申請日期:2013年10月29日 優(yōu)先權(quán)日:2013年10月29日
【發(fā)明者】姜楠楠, 文振忠 申請人:大唐移動通信設(shè)備有限公司