Протокол SIP
- Общие принципы и возможности протокола SIP
1.1 Принципы протокола SIP
SIP — протокол передачи данных, описывающий способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым (IP-телефония, видео и аудио конференции, мгновенные сообщения, онлайн-игры). [4]
Основной особенностью протокола SIP является его независимость от транспортных технологий. В качестве транспорта могут выступить такие протоколы как Х.25, Frame Relay, IPX и др. Структура сообщений SIP не зависит от избранной транспортной технологии.
Протокол инициирования сеансов — Session Initiation Protocol (SIP) протокол прикладного уровня и предназначается для организации, модификации и завершения сеансов связи: мультимедийных конференций, телефонных соединений и распределения мультимедийной информации. [5]
Пользователи могут принимать участие в существующих сеансах связи, приглашать иных пользователей и быть приглашенными ими к новому сеансу связи. Приглашения могут быть адресованы определенному пользователю, группе пользователей или всем пользователям. Протокол SIP был разработан комитетом IETF (Internet Engineering Task Force), а спецификации протокола представлены в документе RFC 2543. В основу протокола заложены следующие основы:
Персональная мобильность пользователей. Пользователи могут передвигаться без ограничений в пределах сети, в следствие этого услуги связи обязаны предоставляться им в любом месте этой сети. Пользователю присваивается уникальный идентификатор, а сеть предоставляет ему услуги связи вне зависимости от того, где он в конкретный момент времени располагается. [4]
Для этого пользователь с помощью специального сообщения информирует сеть о своих перемещениях.
Расширяемость протокола характеризуется вероятностью дополнения протокола функциями при внедрении новых услуг и его адаптации к работе с разными приложениями. Расширение функций протокола SIP может быть выполнено за счет введения дополнительных заголовков и типов сообщений.
1.2 SIP в стеке протоколов
Структура сообщений SIP не зависит от выбранной транспортной технологии.
Сигнальные сообщения SIP могут переноситься не только протоколом транспортного уровня UDP, но и протоколом ТСР (рисунок 1.1).
Рис. 1. Стек протоколов
В свою очередь, протокол ТСР упрощает работу с межсетевыми экранами, а ещё гарантирует надежную доставку данных. При использовании протокола ТСР всевозможные сообщения, относящиеся к определенному вызову, могут передаваться по одному TCP-соединению, или для каждого запроса и ответа на него может открываться свое TCP-соединение.
1.3 Адресация в сетях SIP
Для организации взаимодействия с существующими приложениями IP-сетей и для обеспечивания мобильности пользователей протокол SIP применяет адрес, такой же, как и у электронной почты.
В качестве адресов рабочих станций применяются особые универсальные указатели ресурсов — URL (Universal Resource Locators), именуемые SIP URL. SIP-адреса различаются на четыре типа:
Таким образом, адрес включает в себя две части. Первая часть — это имя пользователя, зарегистрированного в домене или на станции. Если вторая половина адреса определяет какой-нибудь шлюз, то в первой пишется телефонный номер пользователя. Во второй части адреса указывается имя домена, рабочей станции или шлюза. Для определения IP-адреса устройства нужно запросить данные из службы доменных имен — Domain Name Service (DNS). Если же во второй части SIP-адреса находиться IP-адрес, то с рабочей станцией возможно установить связь напрямую. [5]
В начале SIP адреса ставится текст “sip:”, указывающее, собственно, что это как раз SIP-адрес, т. к. есть и другие (например, “tel:”). Ниже приводятся примеры SIP-адресов:
1.4 Сообщения протокола SIP
1.4.1 Общая структура SIP-сообщений
Согласно архитектуре «клиент — сервер» все сообщения разделяются на запросы, передаваемые от клиента к серверу, и нааответы сервера клиенту.
Все сообщения протокола SIP (запросы и ответы), предпологают собой очередность текстовых строк, закодированных в соответствии с RFC 2279. Структура и синтаксис сообщений SIP, как уже говорилось раньше, такие же как и используемые в протоколе НТТР. На рисунке 1.2 представлена структура сообщения.
Рис. 2. Структура сообщений протокола SIP
Стартовая строка является начальной строкой каждого SIP-сообщения. В случае если сообщение — запрос, в данной строке указываются тип запроса, адресат и версии протокола. А если сообщение является ответом на запрос, в стартовой строке указываются версия протокола, тип ответа и его краткая расшифровка, предназначенная только для пользователя.
Заголовки сообщений содержат сведения об отправителе, адресате, пути следования и др., в общем, переносят информацию, необходимую для обслуживания данного сообщения. О типе заголовка можно узнать по его имени. Оно не зависит от регистра (т. е. буквы могут быть прописные и строчные), но обычно имя пишут с большой буквы, за которой идут строчные.
Сообщения протокола SIP могут содержать так называемое тело сообщения. В запросах ACK, INVITE и OPTIONS тело сообщения содержит описание сеансов связи, например, в формате протокола SDP. Запрос BYE тела сообщения не содержит, а ситуация с запросом REGISTER подлежит дальнейшему изучению. С ответами дело обстоит иначе: любые ответы могут содержать тело сообщения, но содержимое тела в них бывает разным.
1.4.2 Заголовки сообщений
В протоколе SIP определено четыре вида заголовков:
– Общие заголовки, присутствующие в запросах и ответах;
– Заголовки содержания, переносят информацию о размере тела сообщения или об источнике запроса (начинаются со слова «Content»);
– Заголовки запросов, передающие дополнительную информацию о запросе;
– Заголовки ответов, передающие дополнительную информацию об ответе.
Заголовок состоит из названия, после которого, отделенное двоеточием, следует значение заголовка. В поле значения находиться передаваемые данные. Следует отметить, что если сервер принимает сообщения с заголовками, которые ему не известны, то эти заголовки игнорируются.
Литература:
- Величко В. В. Основы инфокоммуникационных технологий: учебное пособие / В. В. Величко, Г. П. Катунин, В. П. Шувалов. — Москва: Горячая линия–Телеком, 2009. 712 с.
- RFC 2543. SIP: Session Initiation Protocol. M. Handley, H. Schulzrinne, E. Schooler, J. Rosenberg. March 1999
- RFC 3261. SIP: Session Initiation Protocol. M. Handley, H. Schulzrinne, E. Schooler, J. Rosenberg. 2002
- Multicom, Asterisk [Электронный ресурс]. URL: http://www.mcm.ru/ip_ats_asterisk (дата обращения: 22.10.2018)
- OMG. OMG Unified Modeling Language (OMG UML), Superstructure, Object Management Group, 2016.
- R. Gotzhein, F. Khendek:Conception avec Micro-Protocoles, Colloque Francophone surl’Ingenierie des Protocoles (CFIP’2002), Montreal, Canada, May 27–30, 2002
- ITU-T. Extended Object Definition Language (eODL): Techniques for distributed software component development — Conceptual foundation, notations and technology mappings. ITU-T Recommendation Z.130, International Telecommunication Union — Telecommunication Standardization Sector, 2003
- ISO. Information processing systems — Open Systems Interconnection — Estelle: A formal description technique based on an extended state transition model. ISO 9074:1989, International Organization for Standardization, 1989.
- TommasoBolognesi and Ed Brinksma. Introduction to the ISO Specification Language LOTOS. ComputerNetworksand ISDN Systems, 1987. 44
- Протоколы транспортного уровня UDP, TCP и SCTP: достоинства и недостатки / А. Лейкин // Первая миля. — 2013. — № 5.
- ITU-T Recommendation Z.100 (11/99):Specification and Description Language (SDL), International Telecommunication Union (ITU), 1999
- В. Гойхман, А. Савельева. Аналитический обзор протоколов Интернета вещей. // Технологии и средства связи. — 2016. № 4. С. 32–37
- Гольдштейн, Б. С. Сети связи пост-NGN / Б. С. Гольдштейн, А. Е. Кучерявый. — СПб.: БХВ, 2013.