SIP-протокол: описание
Session Initiation Protocol (SIP) представляет собой протокол для сигнализации и управления мультимедийными сеансами связи. Наиболее распространённые области применения в интернет-телефонии – для передачи голоса и осуществления видеозвонков, а также обмена мгновенными сообщениями по сетям IP (Internet Protocol).
Он определяет сообщения, которые посылаются между конечными точками и регулируют создание, прекращение и другие существенные элементы вызова. Протокол SIP, описание которого представлено выше, может быть использован для создания, модификации и завершения сеансов, состоящих из одного или нескольких потоков мультимедийных данных. Он представляет собой протокол прикладного уровня. Разработанный для того, чтобы быть независимым от основного транспортного слоя. Другими словами, это протокол на основе текста, включающий в себя множество элементов HTTP (Hypertext Transfer) и Simple Mail Transfer Protocol (SMTP).
SIP-протокол – что это такое?
SIP работает совместно с несколькими другими протоколами прикладного уровня, которые идентифицируют и передают мультимедийные сессии. Выявление и согласование медийных данных достигается совместно с Session Description Protocol (SDP). Для передачи мультимедийных потоков – голоса, видео – он обычно использует транспортный протокол реального времени (RTP) или режим Secure (SRTP). Для безопасной передачи сообщений SIP может быть зашифрован с помощью Transport Layer Security (TLS).
История разработки
SIP-протокол был первоначально разработан группой специалистов в 1996 году. Он был стандартизован в RFC 2543 в 1999 году (SIP 1.0). В ноябре 2000 года он был принят в качестве сигнального протокола 3 GPP и постоянного элемента IP-архитектуры Multimedia Subsystem (IMS) для потоковых мультимедийных услуг на базе IP в системах сотовой связи. Последняя версия (SIP 2.0) в спецификации RFC 3261 была выпущена в июне 2002 года. С определёнными расширениями и уточнениями она используется и в наше время.
Несмотря на то что первоначально SIP-протокол был разработан на основе голосовых сервисов. Сегодня он поддерживает широкий спектр приложений, включая видеоконференции, потоковые мультимедиа, обмен мгновенными сообщениями, передачу файлов и факсов через IP и онлайн-игры.
Протокол SIP – описание и операции
Session Initiation Protocol не зависит от основного транспортного протокола. Он работает на основе Transmission Control Protocol (TCP), пользовательского Datagram Protocol (UDP) или протокола управления передачей потока (SCTP). Он может быть использован как для передачи данных между двумя сторонами (одноадресной рассылки), так и для многоадресной сессии.
В нём есть элементы дизайна, аналогичные модели запроса транзакции HTTP. Каждая подобная операция состоит из запроса клиента, что вызывает конкретный метод или функцию на сервере, и по меньшей мере одного ответа. SIP-протокол повторно использует большинство полей заголовка, правил кодирования и кодов статуса HTTP, обеспечивая читаемый текстовый формат.
Каждый ресурс сети Session Initiation Protocol – агент пользователя или ящик голосовой почты – распознаётся с помощью идентификатора распределения ресурса (URI), функционирующего на основе общего стандартного синтаксиса, который также используется в веб-сервисах и электронной почте. Схема URI, которая используется для SIP, имеет вид логической цепочки: имя пользователя: пароль @ хост: порт.
Политика безопасности
Если требуется безопасная передача данных, схема предписывает, что каждый из элементов сети, по которому перенаправляется запрос до целевого домена, должен быть обеспечен Transport Layer Security (TLS). Последний шаг от прокси-сервера к целевому домену при этом обязан функционировать в соответствии с местными настройками по безопасности. TLS защищает от злоумышленников, которые пытаются перехватить данные в момент их отправки. Но она не обеспечивает реальную безопасность до конца и не может предотвратить слежение и кражу информации. Как же SIP-протокол, порты которого должны быть надёжно соединены, работает с другими службами сети?
Он работает совместно с несколькими другими протоколами и участвует только в части сигнализации сеанса связи. SIP-клиенты, как правило, используют TCP или UDP с номерами портов 5060 или 5061 для подключения к SIP-серверам и другим конечным точкам SIP. Порт 5060 обычно используется для незашифрованного сигнального трафика, тогда как порт 5061 тесно «дружит» с Transport Layer Security (TLS).
Для чего используется?
Чтобы наиболее точно ответить на вопрос «SIP-протокол – что это?», следует понять, для чего он применяется. Используется он обычно в настройке и передаче голосовых или видеозвонков. Он позволяет изменять существующие вызовы. Модификация может включать изменение адресов или портов, приглашение в разговор большего числа участников, добавление или удаление потоков мультимедийных данных. SIP также нашёл применение в приложениях обмена сообщениями, а также в сервисах подписки на события и уведомления.
Набор из SIP-правил, связанных с Internet Engineering Task Force (IETF), определяет инструкцию для таких применений. Голосовые и видеопотоковые сообщения в приложениях переносятся на другой протокол прикладной программы в режиме реального времени Transport Protocol (RTP). Параметры – номера портов, протоколы, кодеки – для этих медиа потоков определены и согласованы с использованием протокола описания сеанса (SDP), которое перемещается в теле пакета Session Initiation Protocol (например, протокол SIP T).
Основная перспектива развития протокола состоит в том, что он должен в будущем обеспечить установку сигнализации и вызова для IP-коммуникаций на основах, которые смогут поддерживать супернабор функций обработки вызовов и опций, присутствующих в коммутируемой телефонной сети общего пользования (PSTN). Он сам по себе не определяет их. Точнее, он регулирует лишь настройки вызова и сигнализации. Все действия, которые направлены на выполнение подобных телефонных операций (т. е. набор номера, ответные рингбэктоны или сигнал занятости), выполняются прокси-серверами и агентами пользователей. Их внедрение и терминология различна в разных странах мира, но действуют они по одному принципу.
Значение в телефонной связи
Телефонные сети с поддержкой SIP могут также осуществлять многие из более продвинутых функций обработки вызовов, присутствующих в Signaling System 7 (SS7). Хотя оба этих протокола весьма различны. SS7 представляет собой централизованный протокол. Он характеризуется сложной центральной сетевой архитектурой и «тупыми» конечными точками (традиционные телефонные аппараты). SIP является протоколом типа «клиент-сервер». Однако большинство устройств с поддержкой Session Initiation Protocol могут выполнять как роль клиента, так и сервера. В общем, инициатором сеанса выступает клиент, а получатель вызова выполняет функцию сервера. Таким образом, функции SIP реализованы в сообщающихся конечных точках, вопреки традиционным возможностям SS7, которые реализуются в сети.
SIP принципиально отличается тем, что эта технология развивается в сфере IT, а не в телекоммуникационной отрасли. SIP-протокол стандартизирован и определяется главным образом IETF, в то время как другие (например, H.323) традиционно ассоциируются с Международным союзом электросвязи (МСЭ).
Сетевые элементы
SIP определяет агентов пользователя, а также несколько типов сетевых элементов сервера. Две конечные точки SIP могут взаимодействовать без какой-либо промежуточной инфраструктуры. Тем не менее этот подход часто оказывается непрактичен для государственной связи, которая нуждается в сервисе каталогов для поиска доступных узлов в сети. SIP-протокол register не может обеспечить такой функциональности.
Агент пользователя
Агент пользователя SIP (UA) представляет собой логическую сеть конечных точек. Они используются для создания или получения сообщений и тем самым управляют SIP-сеансом. SIP-UA может выполнять роль клиента агента пользователя (UAC), который посылает запросы SIP, а также его сервера (UAS), что принимает запросы и возвращает ответ SIP. Такой контроль учётных записей и UAS осуществляется только в течение транзакции SIP.
Телефония
SIP-телефония, по сути, является IP-телефонией, которая реализует клиентские и серверные функции пользователя SIP-агента. Кроме того, она обеспечивает традиционные опции телефонного вызова – набор номера, ответ, отклонение, удержание/снятие и переадресацию вызова.
SIP-телефоны могут быть реализованы в виде аппаратного устройства либо в качестве софтфона. Поскольку производители всё чаще используют этот протокол в качестве стандартной платформы телефонии (в последние годы – посредством 4G), различие между аппаратной и программной основах SIP-телефонов остаются размытыми. Кроме того, элементы Session Initiation Protocol сегодня реализованы в основных функциях встроенного программного обеспечения многих IP-совместимых устройств. Примерами могут служить многие устройства от Nokia и BlackBerry, а SIP-протокол на Android в настоящее время является незаменимым сервисом.
В SIP, как в HTTP, агент пользователя может идентифицировать себя с помощью сообщения поля заголовка User-Agent, содержащего текстовое описание программного обеспечения/аппаратных средств/наименований продукции. Поле агента пользователя передаётся в сообщениях запроса. Это означает, что принимающий сервер SIP может видеть эту информацию. Сетевые элементы Session Initiation Protocol иногда могут хранить эту информацию. И это может быть полезным при диагностике проблем совместимости.