CN103544292B - 基于HASH表的Diameter消息处理方法和装置 - Google Patents

基于HASH表的Diameter消息处理方法和装置 Download PDF

Info

Publication number
CN103544292B
CN103544292B CN201310521860.5A CN201310521860A CN103544292B CN 103544292 B CN103544292 B CN 103544292B CN 201310521860 A CN201310521860 A CN 201310521860A CN 103544292 B CN103544292 B CN 103544292B
Authority
CN
China
Prior art keywords
hash
memory
keyword
address
keyword string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310521860.5A
Other languages
English (en)
Other versions
CN103544292A (zh
Inventor
姜楠楠
文振忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN201310521860.5A priority Critical patent/CN103544292B/zh
Publication of CN103544292A publication Critical patent/CN103544292A/zh
Application granted granted Critical
Publication of CN103544292B publication Critical patent/CN103544292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了种基于HASH表的Diameter消息处理方法和装置。该方法中,在Diameter节点初始化时,仅分配用于存储Diameter会话关键字串和业务处理单元的对应关系信息的内存空间,而未分配用于存储Diameter会话关键字串的内存空间;当收到Diameter消息并需要建立会话时,才分配用于存储该会话的关键字的内存空间,并基于HASH运算创建该关键字串与业务处理单元的对应关系,从而实现了Diameter会话关键字串的内存空间的动态管理,与现有技术相比,节省了HASH表的内存空间。

Description

基于HASH表的Diameter消息处理方法和装置
技术领域
本发明涉及通信领域,尤其涉一种基于HASH表的Diameter消息处理方法和装置。
背景技术
Diameter协议是为一种为满足网络访问控制要求的AAA(Authentication,Authorization and Accounting,认证、授权、计费)协议,Diameter协议由基础协议和应用协议组成,为各种认证、授权和计费业务提供了安全、可靠、易于扩展的框架。
如图1A所示,SAE(3GPP系统架构演进)架构中,支持Diameter协议的节点称为Diameter节点,Diameter节点包括MME(Mobility Management Entity,移动性管理实体)、HSS(Home Subscriber Server,归属签约用户服务器)、PCRF(Policy and Charging RulesFunction,策略控制计费规则功能)实体、PGW(Packed Data Network Gateway,分组数据网络网关)等。其中,S6a接口、Gx接口、Rx接口、Sp接口等使用Diameter协议。
为满足负载均衡和容灾备份的要求,SAE架构中的Diameter节点采用分布式部署。如图1B所示,Diameter节点中包括一个全局处理单元和多个业务处理单元,全局处理单元通常是指主控板,业务处理单元通常是指业务板。
全局处理单元维护Diameter会话与业务处理单元的对应关系的HASH(哈希)表,以保证将属于同一个会话的Diameter消息发送到同一个业务处理单元进行处理。Diameter消息中的SessionID(会话标识)是Diameter会话的唯一标识。
当PCRF实体的全局处理单元根据收到的CCR(Credit Control Request,信用控制请求)消息创建Diameter会话时,将该消息中的SessionID作为HASH表项的Key(关键字),将业务处理单元地址作为HASH表项的Data(值),插入到HASH表中。后续对于接收到的同一会话的CCR消息,全局处理单元会根据消息中的SessionID进行HASH表的查找并处理。
使用HASH表存储SessionId和业务处理单元对应关系,虽然能够高效进行HASH表插入和查找,但内存消耗较大。假定SessionId的最大长度为128字节,业务处理单元地址为4字节,在最大承载200W用户呼叫量的情况下,HASH表初始化时需分配的空间大小为128字节*200W+4字节*200W=260MB。
由此可见,现有技术中使用固定空间大小的HASH表来存储SessionId和业务处理单元对应关系,导致内存空间消耗过大。
发明内容
本发明实施例提供了一种基于HASH表的Diameter消息处理方法及设备,用以解决使用固定空间大小的HASH表来存储SessionId和业务处理单元对应关系,导致内存空间消耗过大的问题。
本发明实施例提供的基于HASH表的Diameter消息处理方法,包括:
初始化时,根据最大用户数分配内存空间,所述内存空间用于存储Diameter会话关键字串存储地址和业务处理单元地址的对应关系信息,所述内存空间采用HASH表结构;
当根据接收到的第一Diameter消息建立会话时,执行:确定用于处理所述第一Diameter消息所属会话的第一业务处理单元,将所述第一Diameter消息发送给所述第一业务处理单元;从所述第一Diameter消息中提取关键字,根据提取的关键字生成第一关键字串,所述提取的关键字中至少包括会话标识;分配第一内存块,将所述第一关键字串存入所述第一内存块;对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中。
上述方案中,由于在初始化时仅分配用于存储关键字串和业务处理单元的对应关系信息的内存空间,而未分配用于存储Diameter会话关键字串的内存空间;当收到Diameter消息并需要根据该消息建立会话时,才分配用于存储该会话的关键字串的内存空间,并基于HASH运算创建该关键字串与业务处理单元的对应关系,从而实现了Diameter会话关键字串的内存空间的动态管理,与现有技术相比,节省了用于存储Diameter会话关键字及其与业务处理单元的对应关系的内存空间。
在一种优选方式中,所述内存空间包括第一内存空间、第二内存空间和第三内存空间;初始化时,根据最大用户数分配第一内存空间、第二内存空间和第三内存空间,所述第一内存空间包括N个存储单元,每个存储单元用于存储一个关键字串的指针和一个业务处理单元的地址,所述第二内存空间用于存储所述存储单元的索引值,所述第三内存空间包含N个HASH表项,每个HASH表项由唯一的HASH关键字索引,每个HASH表项用于存储一个关键字串的地址和一个所述存储单元的索引值,所述N为最大用户数;
所述对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中,包括:
根据所述第一关键字串计算第一HASH关键字;
分配第一索引号,将所述第一内存块的地址和所述第一索引号存入所述第一HASH关键字对应的HASH表项,将所述第一关键字串的指针和所述第一业务处理单元的地址,存入所述第一索引号对应的存储单元。
上述优选方案提供了一种简单易行且合理的实现过程。
在一种优选方案中,还包括:当根据接收到的第二Diameter消息更新会话时,执行:从所述第二Diameter消息中提取关键字,根据提取的关键字生成第二关键字串,根据所述第二关键字串计算第二HASH关键字,所述提取的关键字中至少包括会话标识;根据所述第二HASH关键字,从对应的HASH表项中获取第二内存块地址;根据所述第二内存块地址获取对应内存块中存储的关键字串,将根据所述第二内存块地址获取到的关键字串与所述第二关键字串进行比较,若相同,则根据所述第二HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第二业务处理单元地址,将所述第二Diameter消息发送给所述第二业务处理单元。
上述优选方案中,可在需要更新Diameter会话时,根据Diameter消息的关键字串进行查找和会话更新,实现了Diameter会话关键字串的内存空间的动态管理,与现有技术相比,节省了用于存储Diameter会话关键字及其与业务处理单元的对应关系的内存空间。
在一种优选方案中,还包括:当根据接收到的第三Diameter消息删除会话时,执行:从所述第三Diameter消息中提取关键字,根据提取的关键字生成第三关键字串,根据所述第三关键字串计算第三HASH关键字,所述提取的关键字中至少包括会话标识;根据所述第三HASH关键字,从对应的HASH表项中获取第三内存块地址;根据所述第三内存块地址获取对应内存块中存储的关键字串,将根据所述第三内存块地址获取到的关键字串与所述第三关键字串进行比较,若相同,则根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第三业务处理单元地址,将所述第三Diameter消息发送给所述第三业务处理单元;释放所述第三内存块地址对应的内存块,根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,清空对应的存储单元,并清空所述第三HASH关键字对应的HASH表项。
上述优选方案中,在会话删除时释放用于存储该会话的关键字的内存空间,从而实现了Diameter会话关键字串的内存空间的动态管理,与现有技术相比,节省了用于存储Diameter会话关键字及其与业务处理单元的对应关系的内存空间。
在一种优选方案中,所述内存空间还包括第四内存空间,在初始化时,还包括:分配第四内存空间,所述第四内存空间用于临时存储根据Diameter消息得到的关键字串。这样,可以使技术实现以及内存资源利用更为合理。
在一种优选方案中,分配所述第一内存块时,根据所述第一关键字串的长度确定内存块的大小,根据确定出的内存块的大小分配所述第一内存块。这样可以保证根据实际需要分配内存,从而合理利用内存资源。
在一种优选方案中,从Diameter消息中提取的关键字还包括:主机名和/或域名。这样可以保证在PCRF实体可以与多个PGW互通,各个PGW生成的SessionId有可能重复的情况下,HASH表中关键字(key)的唯一性。
本发明实施例提供的Diameter节点装置,包括:
初始化模块,用于根据最大用户数分配内存空间,所述内存空间用于存储Diameter会话关键字串存储地址和业务处理单元地址的对应关系信息,所述内存空间采用HASH表结构;
HASH表处理模块,用于当根据接收到的第一Diameter消息建立会话时,执行:确定用于处理所述第一Diameter消息所属会话的第一业务处理单元;从所述第一Diameter消息中提取关键字,根据提取的关键字生成第一关键字串,所述提取的关键字中至少包括会话标识;分配第一内存块,将所述第一关键字串存入所述第一内存块;对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中;
消息分发模块,用于将所述第一Diameter消息发送给所述HASH表处理模块确定出的所述第一业务处理单元。
具体的,所述内存空间包括第一内存空间、第二内存空间和第三内存空间;
所述初始化模块具体用于,初始化时,根据最大用户数分配第一内存空间、第二内存空间和第三内存空间,所述第一内存空间包括N个存储单元,每个存储单元用于存储一个关键字串的指针和一个业务处理单元的地址,所述第二内存空间用于存储所述存储单元的索引值,所述第三内存空间包含N个HASH表项,每个HASH表项由唯一的HASH关键字索引,每个HASH表项用于存储一个关键字串的地址和一个所述存储单元的索引值,所述N为最大用户数;
所述HASH表处理模块具体用于,根据所述第一关键字串计算第一HASH关键字;分配第一索引号,将所述第一内存块的地址和所述第一索引号存入所述第一HASH关键字对应的HASH表项,将所述第一关键字串的指针和所述第一业务处理单元的地址,存入所述第一索引号对应的存储单元。
进一步的,所述HASH表处理模块还用于,当根据接收到的第二Diameter消息更新会话时,执行:从所述第二Diameter消息中提取关键字,根据提取的关键字生成第二关键字串,根据所述第二关键字串计算第二HASH关键字,所述提取的关键字中至少包括会话标识;根据所述第二HASH关键字,从对应的HASH表项中获取第二内存块地址;根据所述第二内存块地址获取对应内存块中存储的关键字串,将根据所述第二内存块地址获取到的关键字串与所述第二关键字串进行比较,若相同,则根据所述第二HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第二业务处理单元地址;
所述消息分发模块还用于,将所述第二Diameter消息发送给所述HASH表处理模块确定出的所述第二业务处理单元。
进一步的,所述HASH表处理模块还用于,当根据接收到的第三Diameter消息删除会话时,执行:从所述第三Diameter消息中提取关键字,根据提取的关键字生成第三关键字串,根据所述第三关键字串计算第三HASH关键字,所述提取的关键字中至少包括会话标识;根据所述第三HASH关键字,从对应的HASH表项中获取第三内存块地址;根据所述第三内存块地址获取对应内存块中存储的关键字串,将根据所述第三内存块地址获取到的关键字串与所述第三关键字串进行比较,若相同,则根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第三业务处理单元地址;释放所述第三内存块地址对应的内存块,根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,清空对应的存储单元,并清空所述第三HASH关键字对应的HASH表项;
所述消息分发模块还用于,将所述第三Diameter消息发送给所述HASH表处理模块确定出的所述第三业务处理单元。
进一步的,所述内存空间还包括第四内存空间;所述初始化模块还用于,在初始化时,分配第四内存空间,所述第四内存空间用于临时存储根据Diameter消息得到的关键字串。
具体的,所述HASH表处理模块分配所述第一内存块时,根据所述第一关键字串的长度确定内存块的大小,根据确定出的内存块的大小分配所述第一内存块。
具体的,所述HASH表处理模块从Diameter消息中提取的关键字还包括:主机名和/或域名。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A为现有技术中的SEA架构示意图;
图1B为现有技术中的Diameter节点部署示意图;
图2A、图2B、图2C为本发明实施例提供的HASH表处理流程示意图;
图3为本发明实施例中Diameter节点初始化后,映射数组空间、索引资源空间、HASH表空间和全局内存块的示意图;
图4为本发明实施例提供的Diameter会话建立流程示意图;
图5为图4所示流程中的HASH表插入示意图;
图6为本发明实施例提供的Diameter消息转发流程示意图;
图7为图6所示流程中的HASH表查找示意图;
图8为本发明实施例提供的Diameter会话删除流程示意图;
图9为图8所示流程中的HASH表删除示意图;
图10为本发明实施例提供的Diameter节点装置的示意图。
具体实施方式
为了解决现有技术存在的技术问题,本发明实施例提供了一种基于HASH表的Diameter消息处理方法和装置。本发明实施例中,在Diameter节点初始化时分配内存空间,以存储Diameter会话关键字串与业务处理单元的对应关系信息;在需要创建Diameter会话时,才为该Diameter会话分配存储该会话的关键字串的内存空间,从而与现有技术相比,节省了用于存储Diameter会话关键字及其与业务处理单元的对应关系的内存空间。
本发明实施例可应用于图1A所示的系统架构。本发明实施例中的Diameter节点是指运行Diameter协议的网络节点,该网络节点可以是物理节点,也可以是逻辑节点,比如,Diameter节点可以是MME、HSS、PCRF、PGW等。
Diameter节点可采用如图1B所示的分布式架构,Diameter节点中可包括一个全局处理单元,以及一个或多个业务处理单元,当然为了提高可靠性,还可以包括一个或多个备份全局处理单元。全局处理单元通常为主控板(即实现控制功能的单板),业务处理单元通常为业务板(即实现业务功能的单板)。
当Diameter节点初始化时,Diameter节点的全局处理单元需要根据最大用户数分配内存空间,用来存储Diameter会话的关键字串的存储地址和业务处理单元地址的对应关系信息。以最大用户数等于N为例,初始化时,根据最大用户数N分配内存空间,该内存空间用于存储Diameter会话关键字串存储地址和业务处理单元地址的对应关系信息,该内存空间采用HASH表结构。
如图2A所示,当根据接收到的第一Diameter消息建立会话时,执行以下步骤:
步骤201:确定用于处理所述第一Diameter消息所属会话的第一业务处理单元,将第一Diameter消息发送给第一业务处理单元;
步骤202:从第一Diameter消息中提取关键字,根据提取的关键字生成第一关键字串,提取的关键字中至少包括会话标识;
步骤203:分配第一内存块,将第一关键字串存入所述第一内存块;
步骤204:对第一关键字串进行HASH运算,根据运算得到的HASH关键字(HASHKey),将第一内存块的地址和第一业务处理单元的地址存入该内存空间内该HASH关键字对应的HASH表项中。
如图2B所示,当根据接收到的第二Diameter消息进行会话处理时,执行以下步骤:
步骤211:从第二Diameter消息中提取关键字,根据提取的关键字生成第二关键字串,根据第二关键字串计算第二HASH关键字,提取的关键字中至少包括会话标识;
步骤212:根据第二HASH关键字,从对应的HASH表项中获取第二内存块地址,根据第二内存块地址获取对应内存块中存储的关键字串;
步骤213:将根据第二内存块地址获取到的关键字串与第二关键字串进行比较,若相同,则转入步骤214,否则结束本流程;
步骤214:根据第二HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第二业务处理单元地址,将第二Diameter消息发送给第二业务处理单元。
如图2C所示,当根据接收到的第三Diameter消息删除会话时,执行:
步骤221:从第三Diameter消息中提取关键字,根据提取的关键字生成第三关键字串,根据第三关键字串计算第三HASH关键字,提取的关键字中至少包括会话标识;
步骤222:根据第三HASH关键字,从对应的HASH表项中获取第三内存块地址,根据第三内存块地址获取对应内存块中存储的关键字串;
步骤223:将根据第三内存块地址获取到的关键字串与第三关键字串进行比较,若相同,则转入步骤224,否则结束本流程;
步骤224:根据第三HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第三业务处理单元地址,将第三Diameter消息发送给第三业务处理单元;
步骤225:释放第三内存块地址对应的内存块,根据第三HASH关键字对应的HASH表项中存储的存储单元的索引号,清空对应的存储单元,并清空第三HASH关键字对应的HASH表项。
本发明的上述实施例,由于在初始化时仅分配用于存储关键字串和业务处理单元的对应关系信息的内存空间,而未分配用于存储Diameter会话关键字串的内存空间;当收到Diameter消息并需要根据该消息建立会话时,才分配用于存储该会话的关键字的内存空间,并基于HASH运算创建该关键字串与业务处理单元的对应关系,在会话删除时释放用于存储该会话的关键字的内存空间,从而实现了Diameter会话关键字串的内存空间的动态管理,与现有技术相比,节省了用于存储Diameter会话关键字及其与业务处理单元的对应关系的内存空间。
下面对本发明实施例的具体实现过程进行详细描述。
初始化时,Diameter节点的全局处理单元所分配的上述用途的内存空间可包括以下第一内存空间、第二内存空间和第三内存空间:
第一内存空间,用于存储Diameter会话关键字串的指针和业务处理单元的地址的映射关系。第一内存空间包括N个存储单元,每个存储单元用于存储一个Diameter关键字串的指针和一个业务处理单元的地址。Diameter会话关键字串的指针和业务处理单元的地址的映射关系,可以采用数组形式的数据结构存储,因此也可将第一内存空间称为映射数组空间,该数组共有N个元素,每个元素由Diameter关键字串的指针和业务处理单元的地址构成。
第二内存空间(以下称为索引资源空间),用于存储第一内存空间中的每个存储单元的索引值。该索引值通常从0开始连续编号,即索引号,在第一内存空间为数组形式进行组织时,该索引号即为数组的下标。
第三内存空间(以下称为HASH表空间),包含N个HASH表项,HASH表项由HASH key(HASH关键字)索引,每个HASH表项即为一个存储单元,用于存储一个Diameter会话关键字串的地址和第一内存空间中的存储单元的索引值(如映射数组的下标)。HASH表项也可称为HASH桶(Bucket),每个HASH桶有一个唯一的HASH桶号,HASH桶号即为HASH key。HASH桶的桶号由Diameter会话的关键字串基于HASH算法运算得到。
进一步的,为了方便后续HASH表的查找操作,Diameter节点的全局处理单元还可以在初始化时分配第四内存空间(以下称为全局内存块),用于在HASH表查找时,临时存储根据Diameter消息得到的Diameter会话的关键字串。
初始化操作完成后,当Diameter节点接收到Diameter消息,并决定创建Diameter会话时,执行HASH表插入过程,即,分配内存块以存储Diameter会话关键字串(该内存分配过程可称为动态内存分配),并建立该关键字串的存储地址与业务处理单元地址的映射关系。
下面以第一内存空间为映射数组空间、第二内存空间为索引资源空间、第三内存空间为HASH表空间、第四内存空间为全局内存块为例,对本发明实施例的实现过程进行详细描述。
图3示出了Diameter节点初始化后,全局处理单元分配的映射数组空间、索引资源空间、HASH表空间和全局内存块的示意图。图中的UNIT8*p表示内存块指针,该指针指向存储关键字串的内存块(即动态内存块),该指针为UNIT型(即无符号整型)的8比特数值;图中的UNIT32uiAddress表示业务处理单元的地址,该地址为32比特的UNIT型数值。
上述映射数组空间、索引资源空间、HASH表空间和全局内存块,在初始化时分配完成后,其容量保持不变,可称为静态内存空间。
通常情况下,Diameter会话关键字串的指针为1个字节长度,业务处理单元的地址为4个字节长度,关键字串的地址为1个字节长度,全局内存块为512字节,索引号的长度可根据最大用户数来确定。仍以最大用户数为200万的环境为例,则索引号长度为4字节,初始化时,在没有用户接入的情况下,上述映射数组空间、索引资源空间、HASH表空间和全局内存块的内存占用量为:
(关键字串指针长度+业务处理单元地址长度)*200W+索引号长度*200W+(关键字串地址长度+索引号长度)*200W+512=(1+4)*200W+4*200W+(1+4)*200W+521=24MB
可以看出,与采用现有技术需要分配260MB内存空间相比,本发明实施例可以在初始化时节省约10倍空间。
初始化操作完成后,当Diameter节点接收到Diameter消息,并决定创建Diameter会话时,执行HASH表插入过程,即,分配内存块以存储Diameter会话关键字串(该内存分配过程可称为动态内存分配),并建立该关键字串的存储地址与业务处理单元地址的映射关系。
下面结合图4,以PCRF实体接收到PGW发送来的CCR消息后建立Diameter会话的处理过程为例,描述HASH表插入过程。
如图4所示,该流程可包括以下步骤:
步骤401:PCRF实体的全局处理单元接收到PGW发送来的CCR消息后,决定创建Diameter会话。PCRF实体接收到CCR消息后,若确定该CCR消息中携带有表明该消息为初始消息的IE(Information Unit,信息单元),则决定创建Diameter会话。
步骤402:PCRF实体的全局处理单元确定用于处理该CCR消息所属会话的业务处理单元。优选的,可根据负载分担原则,确定用于处理该CCR消息所属会话的业务处理单元。这里以选择业务处理单元1来处理该CCR消息为例描述。
步骤403:PCRF实体的全局处理单元从该CCR消息中提取关键字,根据提取的关键字生成关键字串,根据该关键字串并运用HASH算法计算HASH桶号。所提取的关键字中至少包括SessionID。
考虑到PCRF实体可以与多个PGW互通,各个PGW生成的SessionId有可能重复,因此无法保证HASH表中关键字(key)的唯一性,因而导致无法进行HASH查询。为了解决该问题,本发明实施例中,在提取关键字时,除了提取CCR消息中的SessionID,还可提取发送该CCR消息的Diameter节点的主机名(OriginHost)和该Diameter节点的域名(OriginRealm),根据提取的SessionID、OriginHost和OriginRealm生成关键字串。
在根据提取的关键字生成关键字串时,可将提取的关键字拼接为关键字串,中间用间隔符(比如“&”)分割,优选的,拼接后的关键字串为:主机名&域名&SessionID。例如,主机名为“pgw1”,域名为“aaa.cn”,SessionID为“pgw1;12345;5483”(其中,SessionID的组成为:主机名;单增序列;设备ID或时间戳),则拼接后的关键字串为:pgw1&aaa.cn&pgw1;12345;5483。
步骤404:PCRF实体的全局处理单元分配索引号和内存块,将生成的关键字串存入该内存块,将该内存块的地址和分配的索引号存入计算出的HASH桶号对应的HASH桶(即插入HASH表),将该关键字串的指针和业务处理单元1的地址,存入映射数组空间中与分配的索引号对应的数组内。
步骤404的处理过程可如图5所示,具体可包括以下步骤:
a)分配内存块,将生成的关键字串存入该内存块,该内存块的地址表示为“*p”;在分配内存块时,可根据关键字串的长度进行分配,以保证所分配的内存块有足够的空间存放关键字串,且不会造成内存空间浪费;
b)分配索引号index,所分配的索引号index为当前未使用的索引号,如对应的数组中还没有存储数据;
c)根据该关键字串计算得到的HASH桶号索引到对应的HASH桶,将步骤a分配的内存块的地址“p”和步骤b分配的索引号index,存入该HASH桶;
d)根据步骤b分配的索引号index索引到映射数组空间中对应的数组,将该关键字的指针和业务处理单元1的地址存入该数组。优选的,可将步骤a分配的内存块地址作为关键字串的指针存入该数组。
步骤405:PCRF实体的全局处理单元将该CCR消息发送给步骤402确定出的业务处理单元1。进一步的,在步骤406中,业务处理单元1还可以向PCRF实体的全局处理单元返回CCA(Credit Control ACK,信用控制确认)消息,PCRF实体的全局处理单元还可将该CCA消息转发给PGW。
图4的流程是以PCRF节点收到CCR消息为例描述的,其他Diameter节点收到Diameter消息并确定创建Diameter会话的过程,与图4的流程类似,在此不再详述。
通过以上图4的流程可以看出,本发明实施例使用静态分配内存和动态分配相结合的方式进行HASH表插入,关键字串存放在动态内存中,动态内存在会话建立时分配,动态内存的大小可根据关键字串的实际长度进行分配,在HASH表的存储单元中存放关键字串的地址。在关键字串很长的情况下可大大节约HASH表占用的内存空间。另一方面,本发明实施例使用Diameter消息中的OriginHost、OriginRealm和SessionId组合字符串作为HASH表的关键字,在PCRF连接多个PGW客户端的情况下,也可保证关键字的唯一性。
另外,现有技术中,不同生产厂商的PGW发送的Diameter消息中携带的SessionId的长度可能不同,则有可能出现HASH表中预留的SessionId长度不够,导致后续的查找出错,也有可能出现HASH表中预留的SessionId长度过大,导致内存空间的浪费;而本发明实施例,由于包含SessionID的关键字串存储于动态分配的内存空间,即,在需要创建Diameter会话时才根据关键字串的大小来分配内存块以存储该关键字创,因此有效解决了该问题。
Diameter节点接收到Diameter消息且已创建相应Diameter会话的情况下,执行HASH表查找过程,即,查找到处理该Diameter会话的业务处理单元,并将该Diameter消息发送到查询到的业务处理单元进行处理。
下面结合图6,以PCRF实体接收到PGW发送来的CCR消息后分发给CCR消息的处理过程为例,描述HASH表查找过程。
如图6所示,该流程可包括以下步骤:
步骤601:PCRF实体的全局处理单元接收PGW发送来的CCR消息,并决定分发该CCR消息。PCRF实体接收到CCR消息后,若确定该CCR消息中携带有表明该消息为更新消息的IE,则决定分发该CCR消息。
步骤602:PCRF实体的全局处理单元从该CCR消息中提取关键字,根据提取的关键字生成关键字串,根据生成的关键字串并利用HASH算法,计算HASH桶号。
该步骤中,如果关键字可以仅包括SessionID,也可以进一步包括OriginHost和OriginRealm。如果包括SessionID、OriginHost和OriginRealm,则按照与图4所示流程中的方式,将SessionID、OriginHost和OriginRealm拼接成关键字串。
进一步的,PCRF实体的全局处理单元可将生成的关键字串存储到全局内存块中,以便于后续使用。
步骤603:PCRF实体的全局处理单元根据计算出的HASH桶号,从对应的HASH桶中获取内存块地址,并根据该内存块地址,从对应的内存块获取关键字串;
步骤604:PCRF实体的全局处理单元将步骤603获取到的关键字串与步骤602生成的关键字串进行比较,若相同,则从该HASH桶中获取索引号,根据该索引号从对应的数组中获取业务处理单元的地址,否则HASH表查找失败,结束本次流程;
步骤605:PCRF实体的全局处理单元根据步骤605获得的业务处理单元地址,将该CCR消息发送给对应的业务处理单元。进一步的,在步骤606中,PCRF实体的全局处理单元接收业务处理单元返回的CCR消息的响应消息,并返回给PGW。
上述步骤603~604的具体实现过程可如图7所示。
图6的流程是以PCRF节点收到CCR消息为例描述的,其他Diameter节点收到Diameter消息并决定将该Diameter消息转发给相应的业务处理单元进行处理的过程,与图6的流程类似,在此不再详述。
通过以上图6所示的流程可以看出,本发明实施例使用动态内存和静态内存结合的方式进行HASH表查找,关键字串存放在动态内存中,动态内存在会话建立时分配,动态内存的大小可根据关键字串的实际长度进行分配,在HASH表的存储单元中存放关键字串的地址。在关键字串很长的情况下可大大节约HASH表占用的内存空间。
Diameter节点接收到Diameter消息,并决定删除对应的Diameter会话的情况下,首先执行HASH表查找过程,然后执行HASH表删除过程。
下面结合图8,以PCRF实体接收到PGW发送来的CCR消息后删除Diameter会话的处理过程为例,描述HASH表删除过程。
如图8所示,该流程可包括以下步骤:
步骤801:PCRF实体的全局处理单元接收PGW发送来的CCR消息,并决定删除对应的Diameter会话。PCRF实体接收到CCR消息后,若确定该CCR消息中携带有表明该消息为删除消息的IE,则决定删除Diameter会话。
步骤802:PCRF实体的全局处理单元从该CCR消息中提取关键字,根据提取的关键字生成关键字串,根据生成的关键字串并利用HASH算法,计算HASH桶号。
该步骤中,如果关键字可以仅包括SessionID,也可以进一步包括OriginHost和OriginRealm。如果包括SessionID、OriginHost和OriginRealm,则按照与图4所示流程中的方式,将SessionID、OriginHost和OriginRealm拼接成关键字串。
进一步的,PCRF实体的全局处理单元可将生成的关键字串存储到全局内存块中,以便于后续使用。
步骤803:PCRF实体的全局处理单元根据计算出的HASH桶号,从对应的HASH桶中获取内存块地址,并根据该内存块地址,从对应的内存块获取关键字串;
步骤804:PCRF实体的全局处理单元将步骤803获取到的关键字串与步骤802生成的关键字串进行比较,若相同,则从该HASH桶中获取索引号,根据该索引号从对应的数组中获取业务处理单元的地址,否则HASH表查找失败,结束本次流程;
步骤805:PCRF实体的全局处理单元根据步骤804获得的业务处理单元地址,将该CCR消息发送给对应的业务处理单元,并释放步骤803中获取到的内存块地址对应的内存块,清空步骤804中获取到的索引号对应的数组,并清空步骤803中计算出的HASH桶号对应的HASH桶。进一步的,在步骤806中,PCRF实体的全局处理单元接收业务处理单元返回的CCR消息的响应消息,并返回给PGW。
上述步骤805的具体实现过程可如图9所示。
图8的流程是以PCRF节点收到CCR消息后删除Diameter会话为例描述的,其他Diameter节点收到Diameter消息并决定删除对应Diameter会话的过程,与图8的流程类似,在此不再详述。
通过以上图8所示的流程可以看出,本发明实施例使用动态内存和静态内存结合的方式进行HASH表插入,关键字串存放在动态内存中,动态内存在会话建立时分配,在会话删除时释放,动态内存的大小可根据关键字串的实际长度进行分配,在HASH表的存储单元中存放关键字串的地址。在关键字串很长的情况下可大大节约HASH表占用的内存空间。
在本发明的另一种优选方案中,基于与上述实施例相同的技术思想,可以对上述实施例的内存空间数据结构进行进一步简化,从而进一步减少初始化时需要分配的内存空间。
在该优化方案中,Diameter节点初始化时,可以不用分配映射数组空间和索引号空间,但需要分配HASH表空间,该HASH表中包括N个HASH桶(N为最大用户数),每个HASH桶用于存储Diameter会话关键字串地址和处理该Diameter会话的业务处理单元的地址。相应的,在HASH表插入、查找和删除过程中,可以省略相关针对映射数组和索引号的操作。具体的,在HASH表插入过程中,可按照前述方式确定对应的业务处理单元、分配内存块,并根据Diameter消息获得关键字串后,将该关键字串存入到该内存块,根据该关键字串计算得到HASH桶号,在该HASH桶号在对应的HASH桶中存入该内存块地址和该业务处理单元地址;在HASH表查找过程中,可按照前述方式,根据Diameter消息获得关键字串后,根据该关键字串计算得到HASH桶号,根据该HASH桶号从对应的HASH桶中获取内存块地址,根据该内存块地址获取关键字串,并与根据Diameter消息获得关键字串进行比较,若相同,则根据该HASH桶号从对应的HASH桶中获取业务处理单元地址,将该Diameter消息发送给对应的业务处理单元进行处理;在HASH表删除过程中,按照前述方式查找到HASH桶后,从该HASH桶中获取业务处理单元的地址,将接收到的Diameter消息发送给对应的业务处理单元进行处理,并释放该HASH桶以及该HASH桶中的内存块地址指向的内存块。
通过该优化方案可以看出,无论静态分配的内存空间采用何种HASH表结构,只要使用静态分配的内存空间存储关键字串地址和业务处理单元地址的对应关系,使用动态分配的内存空间存储关键字串,静态内存空间在系统初始化时一次性分配,动态内存空间在Diameter会话建立时申请,会话删除时释放,即可与现有技术相比节省HASH表的内存空间。
基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的Diameter节点装置。
参见图10,为本发明实施例提供的Diameter节点装置的结构示意图,如图所示,该装置可包括:初始化模块1001、HASH表处理模块1002、消息分发模块1003,其中:
初始化模块1001,用于根据最大用户数分配内存空间,所述内存空间用于存储Diameter会话关键字串存储地址和业务处理单元地址的对应关系信息,所述内存空间采用HASH表结构;
HASH表处理模块1002,用于当根据接收到的第一Diameter消息建立会话时,执行:确定用于处理所述第一Diameter消息所属会话的第一业务处理单元;从所述第一Diameter消息中提取关键字,根据提取的关键字生成第一关键字串,所述提取的关键字中至少包括会话标识;分配第一内存块,将所述第一关键字串存入所述第一内存块;对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中;
消息分发模块1003,用于将所述第一Diameter消息发送给所述HASH表处理模块确定出的所述第一业务处理单元。
具体的,所述内存空间可包括第一内存空间、第二内存空间和第三内存空间。相应的,初始化模块1001可在初始化时,根据最大用户数分配第一内存空间、第二内存空间和第三内存空间,所述第一内存空间包括N个存储单元,每个存储单元用于存储一个关键字串的指针和一个业务处理单元的地址,所述第二内存空间用于存储所述存储单元的索引值,所述第三内存空间包含N个HASH表项,每个HASH表项由唯一的HASH关键字索引,每个HASH表项用于存储一个关键字串的地址和一个所述存储单元的索引值,所述N为最大用户数。HASH表处理模块1002可根据所述第一关键字串计算第一HASH关键字;分配第一索引号,将所述第一内存块的地址和所述第一索引号存入所述第一HASH关键字对应的HASH表项,将所述第一关键字串的指针和所述第一业务处理单元的地址,存入所述第一索引号对应的存储单元。
进一步的,HASH表处理模块1002还可当根据接收到的第二Diameter消息更新会话时,执行:从所述第二Diameter消息中提取关键字,根据提取的关键字生成第二关键字串,根据所述第二关键字串计算第二HASH关键字,所述提取的关键字中至少包括会话标识;根据所述第二HASH关键字,从对应的HASH表项中获取第二内存块地址;根据所述第二内存块地址获取对应内存块中存储的关键字串,将根据所述第二内存块地址获取到的关键字串与所述第二关键字串进行比较,若相同,则根据所述第二HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第二业务处理单元地址。相应的,消息分发模块1003还可将所述第二Diameter消息发送给所述HASH表处理模块确定出的所述第二业务处理单元。
进一步的,HASH表处理模块1002还可当根据接收到的第三Diameter消息删除会话时,执行:从所述第三Diameter消息中提取关键字,根据提取的关键字生成第三关键字串,根据所述第三关键字串计算第三HASH关键字,所述提取的关键字中至少包括会话标识;根据所述第三HASH关键字,从对应的HASH表项中获取第三内存块地址;根据所述第三内存块地址获取对应内存块中存储的关键字串,将根据所述第三内存块地址获取到的关键字串与所述第三关键字串进行比较,若相同,则根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第三业务处理单元地址;释放所述第三内存块地址对应的内存块,根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,清空对应的存储单元,并清空所述第三HASH关键字对应的HASH表项。相应的,消息分发模块1003还可将所述第三Diameter消息发送给所述HASH表处理模块确定出的所述第三业务处理单元。
具体的,所述内存空间还可包括第四内存空间。相应的,初始化模块1001还可在初始化时,分配第四内存空间,所述第四内存空间用于临时存储根据Diameter消息得到的关键字串。
进一步的,HASH表处理模块1002分配所述第一内存块时,可根据所述第一关键字串的长度确定内存块的大小,根据确定出的内存块的大小分配所述第一内存块。
进一步的,HASH表处理模块1002从Diameter消息中提取的关键字还可包括:主机名和/或域名。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1.一种基于HASH表的Diameter消息处理方法,其特征在于,包括:
初始化时,根据最大用户数分配第一内存空间、第二内存空间和第三内存空间,其中,所述内存空间用于存储Diameter会话关键字串存储地址和业务处理单元地址的对应关系信息,所述内存空间采用HASH表结构,所述第一内存空间包括N个存储单元,每个存储单元用于存储一个关键字串的指针和一个业务处理单元的地址,所述第二内存空间用于存储所述存储单元的索引值,所述第三内存空间包含N个HASH表项,每个HASH表项由唯一的HASH关键字索引,每个HASH表项用于存储一个关键字串的地址和一个所述存储单元的索引值,所述N为最大用户数;
当根据接收到的第一Diameter消息建立会话时,执行:
确定用于处理所述第一Diameter消息所属会话的第一业务处理单元,将所述第一Diameter消息发送给所述第一业务处理单元;
从所述第一Diameter消息中提取关键字,根据提取的关键字生成第一关键字串,所述提取的关键字中至少包括会话标识;
分配第一内存块,将所述第一关键字串存入所述第一内存块;
对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中。
2.如权利要求1所述的方法,其特征在于,所述对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中,包括:
根据所述第一关键字串计算第一HASH关键字;
分配第一索引号,将所述第一内存块的地址和所述第一索引号存入所述第一HASH关键字对应的HASH表项,将所述第一关键字串的指针和所述第一业务处理单元的地址,存入所述第一索引号对应的存储单元。
3.如权利要求2所述的方法,其特征在于,还包括:
当根据接收到的第二Diameter消息更新会话时,执行:
从所述第二Diameter消息中提取关键字,根据提取的关键字生成第二关键字串,根据所述第二关键字串计算第二HASH关键字,所述提取的关键字中至少包括会话标识;
根据所述第二HASH关键字,从对应的HASH表项中获取第二内存块地址;
根据所述第二内存块地址获取对应内存块中存储的关键字串,将根据所述第二内存块地址获取到的关键字串与所述第二关键字串进行比较,若相同,则根据所述第二HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第二业务处理单元地址,将所述第二Diameter消息发送给所述第二业务处理单元。
4.如权利要求2所述的方法,其特征在于,还包括:
当根据接收到的第三Diameter消息删除会话时,执行:
从所述第三Diameter消息中提取关键字,根据提取的关键字生成第三关键字串,根据所述第三关键字串计算第三HASH关键字,所述提取的关键字中至少包括会话标识;
根据所述第三HASH关键字,从对应的HASH表项中获取第三内存块地址;
根据所述第三内存块地址获取对应内存块中存储的关键字串,将根据所述第三内存块地址获取到的关键字串与所述第三关键字串进行比较,若相同,则根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第三业务处理单元地址,将所述第三Diameter消息发送给所述第三业务处理单元;
释放所述第三内存块地址对应的内存块,根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,清空对应的存储单元,并清空所述第三HASH关键字对应的HASH表项。
5.如权利要求2所述的方法,其特征在于,所述内存空间还包括第四内存空间,在初始化时,还包括:
分配第四内存空间,所述第四内存空间用于临时存储根据Diameter消息得到的关键字串。
6.如权利要求1-5中任一项所述的方法,其特征在于,分配所述第一内存块时,根据所述第一关键字串的长度确定内存块的大小,根据确定出的内存块的大小分配所述第一内存块。
7.如权利要求1-5中任一项所述的方法,其特征在于,从Diameter消息中提取的关键字还包括:主机名和/或域名。
8.一种Diameter节点装置,其特征在于,包括:
初始化模块,用于根据最大用户数分配第一内存空间、第二内存空间和第三内存空间,其中,所述内存空间用于存储Diameter会话关键字串存储地址和业务处理单元地址的对应关系信息,所述内存空间采用HASH表结构,所述第一内存空间包括N个存储单元,每个存储单元用于存储一个关键字串的指针和一个业务处理单元的地址,所述第二内存空间用于存储所述存储单元的索引值,所述第三内存空间包含N个HASH表项,每个HASH表项由唯一的HASH关键字索引,每个HASH表项用于存储一个关键字串的地址和一个所述存储单元的索引值,所述N为最大用户数;
HASH表处理模块,用于当根据接收到的第一Diameter消息建立会话时,执行:
确定用于处理所述第一Diameter消息所属会话的第一业务处理单元;
从所述第一Diameter消息中提取关键字,根据提取的关键字生成第一关键字串,所述提取的关键字中至少包括会话标识;
分配第一内存块,将所述第一关键字串存入所述第一内存块;
对所述第一关键字串进行HASH运算,根据运算得到的HASH关键字,将所述第一内存块的地址和所述第一业务处理单元的地址存入所述内存空间内所述HASH关键字对应的HASH表项中;
消息分发模块,用于将所述第一Diameter消息发送给所述HASH表处理模块确定出的所述第一业务处理单元。
9.如权利要求8所述的装置,其特征在于,所述HASH表处理模块具体用于,根据所述第一关键字串计算第一HASH关键字;分配第一索引号,将所述第一内存块的地址和所述第一索引号存入所述第一HASH关键字对应的HASH表项,将所述第一关键字串的指针和所述第一业务处理单元的地址,存入所述第一索引号对应的存储单元。
10.如权利要求9所述的装置,其特征在于,所述HASH表处理模块还用于,当根据接收到的第二Diameter消息更新会话时,执行:
从所述第二Diameter消息中提取关键字,根据提取的关键字生成第二关键字串,根据所述第二关键字串计算第二HASH关键字,所述提取的关键字中至少包括会话标识;
根据所述第二HASH关键字,从对应的HASH表项中获取第二内存块地址;
根据所述第二内存块地址获取对应内存块中存储的关键字串,将根据所述第二内存块地址获取到的关键字串与所述第二关键字串进行比较,若相同,则根据所述第二HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第二业务处理单元地址;
所述消息分发模块还用于,将所述第二Diameter消息发送给所述HASH表处理模块确定出的所述第二业务处理单元。
11.如权利要求9所述的装置,其特征在于,所述HASH表处理模块还用于,当根据接收到的第三Diameter消息删除会话时,执行:
从所述第三Diameter消息中提取关键字,根据提取的关键字生成第三关键字串,根据所述第三关键字串计算第三HASH关键字,所述提取的关键字中至少包括会话标识;
根据所述第三HASH关键字,从对应的HASH表项中获取第三内存块地址;
根据所述第三内存块地址获取对应内存块中存储的关键字串,将根据所述第三内存块地址获取到的关键字串与所述第三关键字串进行比较,若相同,则根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,从对应的存储单元获取第三业务处理单元地址;
释放所述第三内存块地址对应的内存块,根据所述第三HASH关键字对应的HASH表项中存储的存储单元的索引号,清空对应的存储单元,并清空所述第三HASH关键字对应的HASH表项;
所述消息分发模块还用于,将所述第三Diameter消息发送给所述HASH表处理模块确定出的所述第三业务处理单元。
12.如权利要求9所述的装置,其特征在于,所述内存空间还包括第四内存空间;
所述初始化模块还用于,在初始化时,分配第四内存空间,所述第四内存空间用于临时存储根据Diameter消息得到的关键字串。
13.如权利要求8-12中任一项所述的装置,其特征在于,所述HASH表处理模块分配所述第一内存块时,根据所述第一关键字串的长度确定内存块的大小,根据确定出的内存块的大小分配所述第一内存块。
14.如权利要求8-12中任一项所述的装置,其特征在于,所述HASH表处理模块从Diameter消息中提取的关键字还包括:主机名和/或域名。
CN201310521860.5A 2013-10-29 2013-10-29 基于HASH表的Diameter消息处理方法和装置 Active CN103544292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310521860.5A CN103544292B (zh) 2013-10-29 2013-10-29 基于HASH表的Diameter消息处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310521860.5A CN103544292B (zh) 2013-10-29 2013-10-29 基于HASH表的Diameter消息处理方法和装置

Publications (2)

Publication Number Publication Date
CN103544292A CN103544292A (zh) 2014-01-29
CN103544292B true CN103544292B (zh) 2017-05-24

Family

ID=49967744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310521860.5A Active CN103544292B (zh) 2013-10-29 2013-10-29 基于HASH表的Diameter消息处理方法和装置

Country Status (1)

Country Link
CN (1) CN103544292B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763524B (zh) * 2018-05-31 2023-06-06 康键信息技术(深圳)有限公司 电子装置、聊天数据处理方法和计算机可读存储介质
CN115150448B (zh) * 2022-06-14 2023-08-25 北京车网科技发展有限公司 一种会话数据处理方法、系统、存储介质和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271366A (zh) * 2011-08-29 2011-12-07 大唐移动通信设备有限公司 一种Diameter节点的消息传输方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2395205T3 (es) * 2000-10-09 2013-02-11 Maximum Availability Limited Procedimiento y aparato para replicar una base de datos
CN102541968B (zh) * 2010-12-31 2014-04-09 百度在线网络技术(北京)有限公司 一种索引方法
KR101738074B1 (ko) * 2011-04-05 2017-05-19 삼성전자주식회사 메모리 장치, 및 이를 포함하는 컴퓨터 시스템
CN102790959B (zh) * 2012-07-02 2015-04-08 大唐移动通信设备有限公司 一种Diameter消息的发送方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271366A (zh) * 2011-08-29 2011-12-07 大唐移动通信设备有限公司 一种Diameter节点的消息传输方法及装置

Also Published As

Publication number Publication date
CN103544292A (zh) 2014-01-29

Similar Documents

Publication Publication Date Title
CN110191428B (zh) 一种基于智能云平台的数据分配方法
CN105337750B (zh) 光纤通道存储区域网络配置方法和装置
CN104636286B (zh) 用于数据访问的方法和设备
CN103441932B (zh) 一种主机路由表项生成方法及设备
CN104780232B (zh) 一种资源分配方法、控制器及系统
CN107330680A (zh) 红包控制方法、装置、计算机设备及计算机可读存储介质
CN106209402A (zh) 一种虚拟网络功能的伸缩方法和设备
CN105556916A (zh) 网络流的信息统计方法和装置
CN108076078A (zh) 一种云主机创建方法、装置及云服务系统
CN106899643A (zh) 一种用户日志存储方法及设备
CN108460030A (zh) 一种基于改进的布隆过滤器的集合元素判断方法
CN111585887A (zh) 基于多个网络的通信方法、装置、电子设备及存储介质
CN106850547A (zh) 一种基于http协议的数据还原方法及系统
CN109150745A (zh) 一种报文处理方法及装置
CN103544292B (zh) 基于HASH表的Diameter消息处理方法和装置
CN104123102B (zh) 一种ip硬盘及其数据处理方法
CN109286584A (zh) 一种多核系统中的分片重组方法、装置及设备
CN104579753B (zh) 用户数据统计方法、接入层服务器和统计服务器
CN105991789A (zh) 一种虚拟机端口映射的实现方法、服务器及系统
CN105100072B (zh) 一种网络节点监测方法及装置
CN101872303B (zh) 处理Diameter协议消息的方法
US10572486B2 (en) Data communication in a distributed data grid
CN107770273A (zh) 一种大文件云同步方法及系统
CN103546522A (zh) 确定存储服务器的方法及分布式存储系统
CN107545004A (zh) 一种搜索的方法、装置和搜索引擎系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant