#java #diameter-protocol
#java #diameter-протокол
Вопрос:
Я работаю над протоколом Diameter. У меня проблема с обработкой запроса / ответа / сеанса при перезапуске стека Diameter, поэтому я хочу знать, какие параметры сохраняются в базе данных для дальнейшего использования при перезапуске стека diameter?. такой параметр, как Session_ID, состояние и т.д. пожалуйста, предложите мне, если у вас есть какие-либо идеи по этому поводу, дополнительно спасибо за ваш ответ
Ответ №1:
Вы должны сохранить идентификатор сеанса AVP в качестве индекса для пользователей, к которым вы должны вернуться. Как сказано в RFC 3588, он должен быть уникальным:
Идентификатор сеанса AVP (код AVP 263) имеет тип UTF8String и используется для идентификации конкретного сеанса (см. Раздел 8). Все сообщения, относящиеся к определенному сеансу, ДОЛЖНЫ содержать только один идентификатор сеанса AVP, и одно и то же значение ДОЛЖНО использоваться на протяжении всего срока действия сеанса. При наличии идентификатор сеанса ДОЛЖЕН отображаться сразу после заголовка Diameter (см. Раздел 3).
Идентификатор сеанса ДОЛЖЕН быть глобально и вечно уникальным, поскольку он предназначен для уникальной идентификации сеанса пользователя без ссылки на какую-либо другую информацию и может потребоваться для сопоставления исторической информации аутентификации с учетной информацией. Идентификатор сеанса включает обязательную часть и часть, определяемую реализацией; рекомендуемый формат для части, определяемой реализацией, описан ниже.
Другими параметрами, которые вы должны сохранить, являются:
Переход за переходом, из конца в конец — должны быть возвращены в том виде, в каком они были получены в заголовке
origin-host / origin-realn — вам следует подумать о сохранении, потому что иногда вам нужно изменить их на dest-host / dest-realm
важное замечание: Существует множество интерфейсов diameter, может быть, этот конкретный интерфейс должен был бы возвращать AVP, чего не сделал бы другой интерфейс. Например: CC-Request-Type AVP в случае интерфейса GY, который должен быть скопирован из запроса в ответ.
Поэтому я предлагаю сохранить весь запрос! если вам нужно восстановить, у вас всегда будут все AVP на случай, если вам понадобится вернуть ответ, независимо от того, с каким интерфейсом вы работаете.
Другой более простой вариант — ничего не сохранять. После отключения соединения diameter удалите всех подписчиков и дождитесь повторной попытки (:
Комментарии:
1. спасибо за ваш ценный ответ, это полезно для меня. как насчет состояния?