как обрабатывать запрос / ответ / сессия при перезапуске стека диаметров? - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю над протоколом диаметра.У меня проблема с обработкой запроса / ответа / сеанса при перезапуске моего стека Diameter, поэтому я хочу знать, какие параметры хранятся в базе данных для дальнейшего использования при перезапуске стека диаметров ?.такой параметр, как Session_ID, State и т. д., пожалуйста, предложите мне, если у вас есть идеи по поводу этого расширенного спасибо за ваш ответ

1 Ответ

1 голос
/ 07 апреля 2019

Вы должны сохранить Session-ID AVP в качестве индекса для пользователей, к которым следует вернуться. Как говорится в RFC 3588, он должен быть уникальным:

Session-Id AVP (код AVP 263) имеет тип UTF8String и используется определить конкретную сессию (см. раздел 8). Все сообщения относящиеся к конкретному сеансу, ДОЛЖНЫ включать только один AVP Session-Id и одно и то же значение ДОЛЖНО использоваться в течение всей жизни сеанса. Идентификатор сессии должен присутствовать сразу после Заголовок диаметра (см. Раздел 3).

Session-Id ДОЛЖЕН быть глобально и вечно уникальным, так как подразумевается уникально идентифицировать сеанс пользователя без ссылки на какой-либо другой информация, и может потребоваться для корреляции исторической аутентификации информация с учетом информации. Session-Id включает в себя обязательная часть и часть, определяемая реализацией; рекомендуемый формат для определенной части реализации изложен ниже.

Другие параметры, которые вы должны сохранить:

Hop-by-hop, end-to-end - должен быть возвращен, как они были получены в заголовке

orig-host / orig-realn - вы должны сохранить, потому что иногда вам нужно изменить их на dest-host / dest-realm

важное замечание: Есть много интерфейсов диаметра, может быть, что конкретный интерфейс должен будет возвращать AVP, что другой интерфейс не будет. Например: AV-CC-Request-Type в случае интерфейса GY, который следует скопировать из запроса на ответ.

Поэтому я предлагаю сохранить весь запрос! если вам нужно восстановить, у вас всегда будут все AVP на случай, если вам нужно будет вернуть ответ, независимо от того, с каким интерфейсом вы работаете.

Другой более простой вариант - ничего не сохранять. После прекращения подключения по диаметру удалите всех подписчиков и дождитесь повторной попытки (:

...