DIAMETER
:''For the geometric term, see Diameter
'DIAMETER' is a computer networking protocol for AAA (Authentication, Authorization and Accounting). It is a successor to RADIUS.
The name is a pun on the RADIUS protocol, which is the predecessor (a diameter is twice the radius). Diameter is not directly backwards compatible, but provides an upgrade path for RADIUS. The main differences are :
★ it uses reliable transport protocols (TCP or SCTP, not UDP)
★ it can use network or transport level security (IPsec or TLS)
★ it has transition support for RADIUS
★ it has larger address space for AVPs (Attribute Value Pairs) and identifiers (32-bit instead of 8-bit)
★ it is a client-server protocol, with exception of supporting some server-initiated messages as well
★ both stateful and stateless models can be used
★ it has dynamic discovery of peers (using DNS SRV and NAPTR)
★ it has capability negotiation
★ it supports application layer acknowledgements, defines failover methods and state machines (RFC 3539)
★ it has error notification
★ it has better roaming support
★ it is more easily extended; new commands and attributes can be defined
★ it is aligned on 32 bit boundaries
★ it has basic support for user-sessions and accounting
The Diameter Base Protocol is defined by RFC 3588, and defines the minimum requirements for an AAA protocol. ''Diameter Applications'' can extend the base protocol, by adding new commands and/or attributes. An application is not a program, but a protocol based on Diameter. Diameter security is provided by IPSEC or TLS, both well-regarded protocols.
Each command is assigned a command code, which is used for both requests and answers.
A ''Diameter Application'' is not a software application, but a protocol based on the DIAMETER Base protocol (defined in RFC 3588). Each application is defined by an application identifier and can add new command codes and/or new mandatory AVPs. Adding a new optional AVP does not require a new application.
Examples of Diameter applications :
★ Diameter Mobile IPv4 Application (MobileIP, RFC 4004)
★ Diameter Network Access Server Application (NASREQ, RFC 4005)
★ Diameter Extensible Authentication Protocol Application (RFC 4072)
★ Diameter Credit-Control Application (DCCA, RFC 4006)
★ Diameter Session Initiation Protocol Application (RFC 4740)
★ various applications in the 3GPP IP Multimedia Subsystem
★ 3GPP GBA (Generic Bootstrapping Architecture): Bootstrapping Server Function
★ http://www.cisco.com/en/US/products/ps6638/products_data_sheet09186a00804fe332.html Cisco page outlining differences between RADIUS and DIAMETER
★ http://sourceforge.net/projects/openblox/ Open Source Java IMS optimised Full Diameter solution
'DIAMETER' is a computer networking protocol for AAA (Authentication, Authorization and Accounting). It is a successor to RADIUS.
| Contents |
| Upgrade from RADIUS |
| Protocol description |
| Packet format |
| Commands |
| Attribute-Value Pairs (AVP) |
| State machines |
| Message flows |
| Applications |
| External links |
Upgrade from RADIUS
The name is a pun on the RADIUS protocol, which is the predecessor (a diameter is twice the radius). Diameter is not directly backwards compatible, but provides an upgrade path for RADIUS. The main differences are :
★ it uses reliable transport protocols (TCP or SCTP, not UDP)
★ it can use network or transport level security (IPsec or TLS)
★ it has transition support for RADIUS
★ it has larger address space for AVPs (Attribute Value Pairs) and identifiers (32-bit instead of 8-bit)
★ it is a client-server protocol, with exception of supporting some server-initiated messages as well
★ both stateful and stateless models can be used
★ it has dynamic discovery of peers (using DNS SRV and NAPTR)
★ it has capability negotiation
★ it supports application layer acknowledgements, defines failover methods and state machines (RFC 3539)
★ it has error notification
★ it has better roaming support
★ it is more easily extended; new commands and attributes can be defined
★ it is aligned on 32 bit boundaries
★ it has basic support for user-sessions and accounting
Protocol description
The Diameter Base Protocol is defined by RFC 3588, and defines the minimum requirements for an AAA protocol. ''Diameter Applications'' can extend the base protocol, by adding new commands and/or attributes. An application is not a program, but a protocol based on Diameter. Diameter security is provided by IPSEC or TLS, both well-regarded protocols.
Packet format
Commands
Each command is assigned a command code, which is used for both requests and answers.
| Command-Name | Abbr. | Code |
|---|---|---|
| Abort-Session-Request | ASR | 274 |
| Abort-Session-Answer | ASA | 274 |
| Accounting-Request | ACR | 271 |
| Accounting-Answer | ACA | 271 |
| Capabilities-Exchange-Request | CER | 257 |
| Capabilities-Exchange-Answer | CEA | 257 |
| Device-Watchdog-Request | DWR | 280 |
| Device-Watchdog-Answer | DWA | 280 |
| Disconnect-Peer-Request | DPR | 282 |
| Disconnect-Peer-Answer | DPA | 282 |
| Re-Auth-Request | RAR | 258 |
| Re-Auth-Answer | RAA | 258 |
| Session-Termination-Request | STR | 275 |
| Session-Termination-Answer | STA | 275 |
Attribute-Value Pairs (AVP)
| Attribute-Name | Code | Data Type |
|---|---|---|
| Acct-Interim-Interval | 85 | Unsigned32 |
| Accounting-Realtime-Required | 483 | Enumerated |
| Acct-Multi-Session-Id | 50 | UTF8String |
| Accounting-Record-Number | 485 | Unsigned32 |
| Accounting-Record-Type | 480 | Enumerated |
| Accounting-Session-Id | 44 | OctetString |
| Accounting-Sub-Session-Id | 287 | Unsigned64 |
| Acct-Application-Id | 259 | Unsigned32 |
| Auth-Application-Id | 258 | Unsigned32 |
| Auth-Request-Type | 274 | Enumerated |
| Authorization-Lifetime | 291 | Unsigned32 |
| Auth-Grace-Period | 276 | Unsigned32 |
| Auth-Session-State | 277 | Enumerated |
| Re-Auth-Request-Type | 285 | Enumerated |
| Class | 25 | OctetString |
| Destination-Host | 293 | DiamIdent |
| Destination-Realm | 283 | DiamIdent |
| Disconnect-Cause | 273 | Enumerated |
| E2E-Sequence | 300 | Grouped |
| Error-Message | 281 | UTF8String |
| Error-Reporting-Host | 294 | DiamIdent |
| Event-Timestamp | 55 | Time |
| Experimental-Result | 297 | Grouped |
| Experimental-Result-Code | 298 | Unsigned32 |
| Failed-AVP | 279 | Grouped |
| Firmware-Revision | 267 | Unsigned32 |
| Host-IP-Address | 257 | Address |
| Inband-Security-Id | 299 | Unsigned32 |
| Multi-Round-Time-Out | 272 | Unsigned32 |
| Origin-Host | 264 | DiamIdent |
| Origin-Realm | 296 | DiamIdent |
| Origin-State-Id | 278 | Unsigned32 |
| Product-Name | 269 | UTF8String |
| Proxy-Host | 280 | DiamIdent |
| Proxy-Info | 284 | Grouped |
| Proxy-State | 33 | OctetString |
| Redirect-Host | 292 | DiamURI |
| Redirect-Host-Usage | 261 | Enumerated |
| Redirect-Max-Cache-Time | 262 | Unsigned32 |
| Result-Code | 268 | Unsigned32 |
| Route-Record | 282 | DiamIdent |
| Session-Id | 263 | UTF8String |
| Session-Timeout | 27 | Unsigned32 |
| Session-Binding | 270 | Unsigned32 |
| Session-Server-Failover | 271 | Enumerated |
| Supported-Vendor-Id | 265 | Unsigned32 |
| Termination-Cause | 295 | Enumerated |
| User-Name | 1 | UTF8String |
| Vendor-Id | 266 | Unsigned32 |
| Vendor-Specific-Application-Id | 260 | Grouped |
State machines
Message flows
Applications
A ''Diameter Application'' is not a software application, but a protocol based on the DIAMETER Base protocol (defined in RFC 3588). Each application is defined by an application identifier and can add new command codes and/or new mandatory AVPs. Adding a new optional AVP does not require a new application.
Examples of Diameter applications :
★ Diameter Mobile IPv4 Application (MobileIP, RFC 4004)
★ Diameter Network Access Server Application (NASREQ, RFC 4005)
★ Diameter Extensible Authentication Protocol Application (RFC 4072)
★ Diameter Credit-Control Application (DCCA, RFC 4006)
★ Diameter Session Initiation Protocol Application (RFC 4740)
★ various applications in the 3GPP IP Multimedia Subsystem
★ 3GPP GBA (Generic Bootstrapping Architecture): Bootstrapping Server Function
External links
★ http://www.cisco.com/en/US/products/ps6638/products_data_sheet09186a00804fe332.html Cisco page outlining differences between RADIUS and DIAMETER
★ http://sourceforge.net/projects/openblox/ Open Source Java IMS optimised Full Diameter solution
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español



