本发明专利技术公开了一种码流的解码方法及装置,包括:接收数据码流,解析得到所述数据码流中的属性值对(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所述的方法,其...
【专利技术属性】
技术研发人员:白丽娟,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。