|
|
The Internet NG Project |
||||||||||||||||||||||||
D5.1 Contents
|
DIAMETERDescription - Packet Format - Sequence Diagram - Protocol Characteristics - Current Developments - References - Products DescriptionThe diameter protocol is a proposed protocol which can be used for policy, AAA (Authentication, Authorization and Accounting) and resource control. The protocol has been setup to coexist with RADIUS, a protocol which has already been widely implemented. The draft 'draft-calhoun-diameter-10.txt' [CR99] contains a description of the message format and transport to be used by all DIAMETER extensions or implementations. A DIAMETER extension is an extension on the described protocol for a specific service or task using DIAMETER as a transport mechanism. The draft 'draft-calhoun-diameter-accounting-01.txt' [AC99] contains the accounting extension on the protocol. It describes how accounting data can be transferred using the DIAMETER protocol. According to the document the accounting data can be formatted using the ADIF (Accounting Data Interchange Format), described in the draft 'draft-ietf-roamops-actng-06.txt' [AL99]. There is no description of accounting keywords, just their format. Packet FormatThe data between client and server are exchanged in DIAMETER packets. Exactly one packet is encapsulated in an UDP data field. Every packet contains the following information:
Figure 1: Diameter Packet Format.
Diameter Commands:
Sequence Diagram
Below is a drawing of a sequence diagram when a user accesses the network
through the Network Access Server and disconects itself.
Figure 2: DIAMETER's Message Flow.
Protocol Characteristics
Differences between RADIUS and DIAMETERThe DIAMETER protocol is designed as a next generation RADIUS protocol, which has to solve the known RADIUS problems today. (derrived from 'Diameter Framework Document' [CZ99]. Below is a list of problems known to RADIUS and how the're being solved in DIAMETER
Radius has only one byte reserved for the length of a datafield (max. 255) in its attribute header. Diameter reserves two bytes for its length of a datafield (max. 16535). Radius has only one byte as identifier field to identify retransmissions. This limits the number of requests that can be pending (max. 255). Diameter has reserved four bytes for this purpose (max. 2^32) Radius operates over UDP and has no standard scheme to regulate it's flow. Diameter has a scheme which regulates the flow of UDP packets (windowing scheme) a Radius client expects a successful or failed response after a request, but does not know whether the request has been received by the server. a Diameter client expects a success of failed response or just an acknowledgement of the received request by the server. a Radius server which receives packet which do not contain the expected infomation, or which have errors are silently discarded. This might cause the client to think that the server is down because it does not receive any response. It would then try to send it to a secondary server a Diameter server can send an error message back to the client indicating the problem Radius server has no way of indicating that it's going down or is currently running Diameter supports Keep-allive messages and messages that indicate that a server is going down for a time period . When using PPP CHAP any radius client can generate a challenge response sequence, which can be intercepted by any radius client or proxy server in the chain. This challenge response sequence can then be replayed by an other radius client at any time. (partly solved by the radius extension using the EAP protocol) In Diameter those challenge/response attributes can be secured using end-to-end encription and authentication. Radius only support hop-by-hop security, which means that at every hop can easily modify information, which can not traced to it's orrigin. Diameter supports als end-to-end security which guarantees that the information can not be modified without notice. Radius does not support vendor specific commands, only vendor specific attributes. Diameter has support of vendor specific command code's The Radius protocol does not impose any alignment requirements, which adds an unnecessary burden on most processors. The Diameter protocol has a 32 bits allignment requirement, which can be handled more efficient by most processors. Current DevelopmentsThe DIAMETER protocol is currently under development. There is no specific working group assigned to this protocol, but there is a homepage which contains the latest information on DIAMETER at www.diameter.org. References
ProductsYet Empty |
This page was last updated at
01 November '99.
For questions please contact
Mario Goorden