# Базовый протокол DIAMETER: разбор RFC 6733

> DIAMETER (IETF RFC 6733) — это протокол AAA и сигнализации для взаимодействия LTE, IMS и 5G. Он переносит пары команд «запрос/ответ» — каждая из 20-байтового заголовка и набора AVP — поверх SCTP или TCP с TLS. Пиры согласуют возможности через CER/CEA, контролируют доступность через DWR/DWA и корректно завершают соединение через DPR/DPA.

- Канонический URL: https://www.broadnet.me/ru/reference/diameter-base-protocol
- Язык: ru
- Последнее обновление: 2026-07-18
- Издатель: BroadNet (https://www.broadnet.me)

Как работает базовый протокол DIAMETER по RFC 6733: 20-байтовый заголовок сообщения, коды команд и флаги R/P/E/T, обмен возможностями CER/CEA, watchdog DWR/DWA и отключение DPR/DPA поверх SCTP или TCP/TLS.

## Что такое DIAMETER

DIAMETER — это базовый протокол аутентификации, авторизации и учёта (AAA), определённый IETF в RFC 6733, и транспорт, выбранный 3GPP для плоскости управления LTE и IMS. Он заменил RADIUS в крупных сетях операторов и является на пакетной стороне аналогом SS7/MAP на унаследованной стороне — перенося управление подпиской и мобильностью (S6a к HSS), политику и тарификацию (Gx, Gy), а также регистрацию в IMS (Cx/Dx). Всё работает как пары команд «запрос/ответ» между именованными пирами, идентифицируемыми через Diameter Identity (FQDN) и сгруппированными в реалмы.

## Заголовок сообщения

Каждое сообщение DIAMETER начинается с фиксированного 20-октетного заголовка, за которым следует переменный список AVP. Заголовок несёт поле Version (всегда 1), 24-битное Message Length, октет Command Flags, 24-битный Command Code, 32-битный Application-Id, называющий приложение, к которому относится сообщение, и два идентификатора. Hop-by-Hop Identifier сопоставляет запрос его ответу между двумя соседними пирами и переписывается каждым прокси; End-to-End Identifier задаётся отправителем, сохраняется неизменным на всём пути и служит для обнаружения дубликатов.

*Заголовок сообщения DIAMETER по RFC 6733 (20 октетов)*

```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 Code вместе с Application-Id называют операцию; ответ повторно использует тот же код команды со сброшенным битом Request. Четыре флага команд несут семантику сообщения. R (Request) отличает запрос от ответа. P (Proxiable) означает, что сообщение может быть проксировано, ретранслировано или перенаправлено, а не обработано локально. E (Error) помечает ответ с протокольной ошибкой. T (potentially re-transmitted) помечает запрос, отправленный повторно после сбоя канала, чтобы получатель мог защититься от дубликатов. Базовый протокол определяет служебные команды; приложения, такие как S6a, Gx и Cx, определяют собственные коды команд поверх него.

*Коды команд базового DIAMETER (RFC 6733)*

| Команда | Код | Назначение |
|---|---|---|
| CER / CEA | 257 | Capabilities-Exchange — согласование поддерживаемых приложений при подключении |
| DWR / DWA | 280 | Device-Watchdog — проверка активности пира / keepalive (RFC 3539) |
| DPR / DPA | 282 | Disconnect-Peer — упорядоченное завершение соединения |
| RAR / RAA | 258 | Re-Auth — сервер запрашивает у клиента повторную авторизацию сессии |
| STR / STA | 275 | Session-Termination — клиент завершает авторизованную сессию |
| ASR / ASA | 274 | Abort-Session — сервер принудительно завершает сессию |
| ACR / ACA | 271 | Accounting-Request/Answer (базовый учёт) |

## Обмен возможностями: CER / CEA

Сразу после открытия транспортного соединения два пира обмениваются сообщениями Capabilities-Exchange-Request и Answer (команда 257, Application-Id 0). Каждая сторона объявляет свои Origin-Host и Origin-Realm, свой Host-IP-Address, Vendor-Id и — что важнее всего — набор поддерживаемых приложений через AVP Auth-Application-Id, Acct-Application-Id и Vendor-Specific-Application-Id. Если у пиров нет общего приложения, соединение отклоняется. CER/CEA — это способ, которым узел узнаёт, способен ли пир говорить на S6a, Gx или Cx, прежде чем пойдёт прикладной трафик, и происходит он ровно один раз за соединение.

## Поддержание соединения и завершение: DWR / DPR

DIAMETER использует watchdog из RFC 3539 для обнаружения «мёртвого» пира быстрее, чем это сделал бы сам транспорт. Когда соединение простаивает, пир отправляет Device-Watchdog-Request (команда 280) и ожидает Device-Watchdog-Answer в пределах интервала watchdog; повторные пропуски переводят пир в состояние сбоя, и трафик перенаправляется на альтернативный. Чтобы намеренно закрыть соединение — для обслуживания или переконфигурации — пир отправляет Disconnect-Peer-Request (команда 282) с Disconnect-Cause (REBOOTING, BUSY или DO_NOT_WANT_TO_TALK_TO_YOU), позволяя другой стороне решить, переподключаться ли.

## Транспорт: SCTP и TCP с TLS

RFC 6733 требует поддержки как SCTP (RFC 4960), так и TCP, причём SCTP предпочтителен для сигнализации, поскольку его мультиплексирование потоков исключает блокировку начала очереди (head-of-line), а мультихоуминг обеспечивает избыточность путей. Общеизвестный порт — 3868. Безопасность обеспечивается TLS поверх TCP или DTLS поверх SCTP; внутри доверенного домена оператора многие развёртывания вместо этого используют IPsec на сетевом уровне. У DIAMETER нет собственной внутриполосной аутентификации сообщений, поэтому важны транспортная безопасность и пограничная фильтрация, рассматриваемые в разделе о безопасности роуминга DIAMETER.

## Частые вопросы

### Что такое базовый протокол DIAMETER?

Это протокол AAA и сигнализации, определённый в IETF RFC 6733, используемый как транспорт плоскости управления для взаимодействия LTE, IMS и 5G. Он переносит пары команд «запрос/ответ» — 20-байтовый заголовок плюс AVP — поверх SCTP или TCP с TLS и определяет обмен возможностями, watchdog для поддержания связи и корректное отключение.

### Что означают флаги R, P, E и T?

R помечает запрос (Request, сброшен в ответе). P помечает сообщение как Proxiable — оно может быть ретранслировано, проксировано или перенаправлено. E помечает ответ с ошибкой (Error). T помечает запрос как потенциально повторно переданный после failover, чтобы получатель мог обнаружить дубликат по End-to-End Identifier.

### В чём разница между Hop-by-Hop и End-to-End Identifier?

Hop-by-Hop Identifier сопоставляет запрос его ответу между двумя соседними пирами и переписывается каждым прокси. End-to-End Identifier задаётся один раз отправителем, сохраняется неизменным на всём пути и используется для обнаружения дублирующихся сообщений после повторной передачи.

### Для чего нужен обмен CER/CEA?

Capabilities-Exchange-Request/Answer (команда 257) выполняется один раз при открытии соединения. Пиры объявляют свою идентичность и поддерживаемые приложения DIAMETER (Auth-Application-Id, Vendor-Specific-Application-Id). Если общего приложения нет, соединение отклоняется, поэтому обе стороны заранее знают, могут ли они говорить на S6a, Gx или Cx.

### Какие порт и транспорт использует DIAMETER?

DIAMETER использует общеизвестный порт 3868 поверх SCTP или TCP, причём для сигнализации предпочтителен SCTP из-за мультиплексирования потоков и мультихоуминга. Безопасность — TLS поверх TCP или DTLS поверх SCTP; внутри доверенного домена оператора вместо этого распространён IPsec на сетевом уровне.

### Как пир DIAMETER определяет, что его партнёр отказал?

Он использует device watchdog из RFC 3539: на простаивающем соединении пир отправляет Device-Watchdog-Request (команда 280) и ожидает Device-Watchdog-Answer в пределах интервала watchdog. Повторно пропущенные ответы переводят пир в состояние сбоя, и трафик перенаправляется на альтернативный пир.

## Источники

- [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)

## См. также

- [AVP DIAMETER и формат сообщений](https://www.broadnet.me/ru/reference/diameter-avps-and-message-format)
- [DIAMETER против RADIUS](https://www.broadnet.me/ru/reference/diameter-vs-radius)
- [DIAMETER S6a/S6d к HSS](https://www.broadnet.me/ru/reference/diameter-s6a-s6d-hss)
- [SS7 против SIGTRAN](https://www.broadnet.me/ru/reference/ss7-vs-sigtran)
- [Платформа сигнализации и CDR](https://www.broadnet.me/ru/platforms/signaling-cdr)
