Протокол инициализации сеанса (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-сообщений довольно прост. Существуют следующие запросы (или методы):
Пусть 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 и брендмауэров. Однако вряд ли индустрия откажется от столь многообещающего протокола, скорее всего, она возьмется за решение возникающих проблем.
Контент сайту призначений для осіб віком від 21 року. Переглядаючи матеріали, ви підтверджуєте свою відповідність віковим обмеженням.
Cуб'єкт у сфері онлайн-медіа; ідентифікатор медіа - R40-06029.