I “learned” Diameter in 2006. I knew various protocols and I immediately took on Diameter. Because it defined the transport protocol between two nodes “speaking Diameter”, the packet format and some other notions and allowed any number of applications to be built on top of that. A Diameter node knows how to connect to another Diameter node or what to do if another Diameter node wants to connect to it. And then, they speak the Diameter application language. And the beauty of the protocol is that the Diameter message (the packet) can be extended in many ways. Let me get into the details of this.
A Diameter packet contains a header and a list of AVPs. AVP means Attribute-Value-Pair. And each AVP has a header part and a value part. The Diameter header defines what the message actually contains and how to decode it. An AVP header defines which is the attribute sent whilst the AVP value contains the actual value for that attribute. And any number of Diameter messages can be defined, the messages needed by various application protocols, and any number of AVPs can be defined. That means that the Diameter protocol is powerful enough to send any kind of information as long as the transport protocol part defined by the Diameter Base Protocol is suited for the application.
You might already have a question: why would I prefer using encoded packets instead of clear text data (in XML format for example). There is a reason. Packets are more compact than clear text data. Many telecom applications have to process a lot of requests per second. So there is a lot of parallel processing done and data to keep in memory. So memory print of application (per request) does matter. Of course the more compact a packet is, the more processing is done on decoding it.
Diameter Base Protocol defines:
- The way a Diameter connection between 2 nodes is established
- The responsibilities of different kind of Diameter nodes in a network
- The Diameter packet format
- The Diameter types for various kinds of data exchanged in AVPs
- A set of defined AVPs (the code and type for each)
- A set of defined Diameter messages (the code and content for each)
- A very extensible framework for telecom applications
Diameter application protocols:
- Are built on top of Diameter Base Protocol (RFC 3588) relying on the connection establishing mechanism it provides
- Define the application messages exchanged
- Define the new AVPs needed by the applications (used in the application messages)
- Define the new data types (used by the new AVPs defined)
- Define when each kind of message is used and what is done by a node receiving this kind of message
To summarize: Diameter offers a procedure for establishing connections with other Diameter nodes and enough flexibility to build Diameter applications for the telecom field – such as R Systems TOP Middleware.
Author: Mihaela Ionita – Developer, R Systems