# Protocolo base DIAMETER: RFC 6733 explicado

> O DIAMETER (IETF RFC 6733) é o protocolo AAA e de sinalização para LTE, IMS e interworking 5G. Transporta pares de comando request/answer — cada um um cabeçalho de 20 bytes mais AVPs — sobre SCTP ou TCP com TLS. Os pares negociam capacidades com CER/CEA, monitorizam a atividade com DWR/DWA e encerram de forma limpa com DPR/DPA.

- URL canônico: https://www.broadnet.me/pt/reference/diameter-base-protocol
- Idioma: pt
- Última atualização: 2026-07-18
- Editor: BroadNet (https://www.broadnet.me)

Como funciona o protocolo base DIAMETER segundo a RFC 6733: o cabeçalho de mensagem de 20 bytes, os command codes e as flags R/P/E/T, a troca de capacidades CER/CEA, o watchdog DWR/DWA e o encerramento DPR/DPA, sobre SCTP ou TCP/TLS.

## O que é o DIAMETER

O DIAMETER é o protocolo base de autenticação, autorização e contabilização (AAA) definido pela IETF na RFC 6733, e o transporte que o 3GPP escolheu para o plano de controlo do LTE e do IMS. Substituiu o RADIUS nas grandes redes de operador e é, no lado dos pacotes, o par do SS7/MAP no lado legado — transportando gestão de subscrição e mobilidade (S6a para o HSS), política e tarifação (Gx, Gy) e registo IMS (Cx/Dx). Tudo corre como pares de comando request/answer entre pares nomeados, identificados por uma Diameter Identity (um FQDN) e agrupados em realms.

## O cabeçalho de mensagem

Cada mensagem DIAMETER começa com um cabeçalho fixo de 20 octetos seguido por uma lista variável de AVPs. O cabeçalho transporta uma Version (sempre 1), um Message Length de 24 bits, um octeto de Command Flags, um Command Code de 24 bits, um Application-Id de 32 bits que nomeia a aplicação a que a mensagem pertence, e dois identificadores. O Hop-by-Hop Identifier associa um request à sua answer entre dois pares adjacentes e é reescrito por cada proxy; o End-to-End Identifier é definido pelo originador, preservado inalterado ao longo do caminho, e usado para detetar duplicados.

*Cabeçalho de mensagem DIAMETER da RFC 6733 (20 octetos)*

```text
0                   1                   2                   3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Version=1    |            Message Length (24)             |
| Command Flags |            Command Code (24)               |
|                    Application-Id (32)                     |
|                 Hop-by-Hop Identifier (32)                 |
|                 End-to-End Identifier (32)                 |
|  AVPs ...                                                  |
Command Flags:  R P E T r r r r
```

## Command flags e command codes

Um Command Code mais o Application-Id nomeia a operação; a answer reutiliza o mesmo command code com o bit Request apagado. Quatro command flags carregam a semântica da mensagem. R (Request) distingue um request de uma answer. P (Proxiable) indica que a mensagem pode ser proxied, retransmitida ou redirecionada em vez de tratada localmente. E (Error) marca uma answer de erro de protocolo. T (potentially re-transmitted) marca um request reenviado após uma falha de ligação, para que o recetor se possa proteger contra duplicados. O protocolo base define os comandos de manutenção; aplicações como S6a, Gx e Cx definem os seus próprios command codes por cima.

*Command codes base do DIAMETER (RFC 6733)*

| Comando | Código | Finalidade |
|---|---|---|
| CER / CEA | 257 | Capabilities-Exchange — negociar as aplicações suportadas na conexão |
| DWR / DWA | 280 | Device-Watchdog — verificação de atividade do peer / keepalive (RFC 3539) |
| DPR / DPA | 282 | Disconnect-Peer — encerramento ordenado da conexão |
| RAR / RAA | 258 | Re-Auth — o servidor pede ao cliente que reautorize uma sessão |
| STR / STA | 275 | Session-Termination — o cliente encerra uma sessão autorizada |
| ASR / ASA | 274 | Abort-Session — o servidor força o encerramento de uma sessão |
| ACR / ACA | 271 | Accounting-Request/Answer (accounting básico) |

## Troca de capacidades: CER / CEA

Imediatamente após a abertura de uma ligação de transporte, os dois pares trocam um Capabilities-Exchange-Request e Answer (comando 257, Application-Id 0). Cada lado anuncia o seu Origin-Host e Origin-Realm, o seu Host-IP-Address, um Vendor-Id e — o que é crucial — o conjunto de aplicações que suporta através dos AVPs Auth-Application-Id, Acct-Application-Id e Vendor-Specific-Application-Id. Se os pares não partilharem nenhuma aplicação comum, a ligação é recusada. O CER/CEA é como um nó descobre se o par consegue falar S6a, Gx ou Cx antes de fluir qualquer tráfego de aplicação, e acontece exatamente uma vez por ligação.

## Keepalive e encerramento: DWR / DPR

O DIAMETER usa o watchdog da RFC 3539 para detetar um par morto mais depressa do que o transporte o faria por si só. Quando uma ligação está inativa, um par envia um Device-Watchdog-Request (comando 280) e espera um Device-Watchdog-Answer dentro do intervalo de watchdog; falhas repetidas movem o par para um estado de falha e o tráfego é reencaminhado para uma alternativa. Para fechar uma ligação deliberadamente — por manutenção ou reconfiguração — um par envia um Disconnect-Peer-Request (comando 282) com uma Disconnect-Cause (REBOOTING, BUSY ou DO_NOT_WANT_TO_TALK_TO_YOU), deixando o outro lado decidir se se deve voltar a ligar.

## Transporte: SCTP e TCP com TLS

A RFC 6733 exige o suporte tanto de SCTP (RFC 4960) como de TCP, com o SCTP preferido para sinalização porque o seu multi-streaming evita o head-of-line blocking e o seu multi-homing dá redundância de caminho. A porta bem conhecida é a 3868. A segurança é dada por TLS sobre TCP ou DTLS sobre SCTP; dentro de um domínio de operador de confiança, muitas implementações correm IPsec na camada de rede em alternativa. O DIAMETER não tem autenticação de mensagem in-band própria, e é por isso que a segurança do transporte e a filtragem na borda discutidas em segurança de roaming DIAMETER são importantes.

## Perguntas frequentes

### O que é o protocolo base DIAMETER?

É o protocolo AAA e de sinalização definido na IETF RFC 6733, usado como transporte do plano de controlo para LTE, IMS e interworking 5G. Transporta pares de comando request/answer — um cabeçalho de 20 bytes mais AVPs — sobre SCTP ou TCP com TLS, e define troca de capacidades, keepalive por watchdog e desconexão ordenada.

### O que significam as flags R, P, E e T?

R marca um Request (apagada na answer). P marca a mensagem como Proxiable — pode ser retransmitida, proxied ou redirecionada. E marca uma answer de Error. T marca um request como potencialmente retransmitido após um failover, para que o recetor possa detetar um duplicado usando o End-to-End Identifier.

### Qual é a diferença entre o Hop-by-Hop e o End-to-End Identifier?

O Hop-by-Hop Identifier associa um request à sua answer entre dois pares adjacentes e é reescrito por cada proxy. O End-to-End Identifier é definido uma vez pelo originador, preservado inalterado ao longo de todo o caminho, e usado para detetar mensagens duplicadas após uma retransmissão.

### Para que serve a troca CER/CEA?

O Capabilities-Exchange-Request/Answer (comando 257) corre uma vez quando uma ligação abre. Os pares anunciam a sua identidade e as aplicações DIAMETER que suportam (Auth-Application-Id, Vendor-Specific-Application-Id). Se nenhuma aplicação for partilhada, a ligação é recusada, pelo que ambos os lados sabem à partida se conseguem falar S6a, Gx ou Cx.

### Que porta e transporte usa o DIAMETER?

O DIAMETER usa a porta bem conhecida 3868 sobre SCTP ou TCP, com o SCTP preferido para sinalização devido ao multi-streaming e ao multi-homing. A segurança é TLS sobre TCP ou DTLS sobre SCTP; dentro de um domínio de operador de confiança é comum usar antes IPsec na camada de rede.

### Como deteta um par DIAMETER que o seu parceiro falhou?

Usa o device watchdog da RFC 3539: numa ligação inativa, um par envia um Device-Watchdog-Request (comando 280) e espera um Device-Watchdog-Answer dentro do intervalo de watchdog. Answers falhadas repetidas movem o par para um estado de falha e o tráfego é reencaminhado para um par alternativo.

## Fontes

- [IETF RFC 6733 — Diameter Base Protocol](https://datatracker.ietf.org/doc/html/rfc6733)
- [IETF RFC 3539 — AAA Transport Profile (watchdog)](https://datatracker.ietf.org/doc/html/rfc3539)

## Relacionados

- [AVPs e formato de mensagem DIAMETER](https://www.broadnet.me/pt/reference/diameter-avps-and-message-format)
- [DIAMETER vs RADIUS](https://www.broadnet.me/pt/reference/diameter-vs-radius)
- [DIAMETER S6a/S6d para o HSS](https://www.broadnet.me/pt/reference/diameter-s6a-s6d-hss)
- [SS7 vs SIGTRAN](https://www.broadnet.me/pt/reference/ss7-vs-sigtran)
- [Plataforma de sinalização e CDR](https://www.broadnet.me/pt/platforms/signaling-cdr)
