| United States-English |
|
|
|
![]() |
Introduction to Diameter: White Paper > Chapter 1 Introduction
to DiameterDiameter Messages |
|
A Diameter message consists of a fixed-length 20-octet header followed by a variable number of AVPs. The format of a Diameter header is:
The Diameter message header contains two 32-bit message identifiers, a Hop-by-Hop Identifier, and an End-to-End Identifier. The Hop-by-Hop Identifier aids in matching requests and replies. In requests, the Hop-by-Hop Identifier is replaced at each hop as the Diameter message is relayed to its final destination. The sender of an Answer message returns the same value that was found in the corresponding request. The End-to-End Identifier, in conjunction with the origin host's identity, is used to detect duplicate request messages. The End-to-End Identifier is unmodified as a request is forwarded to its final destination. The originator of an Answer message returns the same value that was found in the corresponding request. The format of a Diameter AVP header is:
The AVP Code, plus the Vendor-Id field, uniquely identify the attribute. The first 256 AVP numbers, with the Vendor-Id set to zero, are reserved for backward compatibility with RADIUS. The AVP Data field is zero or more octets and contains information specific to the Attribute. The AVP Code and AVP Length fields determine the format and length of the Data field. Diameter defines data types of Integer32, Unsigned32, Integer64, Unsigned64, Float32, Float64, Float128, OctetString, and Grouped. A Grouped AVP is an AVP whose data is a sequence of AVPs. The other types are self-explanatory. Derived data formats are also defined, including enumerated (derived from integer32), DiameterIdentity (derived from octetstring), and time (derived from unsigned32), and UTF8String (derived from octetstring), IPFilterRule (derived from octetstring), and QosFilterRule (derived from octetstring). Each Diameter process running on a host generates, or is configured with, a Diameter Identity. The DiameterIdentity is a URI-syntax string with substrings representing the host's fully qualified domain name (FQDN), one of the ports used to listen for incoming connections, the transport used to listen for incoming connections (i.e. TCP or SCTP), the AAA protocol (i.e. Diameter), and the transport security (i.e. none or TLS). The following is an example of a valid Diameter host identity:
Since the identity carries the host's FQDN, and since multiple Diameter processes on a single host cannot listen for incoming connections on the same port on a given protocol, the DiameterIdentity of any process is guaranteed to be unique. A Diameter message consists of a fixed-length header followed by a variable number of AVPs. There are two types of messages, Requests and Answers. There are few circumstances where a request is silently discarded, and therefore the originator of a request will receive an answer. Every answer message carries a Result-Code AVP. The data value of the Result-Code AVP is an integer code indicating whether a particular request was completed successfully or whether an error occurred. Every Diameter message carries the Diameter Identity of the originating Diameter process in the Origin-Host AVP. Every Diameter message also carries the realm of the originating Diameter process in the Origin-Realm AVP. Request messages may be proxiable or non-proxiable, indicated by a flag in the message header. Non-proxiable requests are intended strictly for the next-hop peer, and are never forwarded. Proxiable requests are routable and are routed by realm. Every proxiable request carries the target realm in the Destination-Realm AVP. A Diameter message pertaining to a specific user session includes a Session-Id AVP, the value of which is constant throughout the life of a session. The value of the Session-Id AVP is a globally and eternally unique text string, intended to uniquely identify a user session without reference to any other information. The Diameter client initiating the session creates the Session-Id. The Session-Id begins with the originator's Diameter Identity string and is followed by any sequence guaranteeing both topological and temporal uniqueness. |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||