diameter消息解析方法及装置的制造方法

文档序号:8342679阅读:387来源:国知局
diameter消息解析方法及装置的制造方法
【技术领域】
[0001] 本发明涉及互联网领域,具体而言,涉及diameter消息解析方法及装置。
【背景技术】
[0002]Diameter协议是IETF开发的新一代AAA协议,AAA即Authentication(认证)、 Authorization(授权)、Accounting(计费)。Diameter包含基础协议不同的应用扩展协 议。Diameter基础协议为各种应用扩展协议提供了一个基础框架,它定义了消息格式以及 消息的扩展方法、消息的处理机制、协议的传输机制以及协议的安全保障机制等。
[0003]Diameter协议具备良好的扩展性和通用型,随着diameter协议的不断发展和完 善,diameter应用的领域和范围也越来越广泛,而随之而来的是针对其性能、可靠性以及消 息解码的可扩展性的要求也越来越高;同时diameter协议是一个承载在SCTP/TCP上的实 时协议,在很多应用中由于应用本身的使用场景都要求其具有高效的消息处理能力,如实 时计费等应用。
[0004]Diameter协议所具有的良好的扩展性在很大方面是得益于diameter消息本身所 具有的高扩展性。Diameter消息是一个可自由扩展的树型结构,而非一个扁平的静态结构。 为了高效的解析diameter消息,对于非静态的数据结构显然不可能通过内存预先分配(内 存池)或者解析过程中直接new/delete的方式来构建消息。
[0005] 目前针对diameter消息的解析,基本都采用解析过程中直接通过new/delete的 方式来构建消息,同时对消息的解析也是通过消息数据来驱动,在解析过程中通过查找对 应的规则进行校验,解析效率较低,在对消息解析效率有高要求的应用场景下无法满足要 求。
[0006] 对于相关技术中存在的上述问题,目前还没有提出合理的解决方案。

【发明内容】

[0007] 本发明提供了diameter消息解析方法及装置,以至少解决相关技术中diameter消息解析效率低的问题。
[0008] 根据本发明的一个方面,提供了一种diameter消息解析方法,包括:
[0009] 设置消息解析树,并构建消息解析树对象,其中,所述消息解析树是根据预先定 义的消息格式设置的,所述消息解析树用于对diameter消息进行解析;使用所述消息解 析树对象对接收到的diameter消息从树上匹配对应的解析节点;用对应解析节点对所述 diameter消息进行结构适配,直到所述diameter消息的所有原子属性值对AVP解析处理完 成;从解析完成之后的所述diameter消息中抽取数据。
[0010] 优选地,所述消息解析树包括:结构适配器、行为适配器、AVP解析器、和数据抽取 器,其中,所述结构适配器用于消息结构的适配;所述行为适配器用于对所述diameter消 息中AVP出现的次数进行检验;所述AVP解析器用于对所述diameter消息中的AVP进行识 另IJ;所述数据抽取器与所述AVP解析器耦合,用于进行内容的抽取处理。
[0011] 优选地,所述结构适配器包括:固定顺序结构适配器和非固定顺序结构适配器,其 中,所述固定顺序适配器用于对固定顺序结构的消息单元依次进行解析;所述非固定顺序 适配器用于对位置不固定的消息单元进行解析。
[0012] 优选地,所述AVP解析器包括:原子AVP解析器和复合AVP解析器,其中,所述原子 解析器是用于解析的最小单元,所述复合AVP解析器包括多个所述原子AVP解析器。
[0013] 优选地,在从解析完成之后的所述diameter消息中抽取所述数据之前,所述方法 还包括:进行内存的分配,其中,所述内存的分配是通过绑定在所述AVP解析器上的内存池 来进行分配的,其中,所述每个AVP解析器均绑定一个内存池。
[0014] 优选地,所述内存池采用忙、闲链表的方式管理内存,其中,使用所述内存池分配 内存时,内存池从闲链表中取出内存块并将所述内存块的起始地址加入忙链表中。
[0015] 根据本发明的一个方面,还提供了一种diameter消息解析装置,其特征在于,包 括:设置模块,用于设置消息解析树,并构建消息解析树对象,其中,所述消息解析树是根据 预先定义的消息格式设置的,所述消息解析树用于对diameter消息进行解析;匹配模块, 用于使用所述消息解析树对象对接收到的diameter消息从树上匹配对应的解析节点;适 配模块,用于用对应解析节点对所述diameter消息进行结构适配,直到所述diameter消息 的所有原子属性值对AVP解析处理完成;抽取模块,用于从解析完成之后的所述diameter 消息中抽取数据。
[0016] 优选地,所述消息解析树包括:结构适配器、行为适配器、AVP解析器、和数据抽取 器,其中,所述结构适配器用于消息结构的适配;所述行为适配器用于对所述diameter消 息中AVP出现的次数进行检验;所述AVP解析器用于对所述diameter消息中的AVP进行识 另IJ;所述数据抽取器与所述AVP解析器耦合,用于进行内容的抽取处理。
[0017] 优选地,所述结构适配器包括:固定顺序结构适配器和非固定顺序结构适配器,其 中,所述固定顺序适配器用于对固定顺序结构的消息单元依次进行解析;所述非固定顺序 适配器用于对位置不固定的消息单元进行解析;和/或,所述AVP解析器包括:原子AVP解 析器和复合AVP解析器,其中,所述原子解析器是用于解析的最小单元,所述复合AVP解析 器包括多个所述原子AVP解析器。
[0018] 优选地,还包括:分配模块,用于在从解析完成之后的所述diameter消息中抽取 数据之前进行内存的分配,其中,所述内存的分配是通过绑定在所述AVP解析器上的内存 池来进行分配的,其中,所述每个AVP解析器均绑定一个内存池。
[0019] 通过本发明,解决了相关技术中消息解析效率低,在对消息解析效率有高要求的 应用场景下无法满足要求的问题,提高了消息解析的效率。
【附图说明】
[0020] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0021] 图1是本发明实施例的diameter消息解析方法的流程图;
[0022] 图2是本发明实施例的diameter消息解析树的框图;
[0023] 图3是本发明实施例的diameter消息解析方法的优选流程图;
[0024] 图4是本发明实施例的diameter消息解析装置的框图;
[0025] 图5是本发明实施例的diameter消息解析装置的框图的优选框图;
[0026] 图6是本发明实施例的diameter消息解析方法的优选流程图一;
[0027] 图7是本发明实施例的固定顺序适配器的消息处理过程的流程图;
[0028] 图8是本发明实施例的非固定顺序适配器的消息处理过程的流程图;
[0029] 图9是本发明实施例的原子AVP解析器的消息处理过程的流程图;
[0030] 图10是本发明实施例的复合AVP解析器的消息处理过程的流程图。
【具体实施方式】
[0031] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。
[0032] 在本实施例中,提供了一种diameter消息解析方法,图1是根据本发明实施例的 diameter消息解析方法的流程图,如图1所示,该流程包括如下步骤:
[0033] 步骤S102,设置消息解析树,并构建消息解析树对象,其中,该消息解析树是根据 预先定义的消息格式设置的,该消息解析树用于对diameter消息进行解析;
[0034] 步骤S104,使用该消息解析树对象对接收到的diameter消息从树上匹配对应的 解析节点;用对应解析节点对该diameter消息进行结构适配,直到该diameter消息的所有 原子属性值对AVP解析处理完成;
[0035] 步骤S106,从解析完成之后的该diameter消息中抽取数据。
[0036] 通过上述步骤,预先构建消息解析树,匹配对应的解析节点,用对应解析节点对该 diameter消息进行结构适配,消息的解析过程由解析树驱动,减少解析过程中频繁的内存 new/delete操作,提高了消息解析的效率。
[0037] 解析树结构可以有很多种,在本实施例中,提供了一种优选的结构,图2是根据本 发明实施例的diameter消息解析树的框图,如图2所示,该消息解析树10包括:结构适配 器101、行为适配器102、AVP解析器103、和数据抽取器104,其中,该结构适配器101用于 消息结构的适配;该行为适配器102用于对该diameter消息中AVP出现的次数进行检验; 该AVP解析器103用于对该diameter消息中的AVP进行识别;该数据抽取器104与该AVP 解析器103耦合,用于进行内容的抽取处理。
[0038] 为了更加便于处理,结构适配器可以包括:固定顺序结构适配器和非固定顺序结 构适配器,其中,该固定顺序适配器用于对固定顺序结构的消息单元依次进行解析;该非固 定顺序适配器用于对位置不固定的消息单元进行解析。
[0039] 优选地,AVP可以包括原子AVP和复合AVP,为了适应着两种类型的AVP,AVP解析 器可以包括:原子AVP解析器和复合AVP解析器,其中,该原子解析器是用于解析的最小单 元,该复合AVP解析器包括多个该原子AVP解析器。
[0040] 图3是根据本发明实施例的diameter消息解析方法的优选流程图,如图3所示, 在从解析完成之后的该diameter消息中抽取该数据之前,该方法还包括:
[0041]步骤S105,进行内存的分配,其中,该内存的分配是通过绑定在该AVP解析器上的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1