一种编码方法和编码器技术

技术编号:3554496 阅读:164 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种编码方法,该方法包括:根据要编码的计费信息,确定对应的叶子节点属性值AVP;在数据库中构建包括叶子节点AVP的树型结构,并利用一组记录表示该树型结构;将数据库中表示树型结构的一组记录按先后顺序构成数组结构体;根据外部输入的消息头信息编码形成消息头,再根据数组结构体的每条记录编码形成消息体,并构成diameter消息后发送出去。应用上述方法后,一方面在对其中的记录进行编码时,只要一次扫描就可以完成编码,提高了编码速度,另一方面序列型数组结构体方便树型结构进行扩展,可以针对不同业务进行灵活的编码处理。本发明专利技术实施例还公开了一种编码器。

【技术实现步骤摘要】

本专利技术涉及通信业务的计费技术,具体涉及一种编码方法和编码器。
技术介绍
自网络诞生以来,认证、鉴权以及计费体制(AAA)就成为其运营的基础。网络中各类资源的使用,需要由认证、鉴权和计费进行管理。原有的主流AAA协议有RADIUS(Remote AuthenticationDial-in User Service)和TACACS+(Terminal Access Con-troller Access Control System Plus)两种,其中以RADIUS的应用为多。但随着网络技术的发展和应用需求的增长,Diameter协议已取代上述两种协议成为下一代的AAA协议标准。直径(diameter)协议支持移动IP、NAS请求和移动代理的认证、鉴权和计费工作,协议的实现和RADIUS类似,也是采用属性值(AVP)来实现,另外其中详细规定了错误处理,failover机制,采用传输控制协议(TCP),支持分布式计费,克服了RADIUS的许多缺点,是最适合未来移动通信系统的AAA协议。根据RFC3588协议规定,在diameter协议格式消息中,携带的与计费相关的信息全部保存在基本单位AVP中。每个AVP由AVPcode(AVP的唯一识别码),length(AVP的长度),value(AVP的值即计费信息、业务信息等)这三个部分组成,其中AVP有的是复合结构,有的是单一结构,如果是复合型结构的AVP,则这个AVP的value里面又包含有很多个AVP,如果是单一结构的AVP,则这个AVP的value包含有计费信息、业务信息等。图1是一个复合型结构的AVP示意图,它由很多单一结构的AVP构成。如图1所示,以其中阴影表示的根到叶子节点的路径组合为例,000、001-->和002均是根AVP,301是叶子节点AVP,001、101和202均是叶子节点301的父亲节点AVP(GROUP类型AVP),其中,202为叶子节点301的直接父亲节点,(001,101,202,301)构成一条根到叶子节点的AVP路径组合,001、(001,101)和(001,101,202)构成一条根到父亲节点的AVP路径组合,每一种路径组合称为一条记录。根据diameter协议,计费完毕后将把计费后的结果信息编码成二进制码流树型结构传往外部网元。该过程称为编码操作。在进行diameter编码时,首先要针对计费后的结果信息建立对应的树型结构AVP,再将其编码为目标二进制码流。传统的编码方式一般是用递归加链表索引的方式来动态的构造二进制diameter码流的层次关系和树型结构,在从前相对固定的计费方式中该方法得到的了广泛的应用。但随着运营商提供的业务日益丰富,计费信息的层次关系也更加复杂多样,因此为了能够处理各种不同的业务,现有技术要完成构造的树型AVP的这个目标,也就不可避免的需要不断的深化递归和嵌套链表,造成编码速度变慢,而且不方便进行灵活配置。比如对于某一种计费业务当前是一种树型结构、以后是另一种树型结构的情况,现有技术难以进行高效处理,即使通过深化递归以及链表能够做到比较灵活的处理,但也会使得编码速度变慢,性能消耗很大。
技术实现思路
有鉴于此,本专利技术实施例提供一种diameter消息的编码方法,能够提高diameter编码的性能。本专利技术实施例还提供一种diameter消息的编码器,应用该编码器能够提高diameter编码的性能。为实现上述目的,本专利技术实施例采用如下的技术方案:一种编码方法,该方法包括:a、根据要编码的计费信息,确定对应的叶子节点属性值AVP;-->b、在数据库中构建包括叶子节点AVP的树型结构,并利用一组代表根到节点路径组合的记录表示该树型结构;c、将数据库中表示树型结构的一组记录按先后顺序构成数组结构体,在该数组结构体中,每条记录包括该记录对应的AVP数组、AVP数组中最外层AVP节点对应的长度和值,并计算每个代表根到父亲节点路径组合的记录中的长度;d、根据外部输入的消息头信息编码形成diameter消息头,再根据数组结构体的每条记录编码形成diamter消息体,并构成直diameter消息后发送出去。一种diameter消息的编码器,该编码器包括:数据配置单元、数据库和编码单元,其中,所述数据配置单元,用于根据要编码的计费信息,确定对应的叶子节点属性值AVP;在所述数据库中构建包括叶子节点AVP的树型结构,并利用一组代表根到节点路径组合的记录表示该树型结构;将所述数据库中表示树型结构的一组记录按先后顺序构成数组结构体,在该数组结构体中,每条记录包括该记录对应的AVP数组、AVP数组中最外层AVP节点对应的长度和值,并计算每个代表根到父亲节点路径组合的记录中的长度,并将构造的数组结构体发送给所述编码单元;所述数据库,用于保存代表根到节点路径组合的记录;所述编码单元,用于接收外部输入的消息头信息,并将其编码形成消息头,还用于接收所述数据配置单元发送的数组结构体形成消息体,并构成diameter消息后发送出去。由上述技术方案可见,本专利技术实施例中,首先根据要编码的计费信息,确定对应的叶子节点AVP,然后在数据库中灵活配置各条记录,并将要编码的一组记录构成序列型数组结构体,以方便外部使用方扩展AVP树型结构的层次关系;进而根据数组结构体的每条记录编码形成diameter消息体,与消息头一同构成diameter消息后发送出去。由于树型结构是采用序列型数-->组结构体表示,一方面在对其中的记录进行编码时,只要一次扫描就可以完成编码,提高了编码速度,另一方面序列型数组结构体方便树型结构进行扩展和修改,可以针对不同业务进行灵活的编码处理。总之,应用本实施例中的方法对diameter消息进行编码,大大提高了编码性能。附图说明图1是复合型结构的AVP示意图。图2为本专利技术实施例中提供的diameter消息编码方法的总体流程图。图3为本专利技术实施例的diameter消息编码方法的具体流程图。图4为TLV+HASH的序列型数组结构体的具体构成图。图5为树型结构示意图。图6为diameter消息编码器的具体结构图。具体实施方式为使本专利技术实施例的目的、技术手段和优点更加清楚明白,以下结合附图对本专利技术实施例作进一步详细说明。本专利技术实施例的基本思想是:针对目前业务计费场景经常发生变化的情况,设计一种序列型的数组结构体来表示要编码的树型结构,以方便对树型结构的扩展和修改,同时,由于该数组结构体的特殊构造,使得在编码时能够通过一次扫描完成编码。图2为本专利技术实施例中提供的diameter消息编码方法的总体流程图。如图2所示,该方法包括:步骤201,根据要编码的计费信息,确定对应的叶子节点AVP。步骤202,根据业务场景,在数据库中构建包括叶子节点AVP的树型结构,并利用一组代表根到节点路径组合的记录表示该树型结构。步骤203,将数据库中表示树型结构的一组记录按先后顺序构成数组结构体,在该数组结构体中,每条记录包括该记录对应的AVP节点数组、AVP-->节点数组中最外层AVP节点对应的长度和值,并计算每条记录中的长度。步骤204,根据外部输入的消息头信息编码形成diameter消息头,再根据数组结构体的每条记录编码形成diameter消息体,并构成本文档来自技高网
...

【技术保护点】
一种编码方法,其特征在于,该方法包括:a、根据要编码的计费信息,确定对应的叶子节点属性值AVP;b、在数据库中构建包括叶子节点AVP的树型结构,并利用一组代表根到节点路径组合的记录表示该树型结构;c、将数据库中表示树 型结构的一组记录按先后顺序构成数组结构体,在该数组结构体中,每条记录包括该记录对应的AVP数组、AVP数组中最外层AVP节点对应的长度和值,并计算每个代表根到父亲节点路径组合的记录中的长度;d、根据外部输入的消息头信息编码形成dia meter消息头,再根据数组结构体的每条记录编码形成diamter消息体,并构成直diameter消息后发送出去。

【技术特征摘要】
1、一种编码方法,其特征在于,该方法包括:a、根据要编码的计费信息,确定对应的叶子节点属性值AVP;b、在数据库中构建包括叶子节点AVP的树型结构,并利用一组代表根到节点路径组合的记录表示该树型结构;c、将数据库中表示树型结构的一组记录按先后顺序构成数组结构体,在该数组结构体中,每条记录包括该记录对应的AVP数组、AVP数组中最外层AVP节点对应的长度和值,并计算每个代表根到父亲节点路径组合的记录中的长度;d、根据外部输入的消息头信息编码形成diameter消息头,再根据数组结构体的每条记录编码形成diamter消息体,并构成直diameter消息后发送出去。2、根据权利要求1所述的方法,其特征在于,当计费系统中利用一组计费元素表示计费信息时,所述确定对应的叶子节点属性值AVP包括:从数据源中选取需要被编码的计费信息对应的一组计费元素;根据该组计费元素确定相应的叶子节点AVP。3、根据权利要求1所述的方法,其特征在于,步骤b中所述在数据库中构建包括叶子节点AVP的树型结构为:根据步骤a中确定的叶子节点AVP和业务场景,逐级构建所述叶子节点AVP的父亲节点。4、根据权利要求1所述的方法,其特征在于,步骤b中所述利用一组代表根到节点路径组合的记录表示该树型结构为:将树型结构中每个根到节点的路径组合作为一条记录存储在数据库中。5、根据权利要求1所述的方法,其特征在于,所述构成数组结构体为:将每条记录作为数组结构体的元素,判断该记录是否代表根到叶子节点的路径组合,若是,则在数据库中查询该记录对应的叶子节点相应的长度和值填入所述数组结构体中该记录对应的长度和值字段中,将该记录对应的AVP数组填入所述数组结构体中该记录对应的AVP数组字段中;否则,在所述数组结构体中该记录对应的长度和值字段填入0,将该记录对应的AVP数组填入所述数组结构体中该记录对应的AVP数组字段中。6、根据权利要求5所述的方法,其特征在于,所述记录进一步对应一个表示记录对应的AVP数组中包含的AVP节点个数的层号;步骤c中所述计算每个代表根到父亲节点路径组合的记录中的长度为:c1、将所述一组记录中的第一条记录作为当前记录;c2、根据当前记录的层号以及该记录代表的根到节点的路径组合,累加根到父亲节点路径组合的记录中的长度;c3、将当前记录的层号保存到预设的层号数组中,并判断当前记录是否为最后一条记录,若是,则执行步骤d,否则将下一条记录作为当前记录返回步骤c1。7、根据权利要求6所述的方法,其特征在于,在...

【专利技术属性】
技术研发人员:何文彬
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1