O Diameter é um protocolo originalmente projetado para fins de Authentication, Authorization e Accounting (AAA). Ele é uma evolução do seu antecessor, o protocolo RADIUS, e foi desenvolvido para superar deficiências do seu antecessor como, por exemplo, suporta melhor tratamento de falhas, maior possibilidade de expansão no número de interfaces, entrega de mensagens com maior confiabilidade, segurança aprimorada, descoberta mais flexível de outros nós Diameter, etc.
A figura abaixo mostra exemplos de interfaces Diameter:

A topologia a seguir mostra a rede IMS destacando em azul as interfaces DIAMETER (Cx, Sh, Zh, Ro, Rf).

Conteúdo
Estrutura básica da mensagem Diameter
O núcleo do protocolo Diameter é definido pela RFC 3588 [3588]. Esta RFC especifica os requisitos mínimos para uma implementação do Diameter.
A figura abaixo apresenta o header Diameter:

A próxima figura mostra os headers Diameter de uma mensagem Cx, entre S-CSCF e o HSS:

Descrição dos principais cabeçalhos ou headers
Version – Indica a versão (Diameter V1)
Message Lenght – Mostra o tamanho da Mensagem (variável dependendo dos AVPs)
Command Flags
R (Request) – bit 1 indica Request e bit 0 Answer
P (Proxiable) – bit 1 indica que um Diameter Proxy Agent pode ser usado no processamento da mensagem e o bit 0 indica que não
E (Error) – bit 1 indica mensagem de erro e bit 0 indica que não há erro
T (reTransmited) – bit 1 indica mensagem retransmitida e bit 0 indica que não há retransmissão
r (reserved)
Command Code – Indica o tipo de mensagem (Exemplo: AIR, ULR, CLR, etc.)
Application-ID – Indica a Interface (Exemplo: Cx, Rx, Gx, Sh, etc.)
Hop-by-Hop ID – Bits aleatórios usados para correlacionar Request e Answer. Valor varia em cada Hop (salto)
End-to-End ID – Bits aleatórios usados para correlacionar Requests e Answers. Valor único da Origem até o Destino Final da mensagem.AVP – Uma mensagem Diameter contém vários AVPs, toda mensagem Diameter contém um AVP Route Record que armazena o nome (host) de todos os equipamentos que a mensagem já passou. O AVP Route Record determina o caminho da mensagem de Answer devendo passar sempre pelos mesmos equipamentos que a mensagem de Request.
Respostas Diameter
O AVP Result Code (AVP Code 268) indica que uma mensagem de request teve sucesso ou erro. Além disso, toda Mensagem de resposta Diameter inclui um Result-Code AVP.
O protocolo Diameter fornece as seguintes classes de erros, todas identificadas pelos dígitos em notação decimal, conforme abaixo:
– 1xxx (Informational)
– 2xxx (Success)
– 3xxx (Protocol Errors)
– 4xxx (Transient Failures)
– 5xxx (Permanent Failure)
A figura abaixo apresenta a resposta Diameter SAA (Server Assignment Answer) com Result Code indicando sucesso.

