Diameter协议是IETF的AAA工作组作为下一代的AAA协议标准,由RADIUS协议演进而来。
Diameter目前主要应用于移动通信系统,固网接入主要使用RFC2865的Radius协议。随着固网与无线网络融合,统一认证计费授权服务器的趋势越来越迫切,固网接入支持Diameter协议栈已成为普遍需求。
字段 | 长度 | 含义 |
---|---|---|
Version | 1字节 | 必须置为1,表示Diameter协议版本号为1。 |
Message Length | 3字节 | 表示Ditameter消息长度,包括Diameter的头部域。 |
Command Flags | 1字节 | 此字段格式如下:0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |R P E T r r r r| +-+-+-+-+-+-+-+-+
|
Command-Code | 3字节 | 命令代码,代码值由IANA分配,其中0xFFFFFE -0xFFFFFF预留给实验用。
|
Application-ID | 4字节 | 用来标记消息的应用,该应用可能是认证、计费或者厂家特殊应用。 |
Hop-by-Hop Identifier | 4字节 | 逐跳标记,用来匹配请求和应答,通常是一个自动增加的编号,从一个随机的数开始增加。应答消息里的此字段如果无法识别,消息将被丢弃。 |
End-to-End Identifier | 4字节 | 用于检测重复消息。 |
AVPs | 变长 | Diameter消息使用AVP来封装信息。 |
字段 | 长度 | 含义 |
---|---|---|
AVP Code | 4 bytes | AVP Code字段和Vendor-Id字段一起唯一标识了一个属性。1 – 255 预留用于和RADIUS后向兼容,不需要携带Vendor-Id字段。256及以上的值用于Diameter协议,由IANA分配。 |
V | 1 bit | V(Vendor-Specific bit)位用来标识AVP头部是否必须携带Vendor-ID字段。 |
M | 1 bit | M(Mandatory)位用来标识此AVP是否必须携带。 |
P | 1 bit | P位用来标识是否需要加密。 |
Reserved | 5 bits | 保留位。 |
AVP Length | 3 bytes | 表示AVP的字节数,包括AVP Code、AVP Length、AVP Flags、Vendor-ID、AVP data字段。 |
Vendor-ID | 4 bytes | IANA分配的厂家标识。如果V比特置位,AVP必须携带Vendor-ID字段。 |
Data | Variable | 包括0个或多个属性。 |
标准 | 描述 |
---|---|
RFC 3588 | Diameter Base Protocol |