Как уже отмечалось в предыдущем параграфе, SIP - это текстовый протокол, прародителем которого, в известном смысле, является протокол НТТР (Hypertext Transfer Protocol). Протокол SIP унаследовал от него синтаксис и архитектуру и опирается на запросы (команды), передаваемые контроллером (Softswitch), и ответы на них. В оригинальных спецификациях SIP для запросов используется термин methods. C того времени, когда были определены упомянутые в предыдущем параграфе шесть первоначальных запросов, были приняты еще несколько запросов, которые используются как внутри оборудования, так и в виде расширений к базовой спецификации протокола, о чем будет сказано ниже в этой главе. В такой системе существует два функциональных элемента: клиент и сервер (рис. 4.1). Клиент передает запросы, в которых указывает, какого рода услугу он желает получить от сервера. Сервер принимает запросы, обрабатывает их и передает обратно ответ с указанием либо успешного выполнения запроса, либо ошибки, или обеспечивает предоставление услуги, затребованной клиентом.
|
|
/ | / | Запрос | / | ||
Клиент | Ответ | Сервер | |||
/ |
Рис. 4.1. Архитектура «клиент-сервер» |
Таким способом SIP обеспечивает управление соединением и сигнализацию, необходимые для организации мультимедийных сеансов связи, а также обеспечивает предоставление конвергентных услуг по IP-сетям. При организации и завершении мультимедийной связи SIP поддерживает:
• определение местоположения (User location) пользователя;
• определение готовности (User availability) пользователя, т.е. того, что встречная сторона готова участвовать в сеансе связи;
• определение функциональных возможностей (User capabilities) пользователей, т.е. того, какого рода информацией они могут обмениваться, и параметров этой информации;
• установление сеанса связи (Session setup), т.е. назначение параметров сеанса связи как для вызывающей, так и для вызываемой сторон;
• управление сеансом связи (Session management), включая поддержание и завершение сеанса связи, модификацию параметров сеанса и активизацию услуг.
Важно отметить, что протокол SIP является не вертикально интегрированной системой, а, скорее, компонентом, который можно использовать совместно с другими разработанными IETF протоколами Интернет, что делает его гораздо более эффективным при построении законченной мультимедийной архитектуры. Благодаря архитектуре, более эффективной, по сравнению со строительством вертикали, SIP, как правило, используется в сочетании с другими протоколами, но основное множество его функций не зависит ни от одного из этих протоколов. Проще говоря, протокол SIP не определяет услуги, но позволяет пользователям устанавливать сеансы связи и их параметры для ввода потоков пользовательской информации «в услуги» и для вывода ее «из них». SIP позволяет создавать мультимедийные конференции по упрощенному алгоритму и объединять разнородные услуги, например телефонную связь и Web-приложения, что, в частности, дает возможность пользователю, находящемуся на Web-сайте компании, связаться по те-
|
|
5. Б.С. Гольдштейн
лефону через Интернет с менеджером этой компании и получить его консультацию. Протокол SIP устанавливает сеансы, согласует требования к передаваемой/принимаемой информации, определяет местоположение пользователей и позволяет предоставлять современные интеллектуальные услуги, такие как переадресация вызова, переключение связи, предоставление идентификационной информации, обеспечение конфиденциальности связи и интерактивные услуги мгновенного обмена сообщениями через Интернет для систем мобильной связи третьего поколения.
В спецификациях протокола SIP определены четыре основных функциональных элемента, которые, в зависимости от конкретных требований, либо могут реализоваться в виде автономных компонентов, либо совмещаться на объединенной платформе.
Агенты пользователей UA (User Agents) - терминалы SIP, которые инициируют запросы, отвечают на запросы и взаимодействуют с другими агентами пользователей для организации и завершения сеансов связи. Агенты пользователей могут взаимодействовать друг с другом непосредственно; однако часто в сеанс связи бывает вовлечен один или более промежуточных серверов: прокси-серверов или серверов переадресации. Клиентская и серверная часть программного обеспечения UA названы, соответственно, клиентом агента пользователя UAC (User Agent Client) и сервером агента пользователя UAS (User Agent Server). Заметим, что сервер UAS и клиент UAC могут (но не обязаны), непосредственно взаимодействовать с пользователем, а другие клиенты и серверы SIP этого делать не могут. UAC и UAS могут быть реализованы как непосредственно в терминале пользователя, так и в программном обеспечении универсальных устройств доступа, например, мультисервисных абонентских концентраторов.
Прокси-серверы (Proxy Servers) получили свое название от английского proxy - «представитель» и обеспечивают обработку запросов, поступающих от терминалов пользователей, с целью предоставления услуг связи. Порядок обработки запроса и дальнейшие действия прокси-сервера зависят от типа запроса. Это может быть поиск и вызов пользователя, маршрутизация запроса, предоставление услуги и т.д. Как и агент пользователя, прокси-сервер тоже состоит из клиентской и серверной частей, поэтому он может принимать вызовы, инициировать собственные запросы и передавать ответы на запросы. Прокси-сервер может быть реализован совместно с сервером определения местоположения, рассматриваемым ниже, или помещаться отдельно от него, но иметь возможность связываться с ним по LDAP согласно RFC 1777 или по любому другому протоколу. Предусматривается два типа прокси-серверов: с сохранением данных о состояниях stateful и без сохранения данных о состояниях stateless. Сервер первого типа хранит в памяти историю процесса обслуживания вызова, в частности, первый поступивший запрос, который является причиной генерации одного или нескольких исходящих запросов, также запоминаемых сервером. Все запросы хранятся в памяти сервера только до окончания транзакции, т.е. до получения соответствующих ответов. Сервер stateful позволяет предоставить большее количество услуг и допускает применение упрощенных терминалов пользователей, но требует значительной вычислительной мощности. Прокси-сервер должен работать в режиме stateful при использовании для передачи сигнальной информации протокола ТСР, при работе в режиме многоадресной рассылки сигнальной информации, или при множественной рассылке запросов, когда один запрос, поступивший на прокси- сервер, передается одновременно по нескольким направлениям. Сервер stateless лишь ретранслирует запросы и ответы, которые принимает. Он требует менее быстродействующей платформы, т.к. ее производительность не тратится на контроль состояний текущих процессов обслуживания вызовов, вследствие чего сервер может обслужить большее количество пользователей. Недостатком такого режима является то, что он позволяет реализовать лишь наиболее простые услуги. Впрочем, прокси-сервер может для одних вызовов функционировать с сохранением данных о состояниях, а для других - без сохранения, но во всех случаях выполняет свои основные функции: - пересылает сообщения к агентам пользователей и предоставляет такие функции, как определение местоположения пользователей, авторизация и учет пользователей. В рассматриваемой в главе 2 эталонной архитектуре IPCC им соответствуют функция маршрутизации и функция учета;
|
|
Серверы перенаправления (Redirect servers) всегда являются серверами без сохранения данных о состояниях. Сервер перенаправления предназначен для определения текущего IP-адреса терминала вызываемого пользователя. Вызывающий пользователь посылает на сервер сообщение с известным ему адресом вызываемого пользователя, а прокси-сервер перенаправляет вызов на текущий адрес пользователя. Для реализации этой функции сервер перенаправления должен взаимодействовать с сервером определения местоположения. Сервер перенаправления не завершает обслуживание вызовов и не инициирует свои собственные запросы. Он только сообщает адрес вызываемого пользователя или прокси- сервера, и уже по этому адресу инициатор запроса передает новый запрос. Сервер перенаправления не содержит клиентскую часть программного обеспечения. Однако пользователю не обязательно связываться с каким-либо SIP-сервером, он может вызвать другого пользователя непосредственно, но при условии, что знает его точный адрес. Сценарий установления соединения в этом случае будет выглядеть следующим образом: сначала клиент получает от сервера перенаправления адрес вызываемого UA, а затем связывается прямо с ним.
|
|
Серверы регистрации местоположения пользователей (Registrars или Location servers) позволяют агентам регистрировать свое местоположение, реализуя тем самым услуги мобильности с помощью протокола SIP. О своем местоположении пользователь сообщает специальному серверу с помощью сообщения REGISTER. Возможны два режима регистрации пользователя: он может передать свой новый адрес один раз, а может регистрироваться периодически через определенные промежутки времени. Первый способ подходит для случая, когда терминал включен постоянно, и его пользователь не перемещается по сети, а второй - если терминал пользователя часто перемещается или выключается. Фактически сервер регистрации местоположения пользователя представляет собой базу адресной информации. Кроме постоянного адреса пользователя в базе данных указывается один или несколько текущих адресов. Как уже отмечалось, этот сервер может быть реализован совместно с прокси-сервером, в этом случае он называется registrar, или отдельно - тогда его называют location server, - но с возможностью связываться с прокси. В спецификациях протокола SIP сервер регистрации местоположения представлен как отдельный сетевой элемент, однако принципы его работы не регламентированы.
Резюмируя все вышесказанное, отметим, что в сети SIP присутствуют следующие основные элементы: терминалы, прокси-серверы и серверы перенаправления.