您的当前位置:首页正文

DIAMETER协议消息编解码函数库生成器的研究与实现

来源:帮我找美食网
DIAMETER协议消息编解码函数库生成器的研究与实现

AAA(认证、授权、计费)协议是智能网络中的重要协议,RADIUS(Remote Authentication Dial-In User Service)是AAA协议的早期代表。随着电信网络的迅速发展,基于UDP的RADIUS协议在安全性和性能方面逐渐不能满足网络需求,DIAMETER协议在此背景下应运而生。

DIAMETER协议是基于TCP(Transmit Contol Protocol)/SCTP(Stream Control Transmit Protocol)的可靠连接的AAA协议。IETF组织通过RFC3588定义了DIAMETER协议的基础内容,比如DIAMETER连接状态机描述,消息/AVP格式定义等。

DIAMETER协议目前广泛应用于IMS(IP Multimedia Subsystem)网络,提供AAA服务,3GPP协议族会根据需要来扩展定义DIAMETER消息的类型和AVP类型。阿尔卡特朗公司(以下简称阿朗)智能网络部门平台组负责开发和维护IMS网络的相关协议,比如DIAMETER、SIP、SMPP等,这些协议和协议之上的应用程序一起提供给运营商。

至今阿朗开发的应用程序已经在世界上的多个运营商被广泛应用。近年来随着IMS网络的广泛应用,3GPP协议族会根据应用服务的需要不断对DIAMETER协议支持的消息和AVP进行扩展,协议的扩展一般是新增消息或为已有消息新增AVP,如果应用程序需要支持该扩展,就必须对软件做出相应的修改,修改主要包括两个方面:一是对新增消息/AVP编码解码的支持;二是应用程序的逻辑处理部分对新增消息/AVP的逻辑处理。

阿朗的DIAMETER消息编码/解码模块是手工编写的代码,所以只要支持的DIAMETER消息/AVP发生变化,就需要手工修改编码/解码模块的代码。应用程序

逻辑部分是消息依赖的,换言之对不同的消息/AVP,应用程序的逻辑处理一般都是不一样的,也就是说应用程序是必需要修改的。

阿尔卡特朗公司DIAMETER消息编码/解码模块由本人所在的平台软件组维护,经过很长一段时间的维护,在项目总结时我们发现大多数DIAMETER协议相关的新的项目都是修改编码/解码模块来支持不断变化的DIAMETER消息/AVP定义。那么有没有可能自动生成编码/解码模块的代码呢?这就是本论文要讨论和实现的问题。

问题一经提出,项目组进行了充分的讨论,同时分析了其他DIAMETER协议相关工具(比如opendiameter、ethereal等)的工作原理,结论是完全可行的。基于此背景,本论文致力于开发一个DIAMETER消息的编码解码函数生成器,该生成器的输入为定义DIAMETER消息/AVP的XML文件,而该生成器的输出为DIAMETER协议编码/解码函数库。

该输出库能够提供当前阿朗手工编写的编码/解码函数库提供的所有内容。一旦实现了该生成器,将会大大降低DIAMETER协议的开发和维护的成本。

同时该生成器的实现原理可以推广应用到其它DIAMETER应用,甚至推广到其它协议栈,比如SIP,SMPP等。本论文的内容从DIAMETER消息编码/解码库函数生成器的背景、需求、设计、实现和测试等方面依次展开,具体来说首先论述开发该生成器的可行性和必要性,然后结合阿尔卡特-朗讯公司当前的DIAMETER协议栈结构论述该生成器的具体需求,之后详细描述该生成器的设计和实现,最后给出生成器编码/解码的测试数据。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top