DIAMETER协议是为诸如网络访问或IP移动等应用程序提供认证,授权和计费(AAA)结构所设计。同时Diameter也有意应用于本地和漫游两种情况下的认证,授权和计费。Diameter协议是作为RADIUS协议的改进版而设计。DIAMETER协议不能解决RADIUS模式中的缺陷。DIAMETER之后的基本概念用于提供可扩展的基础协议,从而可为新的接入技术提供AAA服务。DIAMETER并不采用与RADIUS协议相同的数据单元,但却与RADIUS反向兼容来减少移植。
诸如TACACS和RADIUS这样的传统AAA协议最初是为提供拨号PPP以及终端服务器访问而被采用。随着时间的推移,互联网的成长和新的接入技术的引入,包括无线、DSL、移动IP和以太网,路由器和网络访问服务器(NAS)在复杂性和密度方面,都有了一定的增强,人们对AAA协议也提出了新的需求,在这样的情形下,DIAMETER协议应运而生。
DIAMETER协议按照一项基础协议和一组应用程序而定义。这种设计方式下允许协议可延伸至新的接入技术。这个基础协议是用来为可靠的传输信息发送以及错误处理提供基本机制。
这个基础协议必须与一个Diameter应用程序协力执行。每个应用程序依赖于基础协议服务来支持特定类型的网络访问。移动IPv4和NASREQ(网络访问服务器需求)是主要的两大应用程序。NASREQ应用程序支持拨号PPP/IP并且意于替代RADIUS。下图表描述了Diameter结构:
这个基础协议定义了基本的Diameter信息格式。Diameter信息中的数据作为属性值对(AVPs)收集进行运载。Diameter基础协议的数据包格式显示如下:
Version:必须设置为1,表示Diameter版本1。
CommandFlags:八位标识。
Command-Code:使用3个八位组段,配合信息传送需求。
Application-ID:4个八位组,用来识别信息可使用到的应用程序。这个应用程序可以是一个认证程序,一个计费程序,也可以是运营商专用程序。
Hop-by-HopIdentifier:32位无符号整数段,用来匹配请求和回复。
End-to-EndIdentifier:32位无符号整数段,用来探测重复信息。
AVPs:属性值对(AVP:AttributeValuePair)是一种与Diameter信息相关的信息封装方法。一个AVP就像一种RADIUS属性。一些AVP是用于Diameter基础协议,另一些意向用于Diameter应用程序(如NASREQ),更有一些是为使用Diameter的更高级终端系统应用程序所应用。DiameterAVP头格式如下:
AVPCode:与运营商-ID段相结合,唯一识别属性。AVP数值从1到255供与RADIUS反向兼容所用。
AVPFlags:通知接收方每个属性必须如何处理。r(reserved)位表示预留位,不使用,应该设置为0。
AVPLength:三个八位组,表示AVP中所含八位组的数量,包括AVPCode、AVPLength、AVPFlags、Vendor-IDfield(如果存在)以及AVPdata。
Vendor-ID:可选段,如果AVPFlags段设置了V位,该段就存在。可选的四个八位组Vendor-ID段包括IANA,它被分配了SMI网络管理专用企业代码值,并且以网络字节顺序编码。
相关协议:RADIUS、TACACS
组织来源:DIAMETER协议由IETF定义于RFC3588。
相关链接:https://www.javvin.com/protocol/rfc3588.pdf:DiameterBaseProtocol
评论