БДИ   Web   ВСТ   Компьютерные сети   Телекоммуникации   Телематика  

Сетевые протоколы

  1. Уровни протоколов
  2. Протоколы локальных сетей
  3. Свойства протоколов локальной сети
  4. Понятие протокола Интернет
  5. Краткое описание протоколов Интернет
  6. Языки разметки WEB-страниц
  7. Технологии Java, Net.Framework, Mono
  8. Облачные вычисления и сервисы
  9. Пожиратель движков Google App Engine
  10. Обзор пиринговых сетей
  11. Протоколы пиринговых сетей
  12. Что такое Direct Connect?
  13. Сравнение клиентов Direct Connect
  14. Mesh-сети
  15. Протокол CJDNS
  16. Протокол Diameter
  17. Протокол SS-7 / ОКС-7
  18. Протокол GTP
  19. Протоколы мобильной связи 1G...6G

Базовый протокол Diameter

Введение

Первый документ, который описывал требования к новому протоколу был опубликован в 1998 году в рамках IETF, его авторами стали Pat R. Calhoun (Sun),Glen Zorn (MS), Ping Pan (IBM).
Коллектив авторов черновика менялся от версии к версии, они переходили из одной компании в другую, и наконец, в 2003 году был выпущен RFC 3588, но всегда первым стоит имя Pat R. Calhoun. В 3588 была описана базовая модель Diameter, которая включала в себя функционал Accounting и позволяла разработчикам создавать на ее основе новые приложения для протокола. И совсем недавно, в октябре 2012 года документ RFC 3588 был признан устаревшим, и его сменил RFC6733, в котором ничего кардинально не изменилось, обратная совместимость сохранена, изменения описаны в самом документе и выходят за рамки статьи.

Важной особенностью протокола является его расширяемость и возможность создания не только собственных атрибутов, но и приложений. Примером приложения является RFC 4006 Diameter Credit Control Application, разработка которого началась в 2003 году, а финальный RFC вышел в 2005. Далее комитет 3GPP оттолкнулся от RCF 3588 и создал ряд приложений, например 3GPP 32.299 Diameter charging applications, который является следствием развития RFC 4006 DCCA.

Для рассмотрения возможностей Diameter хватит и этих трех источников, во многом это будет пересказ рекомендаций. Ниже я приведу ссылки на некоторые открытые спецификации. Помимо открытых, я сталкивался с проприетарными реализациями приложений Diameter. В итоге реальное количество реализаций, версий и приложений Diameter оценить не могу. Но могу точно сказать, что сегодня, для оказания почти любому абоненту услуг мобильной связи Diameter применяется в том или ином виде. А с развитием 3G, IMS, LTE процент проникновения будет стремиться к 100%.

Базовый протокол

Базовый протокол реализует требования к протоколам ААА, детали которых отражены в RFC2989, и описывает процесс установления соединения, проверку совместимости, правила отправки сообщений и их маршрутизации, разрыв соединения.
В качестве транспорта могут использоваться TCP и SCTP. Безопасность протокола должна обеспечиваться на транспортном уровне, в рекомендациях также указано, что протокол не должен использоваться без TLS, DTLS или IPsec. В доверенной сети, разумеется, возможно обойтись и без них, в частности, если внутреннюю сеть предприятия можно считать надежной.

Спецификация определяет несколько типов узлов Diameter.
Для понимания роли узлов необходимо ввести две термина, которые более подробно будут рассмотрены ниже.
Сессия — контролирует состояние абонента и включает в себя те и только те сообщения, которые относятся к отдельно взятому абоненту.
Соединение — контролирует состояние связи между узлами Diameter.

Сессия определяется AVP SessionID, и этот идентификатор является сквозным для всех узлов, принимающих участие в обработке сессии абонента.

Клиент

Клиентом обычно выступает сетевое устройство, которое непосредственно обрабатывает трафик абонента.

Сервер

Роль сервера вполне понятна, он должен контролировать состояние абонентских сессий.

Агент.

DIAMETER агенты являются промежуточными узлами между клиентом и сервером и выполняют функции управления трафиком. Например, они могут агрегировать сообщения от устройств на одной площадке, выполнять роль балансировщика нагрузки, модифицировать пакеты Diameter, выступать в роли шлюзов безопасности при переходе из доверенной сети в публичную.

Функционально агенты делятся на несколько типов.

Relay agent (DRL)

Узлы данного типа принимают Diameter-сообщения от сетевых устройств и перенаправляют их на следующие узлы на основании данных, содержащихся в сообщениях на основании Realm и списка известных соседей. Relay могут быть использованы для агрегации сообщений с множества узлов, расположенных в одной географической зоне.

Relay никак не модифицируют значимые поля в теле сообщения, поэтому они могут работать любыми типами приложений Diameter, тем не менее, при установлении соединения, они должны анонсировать Relay Application Id.

Proxy agent.

Proxy очень похожи на Relay, но умеют модифицировать полезную нагрузку Diameter-сообщения. Например, контролировать доступ к определенным сервисам, модифицировать значения полей и тд. Чаще всего Relay и Proxy объединяют в одну сущность, т.к. Proxy без правил преобразования является Relay-агентом.

Relay\Proxy

Сессия, соединение, Relay\Proxy

Redirect agent (DRD)

DRD используются в том случае, если правила маршрутизации Diameter-сообщений должны контролироваться из одной точки. DRD получает запрос, определяет узел на который его надо отправить и сообщает DRL куда его надо перенаправить.
На диаграммах все выглядит гораздо проще.

Translation Agents (TLA)

И самый интересный (с моей точки зрения) класс узлов Diameter — Трансляторы протоколов. Применяются они в том случае, если физические устройства несовместимы на уровне AAA протоколов. Например, реализовать преобразование из RADIUS в Diameter и обратно. Или поддержать преобразование между 2-мя несовместимыми версиями Diameter. TLA должны обеспечивать транзакционность и хранение состояния сессии во время ее обработки.
TLA должны анонсировать только те ApplicationID, поддержка которых реализована, т.к. только в этом случае агент сможет корректно обработать входящее сообщение.

Структура пакетов

Пакеты традиционно состоят из заголовка и полезной нагрузки (в виде AVP — Attribute-Value Pair).

Назначение первых трех полей понятно.
Command-Code — код команды, которая передается в пакете
Application-Id — указатель на тип приложения
Hop-by-Hop Identifier — уникальный номер запроса в рамках соединения, ответ должен иметь тот же самый номер, это поле может модифицироваться при необходимости агентами.
End-to-End Identifier — еще один идентификатор запроса, только в отличие от Hop-by-Hop, он должен оставаться уникальным в рамках сессии, и агенты не должны его изменять.
Далее идет полезная нагрузка в виде AVP (Attribute Value Pairs).

Структура AVP тоже очень проста.

AVP Code — код атрибута, описывается в рекомендации.
За кодом идут служебные биты, длина данных и необязательное поле Vendor-ID.
После идут сами данные с определенной длиной.
Данные в свою очередь могут содержать другие наборы AVP, структура AVP отлично описывается ASN.1.

БДИ   Web   ВСТ   Компьютерные сети   Телекоммуникации   Телематика  

Знаете ли Вы, что абстракция через спецификацию - это прием программирования, позволяющий абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры. Абстракция через спецификацию позволяет абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution