基于Diameter协议的AAA系统计费技术

点赞:13694 浏览:58216 近期更新时间:2024-01-14 作者:网友分享原创网站原创

摘 要为实现基于Diameter协议的AAA系统计费,研究了Diameter基本协议和扩展协议,阐述了基于Diameter协议的AAA系统的组成,体系结构及计费过程,设计了基于Diameter协议的AAA系统计费部分的怎么写作器端和客户端,在上述工作基础上,对设计的AAA系统计费部分进行了实现.实现后的系统表明,本文所设计的AAA系统计费部分是可行的.

【关 键 词】Diameter协议AAA系统计费技术

1引言

早期的Inter是一个非赢利性网络,随着Inter的发展,它已包括了众多的商业网络,人们对Inter计费也越来越关注.计费(accounting)过程包括以下子过程:计量(metering)、定价(pricing或rating)、费用计算(charging)和记帐(billing),在某些情况下,也有人使用计费的狭义,即认为计费仅仅是计量的过程.

AAA技术即认证(Authentication)、授权(Authorization)和计费(Accounting)三种技术的结合,目前已经广泛的应用到Inter业务怎么写作中,为安全可靠的提供怎么写作提供了保障.在Inter计费管理领域,互联网工程任务组IETF(InterEngineeringTaskForce)和互联网研究任务组IRTF(InterResearchTaskForce)起了很大的作用.AAA工作组是在操作和管理领域的一个IETF工作组,计费是其中一个重要的课题.

目前的计费协议主要有RADIUS,TACACS,SNMP等.随着网络技术发展和应用需求的增长,新的网络怎么写作不断涌现,IETF的AAA工作组从上世纪90年代末期开始着手设计下一代的AAA协议Diameter.Diameter协议是目前网络AAA协议的研究热点,也是本文研究的重点.本文在研究Diameter协议的基础上,对AAA系统的计费部分进行了设计和实现.

2Diameter协议研究

2.1Diameter协议的工作机制

Diameter由一个基本协议和一组扩展协议组成(比如强安全性扩展,MobileIP扩展等),通用的功能(比如传输控制和流量控制)在基本协议中定义,而特定的应用功能在相应的扩展协议中进行说明.Diameter基本协议提供了AAA协议对传输所需要的最少要求,基本协议不能够单独使用,必须与一个Diameter应用扩展相结合.Diameter协议的层次结构如图1所示.

2.2Diameter基本协议

Diameter的基本协议必须被所有应用支持,在基本协议中定义了Diameter消息包的格式、消息包的传输机制和一些基本的安全怎么写作.一个基本的Diameter消息包由一个包头和多个P(AttributionValuePair)组成,其中P用来携带更多的AAA信息(如认证计费授权信息,以及路由、安全信息等).

2.2.1Diameter网络节点

在Diameter协议中,包括多种类型的Diameter节点,除了Diameter客户端和Diameter怎么写作器外,还有Diameter中继、Diameter写作技巧、Diameter重定向器和Diameter协议转换器等.

2.2.2Diameter消息格式

Diameter消息的头部包括20个字节,头4个字节是8比特的版本信息和24比特的消息长度(包括消息头长度),随后的4个字节是8比特的消息标志位和24比特的命令代码.

2.3Diameter扩展协议

2.3.1Diameter的NAS协议

Diameter的NAS(NetworkAccessService,网络接入怎么写作协议)协议,由NAS客户机处理用户MN(MobileNode,移动节点)的接入请求(RegReq),将收到的客户认证信息转送给NAS怎么写作器;怎么写作器对客户进行鉴别,将结果发给客户机;客户机通过接入应答(RegReply)将结果发回给MN,并根据结果对MN进行相应处理.

NAS作为网络接入怎么写作器,在其用户端口接收到呼叫或怎么写作请求时便开始与AAA怎么写作器之间进行消息交换,有关呼叫的信息、用户身份和用户鉴别信息被打包成一种AAA消息发给AAA怎么写作器.

2.3.2Diameter的EAP协议

Diameter的EAP(ExtensibleAuthenticationProtocol,可扩展鉴别协议)协议提供了一个支持各种鉴别方法的标准机制.EAP其实是一种框架、一种帧格式,可以容纳各种鉴别信息.EAP协议描述用户、NAS(AAA客户机)和AAA怎么写作器之间有关EAP鉴别消息的请求和应答的关系,完成一次对鉴别请求的应答,中间可能需要多次消息交换过程.在移动终端MN移动的环境下,MN与FA(ForeignAgent,外部写作技巧)之间的鉴别扩展采用EAP,即把FA看做是一个NAS,它作为DiameterAAA的客户机,DiameterAAA怎么写作器作为EAP的后端怎么写作器,两者之间载送EAP分组.

2.3.3Diameter的CMS协议

Diameter的CMS(CryptographicMessageSyntax,消息语法)协议实现了协议数据的端到端(Peer-to-Peer)加密.由于Diameter网络中存在不可信的中继(Relay)和写作技巧(Proxy),而IPSec(IPSecurity)和TLS(TransportLayerSecurity)又只能实现跳到跳的安全,所以IETF定义了Diameter的CMS应用协议来保证数据安全.

3基于Diameter的AAA系统

3.1AAA系统概述

AAA技术即认证、授权和计费三种技术的结合,目前已经广泛的应用到Inter业务怎么写作中,为安全可靠的提供怎么写作提供了保障.

3.2AAA系统的组成

AAA系统的组成如图2所示,这种分布式结构由怎么写作器来完成认证授权和计费工作,大大减轻了网关的压力,能够处理大量的用户请求,支持多种计费功能,可以对用户进行有效的控制,因而具有较强的生命力,在接入网中有着广泛的应用.

3.3AAA系统的体系结构

AAA系统的体系结构如图3所示,在怎么写作器和客户端之间运行AAA协议,这里采用Diameter协议.AAA客户端不提供任何怎么写作,但它可以请求怎么写作.AAA怎么写作器通过接口连接特殊应用模块,特殊应用模块可以提供怎么写作(移动IP接口、目录怎么写作等)或者计费功能.怎么写作器还有对外部认证模块的接口,以便可以使用多种认证技术.

AAA怎么写作器或客户端通过标准化的域间AAA协议进行通信,客户端只需使用AAA协议消息的一部分.特殊应用模块和怎么写作器之间的通信是域内的,但特殊应用模块也可以作为客户端使用.

3.4AAA系统计费过程

当用户漫游到异地域时,对用户的计费有两种模式:一种是由家乡域的AAA怎么写作器来生成计费记录,然后根据计费记录直接向相应的用户收取费用;另一种是由访问域的AAA怎么写作器来生成计费记录,然后将计费记录返回给家乡域怎么写作器,再由家乡域怎么写作器根据计费记录向相应的用户收取费用.而当用户在家乡域通信时就由家乡域的AAA怎么写作器对用户进行计费操作.

根据上述两种情况,图中的客户端为接入器,它可以访问域中用户新的接入器或者是用户在家乡域的接入器;而AAA怎么写作器也可以是用户的家乡域的AAA怎么写作器或者是访问域的AAA怎么写作器.如图4所示,AAA系统计费过程描述如下:

(1)当客户端收到认证应答中的成功消息后,根据情况产生了用户计费请求,发送给AAA怎么写作器,同时生成相关的计费记录,保存在客户端并把它发送给AAA怎么写作器.客户端只有在接收到成功的记账应答消息时,才能清除已经发送的计费记录.

基于Diameter协议的AAA系统计费技术参考属性评定
有关论文范文主题研究: 关于计算机应用的论文范例 大学生适用: 函授毕业论文、硕士学位论文
相关参考文献下载数量: 14 写作解决问题: 本科论文怎么写
毕业论文开题报告: 论文任务书、论文前言 职称论文适用: 杂志投稿、职称评中级
所属大学生专业类别: 本科论文怎么写 论文题目推荐度: 优质选题

(2)当AAA怎么写作器收到计费请求,首先判断该请求的目的域是否为本机,如果是则接受该请求,开始计费,生成相应的计费记录并保存,并且根据该请求产生相应的计费应答消息.否则判断该目的域是否可达,若可达则转发请求消息给相应的目的域的AAA怎么写作器;不可达则不予处理,返回计费拒绝消息.当客户端收到计费拒绝消息,则中止用户接入,否则为用户提供相应的怎么写作.

(3)当移动用户发生切换,用户主动发送会话中断请求给客户端,则发送连接中断请求给AAA怎么写作器,AAA怎么写作器中断计费,根据中断请求消息生成中断应答消息,将它和计费开始到中断的计费记录一并返回给客户端.

(4)当客户端收到中断应答消息时,中断对该用户提供的怎么写作.

客户端只有在收到成功的计费响应时,才能清除已经发送的计费记录.当收到计费拒绝指示时,客户端将终止用户接入.

4基于Diameter协议的AAA系统计费部分的设计

4.1消息帧格式设计

首先,对Diameter怎么写作器和客户机都要用到的计费消息的内容和格式进行规定,原则是最大可能接近原协议规定.Diameter怎么写作器软件中的计费部分主要完成:收集从Diameter客户机发来的计费信息,并且存储在数据库中,然后向客户机发回应答等;用到的消息有ACR(AccountingRequest,计费请求)和ACA(AccountingAnswer,计费应答).


Diameter客户机软件中的计费部分主要完成:从具体的应用协议软件(如MobileIP)收集用户的计费信息,然后向Diameter怎么写作器发起计费请求等.用到的消息有ACR和ACA.

4.2计费系统怎么写作器端设计

4.2.1计费系统怎么写作器端模块组成

计费系统怎么写作器端模块组成如图5所示,包括数据库、Diameter怎么写作器软件和操作系统.

4.2.2计费系统服务器端工作流程

计费系统怎么写作器端工作流程如图6所示.

4.3计费系统客户端设计

4.3.1计费系统客户端模块组成

计费系统客户端模块组成如图7所示,包括数据库、Diameter客户机软件和操作系统.

4.3.2计费系统客户端工作流程

计费系统客户端工作流程如图8所示.

5基于Diameter协议的AAA系统计费部分的实现

5.1系统开发环境

本文设计的系统软件运行于Linux9.0.2操作系统或以上版本,自适应通信环境ACE、XERCESC++、BOOST等.具体需要的Lib库包括GUNg++versions,XercesC++XMLParser,ACElibrary,BOOSTlibrary,OpenSSL,Autoconf,Automake等.

5.2模块和库

实现的基本协议被分为四个逻辑模块,分别为:一个应用核心、一个会话管理模块、一个传输管理模块和一个消息解析模块.

5.3基本消息处理

基本消息处理分为:消息的传输和会话的处理、消息解析两部分.

5.3.1消息的传输和会话的处理

一个从远程对端接入的消息,最初的接收和处理是通过传输管理里的一个为远程对端怎么写作的对端线程进行的.一旦完全收到,传输管理便可以部分的解析消息头和部分消息体,以决定是否需要转发.如果消息是发给远程主机的,消息被加入到工作队列里为终点对端怎么写作的对端线程里;消息是本地处理的,传输管理则传输消息给会话管理.

5.3.2消息解析

当一个Diameter消息从对端接收到,传输管理需要解析消息以决定消息是不是需要加入到消息解析队列里,并由会话管理进行进一步的处理或者将它转发给其它对端.在这种情况下,只有特定的P(如终点主机P和终点域P)需要被解析,而不是根据命令字典解析所有的P.当收到一个Diameter消息后由会话管理来进行处理,消息根据命令字典被会话管理器完全解析.

5.4计费信息数据记录生成

计费信息数据以磁盘文件的方式存放在应用程序目录下,文件名为accountingnas.txt,每个数据记录对应文本文件中的一行.在系统中的具体实现如下:

5.4.1相关的数据结构定义

typedefstruct{

Utf8stringSession-id;

DiamidentOrigin-hos;

DiamidentOrigin-realm;

EnumeratedAccounting-record-type;

Unsigned32Accounting-record-number;

Unsigned32Acct-application-id;

Utf8stringUser-name;

TimeEvent-timestamp;

Unsigned64Accounting-input-octets;

Unsigned32Acct-session-time;

Unsigned64Accounting-input-packets;

Unsigned64Accounting-output-packets;

Unsigned32Acct-link-count;

Unsigned32Acct-delay-time;

}Acctrecord_NAS_EAP;

5.4.2数据表类的定义和实现

classAcctable_nas_eap{

private:

Acctrecord_nas_eapacctinfotable_record;

public:

Acctable_nas_eap();

~Acctable_nas_eap();

write(acctinfotable_record);

read(acctinfotable_record);

};

Acctrecord_nas_eap::Acctrecord_nas_eap()

{

打开当前目录下的accountingnas.txt文件;

}

Acctrecord_nas_eap::~Acctrecord_nas_eap()

{

关闭打开的accountingnas.txt文件;

}

voidAcctrecord_nas_eap::write(acctinfotable_record)

{

向accountingnas.txt文件写入数据记录;

}

voidAcctrecord_nas_eap::read(acctinfotable_record)

{

从accountingnas.txt文件读出数据记录;

}

6结束语

本文在对Diameter协议进行研究的基础上,阐述了基于Diameter协议的AAA系统的组成、体系结构及计费过程,并对基于Diameter协议的AAA系统计费部分的怎么写作器端和客户端进行了设计,最后对设计的AAA系统计费部分进行了实现,从而说明本文给出的AAA系统计费部分设计是可行的.