stringtranslate.com

Протокол инициирования сеанса

Протокол инициирования сеанса ( SIP ) — это протокол сигнализации, используемый для инициирования, поддержания и завершения сеансов связи , включающих голосовую связь, видеосвязь и обмен сообщениями. [1] SIP используется в интернет-телефонии , в частных телефонных системах IP, а также для звонков по мобильному телефону через LTE ( VoLTE ). [2]

Протокол определяет конкретный формат сообщений, которыми обмениваются, и последовательность коммуникаций для взаимодействия участников. SIP — это текстовый протокол , включающий в себя множество элементов протокола передачи гипертекста (HTTP) и простого протокола передачи почты (SMTP). [3] Вызов, установленный с помощью SIP, может состоять из нескольких потоков мультимедиа , но для таких приложений, как текстовые сообщения , которые обмениваются данными в качестве полезной нагрузки в сообщении SIP, отдельные потоки не требуются.

SIP работает совместно с несколькими другими протоколами, которые определяют и передают медиа-данные сеанса. Чаще всего согласование типа и параметров медиа-данных, а также настройка медиа-данных выполняются с помощью протокола описания сеанса (SDP), который передается в качестве полезной нагрузки в сообщениях SIP. SIP разработан так, чтобы быть независимым от базового протокола транспортного уровня , и может использоваться с протоколом пользовательских датаграмм (UDP), протоколом управления передачей (TCP) и протоколом передачи управления потоком (SCTP). Для безопасной передачи сообщений SIP по незащищенным сетевым каналам протокол может быть зашифрован с помощью протокола безопасности транспортного уровня (TLS). Для передачи потоков медиа-данных (голос, видео) полезная нагрузка SDP, передаваемая в сообщениях SIP, обычно использует протокол передачи в реальном времени (RTP) или защищенный протокол передачи в реальном времени (SRTP).

История

SIP был первоначально разработан Марком Хэндли , Хеннингом Шульцринном , Ив Скулер и Джонатаном Розенбергом в 1996 году для облегчения установления сеансов мультимедиа многоадресной передачи на Mbone . Протокол был стандартизирован как RFC  2543 в 1999 году. В ноябре 2000 года SIP был принят в качестве протокола сигнализации 3GPP и постоянного элемента архитектуры IP Multimedia Subsystem (IMS) для потоковых мультимедийных услуг на основе IP в сотовых сетях . В июне 2002 года спецификация была пересмотрена в RFC  3261 [4] , и с тех пор были опубликованы различные расширения и разъяснения. [5]

SIP был разработан для предоставления протокола сигнализации и установления вызова для IP-коммуникаций, поддерживающих функции обработки вызовов и возможности, присутствующие в телефонной сети общего пользования (PSTN) с целью поддержки новых мультимедийных приложений. Он был расширен для видеоконференций , потоковой передачи мультимедиа, обмена мгновенными сообщениями , информации о присутствии , передачи файлов , интернет-факса и онлайн-игр . [1] [6] [7]

Сторонники SIP выделяются тем, что уходят корнями в интернет-сообщество, а не в телекоммуникационную отрасль . SIP был стандартизирован в первую очередь Инженерной группой Интернета (IETF), в то время как другие протоколы, такие как H.323 , традиционно ассоциировались с Международным союзом электросвязи (МСЭ).

Протокол операции

Пример обмена SIP-сообщениями между двумя пользователями, Алисой и Бобом, для установления и завершения прямого медиа-сеанса.

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

SIP работает совместно с несколькими другими протоколами, которые определяют формат и кодирование медиа и которые переносят медиа после настройки вызова. Для настройки вызова тело сообщения SIP содержит блок данных Session Description Protocol (SDP), который определяет формат медиа, кодек и протокол связи с медиа. Голосовые и видеопотоки медиа обычно передаются между терминалами с использованием Real-time Transport Protocol (RTP) или Secure Real-time Transport Protocol (SRTP). [3] [8]

Каждый ресурс сети SIP, такой как пользовательские агенты, маршрутизаторы вызовов и ящики голосовой почты, идентифицируется с помощью унифицированного идентификатора ресурса (URI). Синтаксис URI соответствует общему стандартному синтаксису, который также используется в веб-сервисах и электронной почте. [9] Схема URI, используемая для SIP, — sip , и типичный SIP URI имеет форму sip:username@domainname или sip:username@hostport , где domainname требует записи DNS SRV для определения местоположения серверов для домена SIP, в то время как hostport может быть IP-адресом или полностью определенным доменным именем хоста и порта. Если требуется безопасная передача , используется схема sips . [10] [11]

SIP использует элементы дизайна, похожие на модель транзакций HTTP-запросов и ответов. [12] Каждая транзакция состоит из клиентского запроса, который вызывает определенный метод или функцию на сервере, и по крайней мере одного ответа. SIP повторно использует большинство полей заголовков, правил кодирования и кодов статуса HTTP, предоставляя читаемый текстовый формат.

SIP может передаваться несколькими протоколами транспортного уровня , включая Transmission Control Protocol (TCP), User Datagram Protocol (UDP) и Stream Control Transmission Protocol (SCTP). [13] [14] Клиенты SIP обычно используют TCP или UDP на портах 5060 или 5061 для трафика SIP к серверам и другим конечным точкам. Порт 5060 обычно используется для незашифрованного сигнального трафика, тогда как порт 5061 обычно используется для трафика, зашифрованного с помощью Transport Layer Security (TLS).

Телефонные сети на основе SIP часто реализуют функции обработки вызовов Системы сигнализации 7 (SS7), для которой существуют специальные расширения протокола SIP, хотя сами эти два протокола сильно отличаются. SS7 — это централизованный протокол, характеризующийся сложной архитектурой центральной сети и немыми конечными точками (традиционными телефонными трубками). SIP — это клиент-серверный протокол равноправных одноранговых узлов. Функции SIP реализованы в конечных точках связи, в то время как традиционная архитектура SS7 используется только между коммутационными центрами.

Сетевые элементы

Сетевые элементы, использующие протокол инициирования сеанса для связи, называются пользовательскими агентами SIP . Каждый пользовательский агент (UA) выполняет функцию клиента пользовательского агента (UAC), когда он запрашивает функцию обслуживания, и функцию сервера пользовательского агента (UAS), когда отвечает на запрос. Таким образом, любые две конечные точки SIP в принципе могут работать без какой-либо промежуточной инфраструктуры SIP. Однако по эксплуатационным причинам сети, для предоставления пользователям общедоступных услуг и для служб каталогов SIP определяет несколько конкретных типов элементов сетевого сервера. Каждый из этих элементов обслуживания также взаимодействует в рамках модели клиент-сервер, реализованной в клиентах и ​​серверах пользовательских агентов. [15]

Пользовательский агент

Пользовательский агент — это логическая конечная точка сети, которая отправляет или получает сообщения SIP и управляет сеансами SIP. Пользовательские агенты имеют клиентские и серверные компоненты. Клиент пользовательского агента (UAC) отправляет запросы SIP. Сервер пользовательского агента (UAS) получает запросы и возвращает ответ SIP. В отличие от других сетевых протоколов, которые фиксируют роли клиента и сервера, например, в HTTP, в котором веб-браузер действует только как клиент, и никогда как сервер, SIP требует, чтобы оба одноранговых узла реализовывали обе роли. Роли UAC и UAS сохраняются только на время транзакции SIP. [6]

SIP-телефон — это IP-телефон , который реализует клиентские и серверные функции пользовательского агента SIP и обеспечивает традиционные функции вызова телефона, такие как набор, ответ, отклонение, удержание вызова и перевод вызова. [16] [17] SIP-телефоны могут быть реализованы как аппаратное устройство или как программный телефон . Поскольку поставщики все чаще внедряют SIP в качестве стандартной платформы телефонии, различие между аппаратными и программными SIP-телефонами размывается, и элементы SIP внедряются в базовые функции прошивки многих устройств связи с поддержкой IP, таких как смартфоны .

В SIP, как и в HTTP, пользовательский агент может идентифицировать себя с помощью поля заголовка сообщения ( User-Agent ), содержащего текстовое описание программного обеспечения, оборудования или названия продукта. Поле пользовательского агента отправляется в сообщениях-запросах, что означает, что принимающий сервер SIP может оценить эту информацию для выполнения специфической для устройства конфигурации или активации функции. Операторы сетевых элементов SIP иногда хранят эту информацию в порталах учетных записей клиентов, [18] где она может быть полезна для диагностики проблем совместимости SIP или для отображения статуса обслуживания.

Прокси-сервер

Прокси-сервер — это сетевой сервер с компонентами UAC и UAS, который функционирует как промежуточный объект для выполнения запросов от имени других сетевых элементов. Прокси-сервер в первую очередь играет роль маршрутизации вызовов; он отправляет запросы SIP другому объекту, расположенному ближе к месту назначения. Прокси-серверы также полезны для обеспечения соблюдения политики, например, для определения того, разрешено ли пользователю совершать вызов. Прокси-сервер интерпретирует и, при необходимости, перезаписывает определенные части сообщения-запроса перед его пересылкой.

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

Перенаправить сервер

Сервер перенаправления — это сервер пользовательского агента, который генерирует ответы 3xx (перенаправление) на получаемые запросы, направляя клиента на обращение к альтернативному набору URI. Сервер перенаправления позволяет прокси-серверам направлять приглашения на сеанс SIP на внешние домены.

Регистратор

Регистрация агента пользователя SIP на SIP-регистраторе с аутентификацией.

Регистратор — это конечная точка SIP, которая предоставляет услугу определения местоположения. Он принимает запросы REGISTER, записывая адрес и другие параметры от пользовательского агента. Для последующих запросов он предоставляет существенные средства для определения возможных одноранговых узлов связи в сети. Служба определения местоположения связывает один или несколько IP-адресов с SIP URI регистрирующего агента. Несколько пользовательских агентов могут регистрироваться для одного и того же URI, в результате чего все зарегистрированные пользовательские агенты получают вызовы на URI.

Регистраторы SIP являются логическими элементами и часто располагаются вместе с прокси-серверами SIP. Для улучшения масштабируемости сети службы определения местоположения могут располагаться вместе с сервером перенаправления.

Контроллер границы сеанса

Установление сеанса через пользовательский агент, работающий в режиме back-to-back .

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

Шлюз

Шлюзы можно использовать для соединения сети SIP с другими сетями, такими как PSTN, которые используют другие протоколы или технологии.

SIP-сообщения

SIP — это текстовый протокол с синтаксисом, похожим на HTTP. Существует два различных типа сообщений SIP: запросы и ответы. Первая строка запроса содержит метод , определяющий природу запроса, и Request-URI, указывающий, куда следует отправить запрос. [19] Первая строка ответа содержит код ответа .

Запросы

Запросы инициируют функциональность протокола. Они отправляются клиентом пользовательского агента на сервер и получают ответ в виде одного или нескольких ответов SIP , которые возвращают код результата транзакции и обычно указывают на успешность, неудачу или другое состояние транзакции.

Ответы

Ответы отправляются сервером агента пользователя, указывающим результат полученного запроса. Распознаются несколько классов ответов, определяемых числовым диапазоном кодов результатов: [20]

Транзакции

Пример: UAC пользователя User1 использует транзакцию приглашения клиента для отправки начального сообщения INVITE (1). Если по истечении контролируемого таймером периода ожидания ответ не получен, UAC может решить завершить транзакцию или повторно передать INVITE. После получения ответа пользователь User1 уверен, что INVITE был доставлен надежно. UAC пользователя User1 должен затем подтвердить ответ. После доставки ACK (2) обе стороны транзакции завершены. В этом случае может быть установлен диалог. [21]

SIP определяет механизм транзакций для управления обменами между участниками и надежной доставки сообщений. Транзакция — это состояние сеанса, которое контролируется различными таймерами. Клиентские транзакции отправляют запросы, а серверные транзакции отвечают на эти запросы одним или несколькими ответами. Ответы могут включать предварительные ответы с кодом ответа в форме 1xx и один или несколько окончательных ответов (2xx – 6xx).

Транзакции далее классифицируются как приглашение или не приглашение . Транзакции приглашения отличаются тем, что они могут устанавливать длительный разговор, называемый диалогом в SIP, и поэтому включают подтверждение (ACK) любого неотказного окончательного ответа, например, 200 OK .

Мгновенный обмен сообщениями и присутствие

Протокол инициации сеанса для мгновенного обмена сообщениями и использования расширений присутствия (SIMPLE) — это набор стандартов на основе SIP для мгновенного обмена сообщениями и информации о присутствии . Протокол ретрансляции сеансов сообщений (MSRP) позволяет осуществлять сеансы мгновенного обмена сообщениями и передачу файлов.

Тестирование соответствия

Сообщество разработчиков SIP регулярно встречается на конференциях, организованных SIP Forum, для проверки совместимости реализаций SIP. [22] Язык спецификации тестов TTCN-3 , разработанный целевой группой ETSI (STF 196), используется для указания тестов соответствия для реализаций SIP. [23]

Тестирование производительности

При разработке программного обеспечения SIP или развертывании новой инфраструктуры SIP важно проверить способность серверов и сетей IP обрабатывать определенную нагрузку вызовов: количество одновременных вызовов и количество вызовов в секунду. Программное обеспечение для тестирования производительности SIP используется для моделирования трафика SIP и RTP, чтобы увидеть, стабильны ли сервер и сеть IP при нагрузке вызовов. [24] Программное обеспечение измеряет показатели производительности, такие как задержка ответа, соотношение ответ/захват , джиттер RTP и потеря пакетов , время задержки приема-передачи .

Приложения

SIP-соединение — маркетинговый термин для услуг передачи голоса по интернет-протоколу (VoIP), предлагаемых многими поставщиками услуг интернет-телефонии (ITSP). Услуга обеспечивает маршрутизацию телефонных звонков с телефонной системы частного отделения (PBX) клиента на PSTN. Такие услуги могут упростить корпоративную информационную инфраструктуру системы за счет совместного доступа в Интернет для голоса и данных и устранения стоимости телефонных цепей Basic Rate Interface (BRI) или Primary Rate Interface (PRI).

SIP-транкинг — похожий маркетинговый термин, используемый в тех случаях, когда услуга используется для упрощения телекоммуникационной инфраструктуры путем совместного использования канала доступа оператора для голосового трафика, трафика данных и интернета, при этом устраняя необходимость в каналах PRI. [25] [26]

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

SIP используется в аудио через IP для вещательных приложений, где он обеспечивает возможность взаимодействия аудиоинтерфейсов разных производителей для установления соединений друг с другом. [27]

Реализации

Национальный институт стандартов и технологий США (NIST), Отдел передовых сетевых технологий предоставляет общедоступную реализацию Java [28] , которая служит эталонной реализацией для стандарта. Реализация может работать в сценариях прокси-сервера или пользовательского агента и использовалась в многочисленных коммерческих и исследовательских проектах. Она полностью поддерживает RFC  3261 и ряд дополнительных RFC, включая RFC  6665 (уведомление о событиях) и RFC  3262 (надежные предварительные ответы).

Существует множество других коммерческих и открытых реализаций SIP. См. Список программного обеспечения SIP .

Взаимодействие SIP-ISUP

SIP-I, Session Initiation Protocol с инкапсулированным ISUP , — это протокол, используемый для создания, изменения и завершения сеансов связи на основе ISUP с использованием сетей SIP и IP. Услуги, использующие SIP-I, включают голосовую связь, видеотелефонию, факс и данные. SIP-I и SIP-T [29] — это два протокола со схожими функциями, в частности, позволяющие передавать сообщения ISUP по сетям SIP. Это сохраняет все детали, доступные в заголовке ISUP. [a] SIP-I был определен ITU-T , тогда как SIP-T был определен IETF . [ 30]

Шифрование

Проблемы безопасности звонков через общедоступный Интернет были решены путем шифрования протокола SIP для безопасной передачи . Схема URI SIPS используется для того, чтобы обязать SIP-коммуникацию защищать с помощью Transport Layer Security (TLS). URI SIPS имеют вид sips:[email protected].

Сквозное шифрование SIP возможно только при наличии прямого соединения между конечными точками связи. Хотя прямое соединение может быть установлено через Peer-to-peer SIP или через VPN между конечными точками, большинство коммуникаций SIP включают несколько переходов, причем первый переход идет от пользовательского агента к ITSP пользовательского агента . В случае с несколькими переходами SIPS защитит только первый переход; остальные переходы обычно не будут защищены с помощью TLS, и общение SIP будет небезопасным. Напротив, протокол HTTPS обеспечивает сквозную безопасность, поскольку это делается с прямым соединением и не подразумевает понятие переходов.

Медиапотоки (аудио и видео), которые являются отдельными соединениями от сигнального потока SIPS, могут быть зашифрованы с помощью SRTP. Обмен ключами для SRTP выполняется с помощью SDES ( RFC  4568) или с помощью ZRTP ( RFC  6189). При использовании SDES ключи будут передаваться через незащищенный SIP, если не используется SIPS. Можно также добавить обмен MIKEY ( RFC  3830) к SIP, чтобы определить ключи сеанса для использования с SRTP.

Смотрите также

Примечания

  1. ^ Детали ISUP важны, поскольку за последние 30 лет было реализовано множество вариантов ISUP, специфичных для разных стран, и не всегда возможно выразить все те же детали с помощью собственного сообщения SIP.

Ссылки

  1. ^ ab "Что такое SIP?". Network World . 11 мая 2004 г. Архивировано из оригинала 24 июня 2014 г.
  2. ^ "4G | ShareTechnote". www.sharetechnote.com . Получено 2023-03-09 .
  3. ^ ab Johnston, Alan B. (2004). SIP: Понимание протокола инициирования сеанса (Второе издание). Artech House. ISBN 9781580531689.
  4. ^ "Устав рабочей группы ядра SIP". Internet Engineering Task Force . 2010-12-07 . Получено 2011-01-11 .
  5. ^ "Поиск в интернет-проектах и ​​RFC". Internet Engineering Task Force .
  6. ^ ab SIP: Протокол инициирования сеанса. 2002. doi : 10.17487/RFC3261 . RFC 3261.
  7. ^ Рауз, Маргарет. «Протокол инициирования сеанса (SIP)». TechTarget .
  8. ^ Колл, Эрик (2016). Телекоммуникации 101. Институт обучения Teracom. стр. 77–79. ISBN 9781894887038.
  9. ^ Унифицированные идентификаторы ресурсов (URI): общий синтаксис. 2005. doi : 10.17487/RFC3986 . RFC 3986.
  10. ^ Миикка Пойкселькя и др. 2004.
  11. ^ Брайан Рид и Стив Гудман 2015.
  12. ^ "SIP: Протокол инициирования сеанса". IETF .
  13. ^ Протокол передачи управления потоком (SCTP) как транспорт для протокола инициирования сеанса (SIP). 2005. doi : 10.17487/RFC4168 . RFC 4168.
  14. ^ Монтазеролгхем, Ахмадреза; Хоссейни Сено, Сейед Амин; Ягмаи, Мохаммад Хоссейн; Таштариан, Фарзад (2016-06-01). «Механизм смягчения перегрузки для сетей VoIP: подход транспортного уровня, основанный на управлении ресурсами». Transactions on Emerging Telecommunications Technologies . 27 (6): 857–873. doi :10.1002/ett.3038. ISSN  2161-3915. S2CID  27215205.
  15. ^ Монтазеролгхем, А.; Могаддам, МХИ; Леон-Гарсия, А. (март 2018 г.). «OpenSIP: к программно-определяемым сетям SIP». Труды IEEE по управлению сетями и услугами . 15 (1): 184–199. arXiv : 1709.01320 . doi : 10.1109/TNSM.2017.2741258. ISSN  1932-4537. S2CID  3873601.
  16. ^ Azzedine (2006). Справочник алгоритмов для беспроводных сетей и мобильных вычислений. CRC Press. стр. 774. ISBN 978-1-58488-465-1.
  17. ^ Портер, Томас; Энди Змолек; Ян Канклирц; Антонио Росела (2006). Практическая безопасность VoIP. Syngress. С. 76–77. ISBN 978-1-59749-060-3.
  18. ^ "User-Agents We Have Known". VoIP User. Архивировано из оригинала 2011-07-16.
  19. ^ Столлингс, стр.214
  20. ^ Столлингс, стр. 216-217
  21. ^ Райт, Джеймс. "SIP - Введение" (PDF) . Konnetic . Получено 2011-01-11 .
  22. ^ "SIPit Wiki" . Получено 2017-10-07 .
  23. ^ Опыт использования TTCN-3 для тестирования SIP и OSP (PDF) , заархивировано из оригинала (PDF) 30 марта 2014 г.
  24. ^ «Производительность и стресс-тестирование SIP-серверов, клиентов и IP-сетей». StarTrinity. 2016-08-13.
  25. ^ "AT&T обсуждает архитектуру пиринговой связи SIP". sip-trunking.tmcnet.com . Получено 20.03.2017 .
  26. ^ "Из конференции и выставки IIT VoIP: слайды PowerPoint о транспорте SIP от AT&T". HD Voice News . 2010-10-19 . Получено 2017-03-20 .
  27. ^ Йонссон, Ларс; Матиас Куаншон (2008). "Потоковая передача аудиоматериалов по IP" (PDF) . Технический обзор EBU . Получено 27.12.2010 .
  28. ^ "Проект JAIN SIP". GitHub . Получено 2024-06-24 .
  29. ^ Контекст и архитектура SIP-T. Сентябрь 2002 г. doi : 10.17487/RFC3372 . RFC 3372.
  30. ^ "Почему SIP-I? Рекомендация по протоколу коммутации ядра" (PDF) . Архивировано из оригинала (PDF) 2012-03-17.

Внешние ссылки