`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

SIP меняет акценты Интернет-коммуникаций

0 
 

Протокол инициализации сеанса (Session Initiation Protocol -- SIP) с момента его принятия в 1999 г. в качестве официального стандарта получил широкое признание на рынке телекоммуникаций как протокол для передачи сигналов при предоставлении коммуникационных сервисов с помощью Интернета.

Хотя SIP стал известным в коммуникационной индустрии как "телефонный протокол", в действительности он используется для многих разновидностей сеансов связи, таких как голосовые и видеокоммуникации, мгновенные сообщения, конференции, коллективная работа в режиме реального времени. Фактически сегодня SIP превратился в стандартный механизм для поддержки интерактивных объединенных коммуникационных сервисов. Он обеспечивает практический метод интеграции сервисов, охватывающий разнообразные сети -- корпоративные и операторские, базирующиеся на технологиях TDM/IP, применяя для этого множество не зависимых от среды передачи режимов. Таким образом, SIP смещает фокус с методов коммуникаций к пользовательскому уровню представления сеанса. Этот протокол играет ту же роль для объединенных коммуникаций, что и HTTP для обмена информацией во Всемирной Паутине, обеспечивая прозрачность коммуникационной инфраструктуры для конечного пользователя и доступ к различным режимам связи.


Немного истории

SIP был разработан в конце 1996 г. как компонент в наборе утилит экспериментальной академической сети Mbone (Multicast backbone) для управления многоадресной доставкой мультимедийного контента, включающего обсуждения и семинары, широковещательные сообщения, заседания IETF и т. п. Существенно, что Mbone работала поверх Интернета. Одной из главных особенностей этой сети был механизм для приглашения пользователей участвовать в текущей или будущей мультимедийной сессии по Интернету -- по сути, протокол инициализации сеанса. Такова краткая история рождения SIP.

При создании в SIP закладывался ряд требований с учетом его применения в перспективе. Первое -- расширяемость. Так как пользователи могли находиться в любом месте, где существовал Интернет, то протокол должен был работать в сетях большего масштаба, чем имелись на то время. Необходимо было иметь возможность приглашать пользователей на множество сеансов, так что протокол должен был масштабироваться в обоих направлениях. Второе требование -- максимальное применение уже имеющихся наработок, в частности таких как MIME, URL и протокол для описания мультимедийных сеансов SDP (Session Description Protocol). Результатом его реализации была бы хорошая интегрируемость с другими IP-приложениями (к примеру, с Web и электронной почтой). Еще одним ключевым требованием являлась совместимость.

Вопреки заложенным в SIP особенностям он получил незначительное распространение в 1996-1997 гг. Лишь когда интерес к Интернет-телефонии стал повышаться, на него начали смотреть как на инструмент, который мог бы использоваться и для VoIP, а не только для Mbone-сеансов. В результате интенсивных усилий спецификация была завершена в конце 1998 г. и одобрена как RFC 2543 в марте 1999 г. Буквально с этого момента популярность SIP росла экспоненциально. Его масштабируемость и особенно гибкость привлекали операторов услуг и производителей, чьи проблемы не мог решить вертикально интегрированный протокол, такой как H.323. В течение 1999--2000 гг. SIP завоевал признание большинства основных игроков в этой сфере. Им начали интересоваться и другие организации по стандартизации, в частности ITU, ETSI TIPHON, IMTC, JAIN. В три последующих года функции SIP расширились, и в 2002 г. новый набор стандартов был утвержден и получил наименование RFC 3261.


Основные концепции SIP

SIP "рассматривает" сеть с тех же позиций, что и Интернет: интеллектуальные устройства непосредственно обмениваются информацией между собой с помощью простой транспортной инфраструктуры. Это контрастирует с традиционной телефонной сетью, в которой передача между неинтеллектуальными терминалами обеспечивается посредством сложного сетевого ядра, являющегося активной стороной любого голосового сеанса. Такое различие позволяет расширять сервисы, модифицируя подключенные к сети устройства, а не саму сеть, что требует значительно меньших инвестиций. Следующие особенности SIP позволяют оценить силу заложенных в него концепций.

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

Гибкость структуры сообщений. Текстовая структура сообщений SIP позволяет легче приспосабливать его к новым приложениям, чем существующие эквивалентные протоколы, такие как H.323.

Распределение функций между устройствами. SIP дает возможность динамически направлять запросы к различным устройствам и тем самым распределять функциональность наилучшим образом.

Согласование поддерживаемых функций. Эта особенность делает SIP очень адаптивным, поскольку формат передаваемой информации (к примеру, сообщения, аудио или/и видео) и используемые расширения протокола в случае определенного вызова могут быть предварительно согласованы между сторонами.

Разделение контента и сигнализации. В SIP маршруты сигналов и контента совершенно независимы. Они могут проходить через различные устройства и физические сети.

Ветвление. Протокол позволяет ассоциировать с одним адресом несколько устройств, так что все они (или выбранные) могут одновременно (или последовательно) участвовать в сеансе в соответствии с локальной политикой.

Эти особенности сохраняются в различных областях применения (к примеру, в телефонии и службе сообщений), что, безусловно, послужило одной из причин охотного приема SIP основными игроками в этих секторах.


Принципы работы и базовые архитектурные компоненты SIP

Как следует из названия, SIP предназначен для инициализации интерактивного сеанса связи между пользователями. Он также управляет модификациями сеансов и их завершением. В действительности SIP не определяет, что такое "сеанс", -- это описывается содержанием его сообщений. Основная часть протокола относится к наиболее сложному аспекту сеанса -- его инициа-лизации. Прежде всего требуется определить, где пребывает вызываемый пользователь в данный момент. Он может работать за компьютером дома или в офисе или быть в лаборатории, где имеется IP-телефон. Для вызова этого человека иногда требуется, чтобы все телефоны зазвонили одновременно. Более того, он может быть мобильным: один день находиться в офисе, а другой, скажем, в университете. Поэтому при поиске абонента необходимо принимать во внимание и динамическую информацию о его местонахождении.

После того как пользователь локализован, протокол начинает выполнение своей второй основной функции -- доставку описания сеанса, на который приглашен пользователь. Как уже упоминалось выше, SIP сам по себе не знает деталей сеанса. Все, что он делает, так это передает информацию о протоколе, применяемом для описания сеанса. SIP осуществляет это посредством многоцелевых расширений электронной почты (Multipurpose Internet Mail Extensions -- MIME), широко используемого набора стандартов в Web и электронной почте для описания контента (HTML, аудио, видео и т. п.). Наиболее часто протоколом для описания сеансов служит SDP. Однако с помощью SIP описание можно расширить, включив в него, в частности, согласование общих форматов сеансов.

Когда местоположение пользователя определено и описание сеанса доставлено, SIP используется, чтобы передать ответ инициатору сеанса (вызов принят, отклонен и пр.). Если вызов принят, то сеанс активируется. Впоследствии SIP может быть применен для модификации сеанса, например для добавления/удаления аудио- или видеопотоков или смены кодека. Для этого нужно просто вновь инициировать сеанс, но уже с новым описанием.

Хотя по своей архитектуре SIP является протоколом для одноранговых сетей, он состоит из логических клиентов и серверов, объединенных названием агенты пользователя (User Agents -- UA). Обычно они располагаются в пределах конечных точек, которые терминируют сигнализацию SIP. Например, типичным клиентом SIP может быть IP-телефон, ПК или КПК. Клиент агента пользователя (User Agent Client -- UAC) генерирует запрос, а сервер (User Agent Server -- UAS) отвечает на SIP-запросы. Как правило, UA объединяет оба компонента.

Маршрутизация запросов на пути между двумя UA выполняется с помощью устройств, называемых прокси-серверами. Они могут добавлять параметры к запросам, отклонять запросы, но не могут инициировать последние или отвечать положительно на какой-либо полученный запрос. Прокси передают нераспознанные сообщения транзитом без изменений. Это значит, что в сети легко реализовать новые возможности, модифицируя только агенты пользователя. Протокол SIP поддерживает еще ряд серверов. Так, сервер-регистратор (Registrar), являющийся специализированным сервером UAS, предназначен для обработки запросов REGISTER (см. ниже). SIP-устройства используют этот запрос, чтобы динамически регистрировать свое текущее местоположение. Другим специализированным UAS является сервер переадресации (Redirect Server). Отметим, что такой сервер не направляет запросы следующему серверу, а указывает агенту пользователя, с каким именно сервером нужно установить связь.

Агент пользователя, сервер-регистратор и прокси-сервер наряду с сервером DNS образуют простейшую SIP-сеть, в которой можно устанавливать связь типа точка-точка для обмена аудио- и видеоинформацией, мгновенными сообщениями и т. п.

Одной из примечательных особенностей SIP является его способность определить присутствие, т. е. найти не только место, где физически находится пользователь, но и возможность коммуникаций с ним и тип последних, например голосовая связь или мгновенные сообщения. SIP определяет статус присутствия посредством мониторинга и уведомления о событиях. Это позволяет устройству подписаться на пакет событий, который поддерживается другим устройством, и получать от него уведомление об изменениях состояния. Данный механизм реализуется с помощью сервера присутствия (Presence Server). Служба присутствия включает два различных набора клиентов. Один набор клиентов, называемых PRESENTITIES (например, производители информации), предоставляет информацию о присутствии, которая распределяется и сохраняется. Другой набор клиентов, именуемых WATCHERS (например, потребители информации), получает данные о присутствии от соответствующей службы. При реализации эти клиенты обычно объединяются, однако обсуждаются отдельно с целью их дефиниции в модели, базирующейся на функциональности.

Итак, SIP-коммуникации состоят из сообщений, которыми обмениваются устройства, используя UDP, TCP или другой транспортный протокол. Эти сообщения являются либо запросами, либо ответами и содержат набор заголовков, являющихся параметрами сообщения, и один или более (как определяет приложение) информационный блок (message body).

Один SIP-запрос и все ответы на него образуют SIP-транзакцию. Словарь запросов и ответов SIP-сообщений довольно прост. Существуют следующие запросы (или методы):
  • INVITE -- посылается SIP-устройством для инициирования вызова;
  • ACK -- направляется вызывающим устройством как окончательный ответ на принятие приглашенной стороной вызова INVITE. Это сообщение не требует ответа;
  • BYE -- посылается любой стороной для завершения сеанса;
  • OPTIONS -- используется для запроса сервера о его возможностях без установки вызова;
  • CANCEL -- направляется клиентом SIP-серверу для отказа от ожидания ответа на запрос. Бывает полезным, например, в тех случаях, когда прокси-сервер разветвил запрос, некоторые из вызываемых конечных устройств ответили и инициатор сеанса хочет отказаться от поиска других;
  • REGISTER -- посылается для регистрации адреса SIP-серверу, который будет затем направлять запросы зарегистрированному SIP-объекту.
SIP меняет акценты Интернет-коммуникацийЧто касается модели адресации SIP, то она повторяет URL. Например, если адрес электронной почты пользователя [email protected], то типичный SIP-адрес может выглядеть следующим образом: sip:[email protected]; transport=udp. Однако возможна и стандартная адресация E.164 путем внедрения в URL: [email protected]; user=phone. Рассмотрим теперь на типичном примере, как происходит установка сеанса (см. рисунок).

Пусть Client A (client_a@company_1.com) хочет установить сеанс связи с Client B (client_b@company_2.com). Для этого он посылает запрос INVITE прокси-серверу своего домена company_1.com (шаг 1). В свою очередь, прокси направляет запрос домену company_2.com (шаг 2), где тот (запрос) достигает сервера переадресации (Redirect Server). Как уже упоминалось выше, сервер переадресации не передает запрос дальше, а указывает вызывающему пользователю, с каким сервером ему надо связаться напрямую. Для этого он просматривает свою базу данных и обнаруживает, что сейчас Client B находится, например, на годичной стажировке и подключен к домену company_3.com. Поэтому сервер переадресации направляет специальный ответ прокси-серверу домена company_1.com, инструктируя его обратиться по адресу client_b@company_3.com (шаг 3). Следуя этой рекомендации, тот направляет запрос INVITE прокси-серверу домена company_3.com (шаг 4). Последний обращается к серверу присутствия (Presence Server) (шаги 5 и 6), обнаруживает, что Client B сейчас находится в отделе продаж, и посылает запрос INVITE прокси-серверу sales.company_3.com (шаг 7). Теперь прокси-сервер отдела продаж переправляет (адресом его обеспечит сервер регистрации) этот запрос компьютеру, за которым сидит Client B (шаг 8). Client B, получив приглашение, посылает свой ответ инициатору сеанса (шаги 9, 10, 11 и 12). Тот отвечает сообщением ACK (шаг 13), и сеанс устанавливается. Контент передается по определенному маршруту (шаг 14).

Конечно, не все так хорошо, как хотелось бы. Рас-пространение SIP сдерживается возможностями адресации IPv4, растущим использованием NAT и брендмауэров. Однако вряд ли индустрия откажется от столь многообещающего протокола, скорее всего, она возьмется за решение возникающих проблем.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT