Межстанционные протоколы h323 и sip. Протоколы H.323

24.04.2019 Разное

Игорь Масленников ,
директор по развитию бизнеса компании CompTek
[email protected]

Короткая, но богатая событиями история развития IP-телефонии привела к тому, что сегодня в реальных сетях VoIP сосуществуют и конкурируют между собой три основных семейства протоколов - H.323, SIP и MGCP. Протоколы всех трех перечисленных семейств регламентируют управление мультимедиа-вызовами и передачу медиа-трафика в IP-сетях, но при этом реализуют три различных подхода к построению систем телефонной сигнализации. Попробуем разобраться, почему сложилась такая ситуация, что представляют собой эти протоколы и каковы перспективы развития каждого из них.

Исторически первый и самый распространенный в настоящее время - это введенный Международным союзом электросвязи (МСЭ) набор рекомендаций Н.323 (для простоты будем называть его протоколом). Н.323 стал плодом деятельности разработчиков протоколов мультимедийной связи в сетях ISDN (H.320). Соответствующие работы велись еще c начала 90-х годов, когда никакой IP-телефонии и в помине не было. Первая версия этого протокола была принята МСЭ в 1996 г. и по сути была попыткой перенести телефонную сигнализацию ISDN Q.931 на IP-соединения, т. е. как бы "наложить" традиционную телефонию на сети передачи данных. Рекомендации H.323 достаточно подробно описывают способы организации мультимедийных конференций, охватывая сервисы передачи голоса, видео и компьютерных данных в пакетных сетях с негарантированной доставкой. К настоящему времени принята уже четвертая версия этого набора рекомендаций. К основным компонентам набора относятся описанные ниже протоколы.

H.225 - полный аналог протокола Q.931 в сетях ISDN; описывает процесс установления, поддержки и завершения соединения. Обмен сообщениями происходит по протоколу TCP.

RAS (Registration, Admission, Status) - отвечает за регистрацию устройств в сети, контроль доступа к ресурсам, контроль полосы пропускания, необходимой для сеанса связи, и контроль состояния устройств в сети. Работает по протоколу UDP.

H.245 - отвечает за обмен информацией, необходимой для согласования параметров логических каналов для передачи медиа-потоков, т. е. собственно голоса или видео. Сюда входит, к примеру, согласование кодеков, номеров UDP-портов и т. д. Обмен происходит по протоколу TCP.

H.450.x (появившийся в четвертой версии H.323) - отвечает за обеспечение таких дополнительных или интеллектуальных функций, как Hold, Transfer и т. д.

Архитектура H.323 (рис. 1) весьма проста и состоит всего из четырех функциональных компонентов, ни один из которых не является обязательным.

Рис. 1. Архитектура Н.323.

Терминал (H.323 Terminal) - абонентское устройство, способное обеспечивать связь (голосовую, видео- и т. д.) с другими терминалами, шлюзами или устройствами многопользовательских конференций.

Шлюз (H.323 Gateway) - центральное понятие сегодняшней IP-телефонии. Данное устройство обеспечивает взаимное сопряжение телефонной сети с IP-сетью. При этом предоставляется поддержка разных протоколов и интерфейсов сетей обоих типов. Если выход в телефонную сеть не требуется, то данный компонент не нужен, а терминалы могут связываться друг с другом напрямую.

Привратник (H.323 Gatekeeper, GK) - управляющий элемент, "интеллект" H.323 сети, обеспечивающий ее масштабируемость, централизацию управления и настроек, а также трансляцию телефонных префиксов и идентификаторов (H.323 ID) в IP-адреса шлюзов или H.323 терминалов. Кроме того, привратник отвечает за управление доступом (Admission Сontrol) при регистрации шлюзов и терминалов, авторизацию звонков (Call Admission Control), управление полосой пропускания и маршрутизацию вызовов. Привратник управляет подчиненной ему частью сети (зоной) через RAS - протокол общения шлюзов с ним. Предусмотрено объединение привратников в группы, управлять которыми можно с помощью выделенного привратника - Directory Gatekeeper.

Устройство многопользовательских конференций (H.323 Multipoint Conference Unit, MCU) - управляет проведением многопользовательских конференций, согласует параметры соединения всех участников в режиме централизованной, децентрализованной или комбинированной конференции. Возможно переключение или смешивание медиа-потоков.

Обмен сообщениями между компонентами сети H.323 происходит в двоичном формате (ASN.1), для анализа которого нужен транслятор из двоичного формата в текстовый (ASN parser). Что же касается способов адресации, то в рекомендациях H.323 на этот счет определено несколько вариантов:

  • телефонные номера в формате E.164, т. е. только символы из набора "0123456789#*,";
  • H.323-идентификатор (H323-ID) - произвольный набор символов Unicode;
  • универсальный идентификатор ресурса в формате URL (URL-ID);
  • IP-адрес с номером порта, например, 10.2.3.4:1720;
  • адрес электронной почты (Email-ID).

В наиболее общей форме сценарий соединения по протоколу H.323 выглядит как ряд последовательных шагов (рис. 2). Вначале для установления соединения терминал обнаруживает привратника и регистрируется у него по протоколу RAS. Затем происходит установление сигнального канала по протоколам RAS и H.225. На следующем этапе выполняется согласование параметров оборудования, обмен информацией о его функциональных возможностях и открытие логических каналов по протоколу H.245. Только после этого происходит передача медиа-трафика по протоколам RTP/RTCP, а по ее окончании - завершение соединения.

Протокол SIP

Следующий по распространенности протокол IP-телефонии называется SIP (Session Initiation Protocol); он описан в рекомендациях RFC 2543. SIP регламентирует установление и завершение мультимедийных сессий - сеансов связи, в ходе которых пользователи могут говорить друг с другом, обмениваться видеоматериалами и текстом, совместно работать над приложениями и т. д. SIP и сопутствующие ему протоколы родились и развиваются в рамках IETF - главного органа стандартизации Интернета. Первая версия протокола SIP была принята в марте 1999 г., на три года позже, чем H.323, но благодаря интенсивному развитию этого направления сегодня набор рекомендаций RFC (базовых официальных документов IETF), имеющих отношение к SIP-архитектуре, насчитывает десятки, если не сотни документов.

SIP очень похож на протокол HTTP, поскольку разрабатывался по образу и подобию широко известных спецификаций HTTP и SMTP. По сути это клиент-серверный протокол, работа которого состоит из череды запросов и ответов, причем все SIP-заголовки передаются в формате ASCII-текста, а потому легко читаются. Наверняка коды возврата 200 (OK), а особенно 404 (Not found) хорошо знакомы всем пользователям Интернета. SIP позволяет использовать логическую адресацию (URL) на базе протокола TCP или UDP. Проще всего в качестве адреса в сети SIP задавать адреса электронной почты, к примеру, sip:[email protected] - это самый естественный URL, адекватно понимаемый SIP. При этом допускается применение разнообразных параметров, определяющих функциональность SIP-адреса или тип протокола связи. Например, можно указать, что соединение осуществляется с обычным телефонным номером сети общего пользования - sip:tel:+70957852525, и дополнить его добавочным номером postd=pp521, или определить параметры модемной связи - modem:+70957852526;type=v32b?7e1;type=v110.

SIP имеет несколько комплементарных протоколов, которые служат для реализации дополнительных возможностей. Наиболее важный из них - SDP (Session Description Protocol, RFC 2327), протокол согласования таких параметров сеанса связи, как виды кодеков, номера UDP-портов и т. д. SDP обеспечивает изменение параметров сеанса связи "на ходу", во время сеанса. Перенос сообщений SDP основан на протоколе Session Announcement Protocol (SAP, RFC 2974).

Другой пример комплементарного протокола - SIMPLE (SIP for Instant Messaging and Presence Levering Extension). Фактически это расширение SIP, служащее для предоставления информации о событиях (presence) и для рассылки "мгновенных" сообщений (instant messaging).

Следует также упомянуть SIP-T (Trunk) - протокол переноса сообщений SS7 в виде MIME-объектов между контроллерами сигнализации, а также SIGTRAN (Signaling Transport) - протокол переноса сообщений сигнализации SS7 через IP-сеть.

Архитектура SIP (рис. 3) также очень проста и состоит из нескольких необязательных компонентов.

Рис. 3. Архитектура SIP.

Клиент SIP (SIP user agent) - может быть представлен как устройством (IP-телефон, шлюз или другой пользовательский терминал), так и программным приложением для ПК, PDA и т. д. Обычно SIP-клиент содержит и клиентскую, и серверную часть (User Agent Client, или UAC, и User Agent Server, или UAS). Основные функции данного компонента - инициирование и завершение вызовов.

Прокси-сервер SIP - управляет маршрутизацией вызовов и работой приложения. Прокси-сервер не может инициировать или терминировать вызовы.

Redirect-сервер SIP - перенаправляет звонки согласно заданным условиям.

Сервер регистрации SIP (registrar/location) - осуществляет регистрацию пользователей и ведет базу соответствия имен пользователей их адресам, телефонным номерам и т. д.

Еще один важный компонент реальных SIP-сетей, хотя и не входящий формально в архитектуру SIP, - Back-to-Back User Agent (B2BUA). Это своеобразный сервер, представляющий собой два соединенных друг с другом SIP-клиента и поэтому способный инициировать и завершать вызовы.

Из этих компонентов, как из функциональных "кирпичиков", можно строить сети VoIP любой топологии, сложности и масштаба, вплоть до сетей, полностью замещающих функции современных АТС. Можно также создавать совершенно новые сервисы - интеграцию Интернет- и бизнес-приложений, программируемые службы, многоадресный поиск абонента, мультимедийные сервисы, уведомления о событиях и т. д.

В наиболее общей форме сценарий соединения по протоколу SIP с участием прокси-сервера показан на рис. 4. Абонент посылает на прокси-сервер запрос на соединение, отправляя сообщение Invite. Прокси-сервер возвращает сообщение Trying и передает сообщение Invite вызываемому абоненту. Вызываемая сторона отвечает сообщением Ringing, которое прокси-сервер пересылает вызывающей стороне. После того как вызываемый абонент снимет трубку, вызывающей стороне отправляется сообщение ОК, которое транслируется прокси-сервером. Вызываемому абоненту возвращается подтверждающее сообщение Ack.

C этого момента соединение считается установленным и начинается обмен медиа-трафиком по протоколам RTP/RTCP. Сторона, желающая завершить соединение, посылает сообщение Bye, и после получения подтверждающего ОК соединение разрывается.

Этот сценарий очень прост, в нем не участвуют никакие другие серверы (Redirection, Registrar, Location), но он дает представление о схеме взаимодействия функциональных элементов SIP-сети.

Протокол MGCP

Последний из рассматриваемых протоколов IP-телефонии - MGCP (Media Gateway Control Protocol). Точнее, речь здесь идет не об одном протоколе, а о целой группе - SGCP, IPDC, MGCP, MEGACO, H.248. Эти спецификации не только очень схожи концептуально, но и являются "близкими родственниками".

История формирования MGCP началась с создания двух протоколов - SGCP (Simple Gateway Control Protocol, разработка Bellcore и Cisco Systems) и IPDC (Internet Protocol for Device Control, разрабатывался компанией Level 3 при участии многих производителей). Затем SGCP и IPDC были объединены в один протокол, получивший название MGCP. В дальнейшем эволюция MGCP привела к появлению протоколов MEGACO (в рамках IETF) и H.248 (в рамках МСЭ).

Первая версия протокола MGCP (RFC 2705) датирована октябрем 1999 г. Интересно отметить, что MGCP - единственный из трех описываемых здесь протоколов, в работе над которым IETF и МСЭ сотрудничают; именно в результате этого взаимодействия и были созданы протоколы MEGACO и H.248. В то же время существуют и другие реализации MGCP-подобных протоколов, например, фирменный протокол Cisco Systems SSCP (Skinny Station Control Protocol), с помощью которого УАТС Cisco Call Manager управляет IP-телефонами.

Основная идея MGCP очень проста. Она состоит в том, что управление сигнализацией (Call Control) сосредоточено на центральном управляющем устройстве, называемом контроллером сигнализаций (Call Agent, CA), и полностью отделено от медиа-потоков (bearer). Эти потоки обрабатываются "тупыми" шлюзами или абонентскими терминалами, которые способны исполнять лишь ограниченный набор команд, исходящих от управляющего устройства. Архитектура протокола MGCP-сети также очень проста (рис. 5), в ней выделяются всего два функциональных компонента. Первый может быть представлен шлюзом (Media Gateway, MG) или IP-телефоном, а второй - устройством управления вызовами, которое может называться контроллером сигнализаций (CA), контроллером шлюза (Media Gateway Controller, MGC) или программным контроллером (Softswitch, SS). Иногда контроллер сигнализаций представляют в виде двух компонентов - собственно контроллера (Call Agent), выполняющего функции управления шлюзами, и шлюза сигнализации (Signaling Gateway), обеспечивающего обмен сигнальной информацией и согласование между традиционной телефонной сетью и сетью IP.

Рис. 5. Архитектура MGCP.

Контроллеры обмениваются со шлюзами (или IP-телефонами) данными в простом текстовом формате (в случае H.248 возможен и бинарный обмен), а функциональное назначение каждого шлюза определяется набором команд, которые он "понимает". Манипулируя наборами команд, можно получать специализированные шлюзы: транковые (Trunking gateways, TGW), абонентские (Residential gateways, RGW), шлюзы доступа (Access gateways, AGW) и т. д.

Контроллер сигнализаций CA воспринимает сеть как набор двух логических элементов - устройств (end-points) и соединений (connections) между ними. Устройства могут быть физическими (например, IP-телефоны или линии на шлюзах) или виртуальными (например, линии к серверам голосовых сообщений). Соединения могут быть ориентированы на передачу голоса, факс-сообщений или данных. Управление этими элементами, т. е. организация соединений между устройствами, происходит путем посылки команд в виде текстовых (ASCII) сообщений по протоколу UDP - при этом может использоваться уже знакомый нам протокол SDP. Как правило, управляющие воздействия контроллера СА инициируются какими-то событиями (events).

Простейший сценарий соединения в концепции MGCP (рис. 6) будет выглядеть следующим образом. Пользователь телефона, подключенного к MGCP-шлюзу, снимает трубку, после чего шлюз сообщает контроллеру об этом событии, а СА дает команду шлюзу включить в телефонную линию сигнал готовности (dial-ton). Теперь пользователь слышит в трубке непрерывный гудок. Набор телефонного номера - тоже последовательность событий для контроллера. Анализируя эти события, СА может установить соединение с другим абонентом в IP-сети или в телефонной сети. Кстати, централизованная обработка сигнализации дает возможность контроллеру прозрачно транслировать сигнализацию SS7 или ISDN из телефонной сети в IP-сеть и, наоборот, получать соответствующие сигнальные сообщения, упакованные в IP-пакеты, а затем анализировать их и манипулировать голосовыми каналами на шлюзах.

Резюме

Сравнивая "биографические данные" и функциональные особенности трех видов протоколов (см. таблицу), мы видим, что их различия обусловлены историческими причинами, в частности, изменениями представлений о пути развития телекоммуникаций в разное время. При этом H.323 - это технологически устоявшийся, широко распространенный протокол IP-телефонии для операторских сетей и межоператорского обмена, можно сказать, "транзитный" протокол. В свою очередь, SIP - протокол предоставления расширенных голосовых услуг в IP-сетях, который продолжает быстро развиваться, иначе говоря, "абонентский" протокол. Что касается MGCP, то он ориентирован прежде всего на организацию больших операторских узлов сопряжения IP-сетей с ТфОП и сетями SS7.

Сравнение протоколов VoIP-сети

Показатель H.323 SIP MGCP
Клиент Умный Умный Тупой
Компонент, определяющий функциональность сети и сетевые сервисы Привратник Прокси-сервер Сигнальный контроллер СА
Используемая модель Телефонная (Q.931) Интернет (WWW) Централизованная
Протокол передачи сигнализации TCP* TCP или UDP UDP
Протокол передачи медиа-трафика RTP RTP RTP
Формат сообщений Двоичный (ASN.1) Текстовый (ASCII) Текстовый (ASCII)**
Стандартизирующая организация ITU IETF IETF/ITU
* Возможна передача по UDP-протоколу; ** возможен двоичный формат сообщений, как в H.248.

Эволюция H.323 позволяет предположить, что будущее развитие IP-телефонии связано не столько с замещением традиционной телефонии, сколько с появлением новых сервисов, которые невозможны в рамках обычной телефонной сети. Однако создавать такие сервисы, используя лишь семейство протоколов H.323, достаточно сложно по сравнению, например, с Интернет-сервисами. Сам процесс разработки на базе H.323, доступный только "телефонным гуру", подчиняется традиционным канонам мира обычной телефонии.

Поэтому весьма вероятно, что протокол SIP, гораздо более понятный и удобный для инженеров-сетевиков и программистов, через некоторое время превратится в протокол некоей новой службы, функции которой далеко выходят за пределы передачи голоса по пакетным сетям. Термин "IP-коммуникации" сейчас можно услышать все чаще. Отличие IP-коммуникаций от телефонии (в том числе от сегодняшней IP-телефонии) как раз и будет состоять в обилии сервисов, о возможности которых мы пока просто не догадываемся.

Как сложится судьба представителей семейства MGCP, пока сказать трудно. Эти протоколы, очевидно, будут востребованы на протяжении переходного периода - от сетей с коммутацией каналов и TDM-сетей к сетям пакетной коммутации (точнее, к IP-сетям). В первую очередь такая востребованность обусловлена возможностью прозрачной интеграции телефонных сетей (особенно SS7) с сетями IP-телефонии. Но дальнейшая перспектива развития протоколов семейства MGCP будет зависеть от того, по какому пути пойдет процесс конвергенции телекоммуникаций - по "интернетному", подразумевающему равноправие сетевых узлов, наличие "умных клиентов" и инновационных сервисов, или по "телефонному", с жесткой иерархией, при которой новые сервисы вводятся только централизованно, и неписаным правилом: чем "тупее" клиент, тем проще жить оператору.

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

H.323 является одним из старейших стандартов, используемых для организации VoIP-телефонии и видеоконференцсвязи. Это целая система протоколов и элементов, которые позволяют передавать медиаданные по пакетным сетям с негарантированной пропускной способностью. Структура рекомендации H.323 обеспечивает различные возможности коммуникации - от обычной телефонии до видеоконференцсвязи с передачей медиаданных.

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

До появления протокола H.323 все VoIP-приложения работали на собственных сигнальных протоколах, поэтому связь между ними была невозможна. Однако в 1996 году опубликовали первую версию H.323 и этот стандарт получил широкое распространение.

Эволюция и развитие стандарта

С момента появления стандарта H.323 прошло много лет, и, естественно, он совершенствовался с каждой версией. С 1996 года до сегодняшнего дня было выпущено 7 версий стандарта.

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

Прорывом стала вторая версия, которая вышла спустя два года и была направлена на активное использование в VoIP-телефонии и многосторонних конференциях. В этот раз ключевым словом стала надежность - подтверждение достоверности конечных точек (участников конференции), неизменность пакетных данных при передаче, защита от несанкционированного взлома данных и, как ни странно, отсутствие отклонения входящих вызовов. Также было ускорено соединение между терминалами и добавлена возможность переадресации звонков.

Третья версия обеспечила передачу сигнализации для большего числа вызовов посредством одного TCP-соединения. Межсетевые шлюзы, которые могли обеспечить до тысячи одновременных вызовов, особенно выиграли тогда.

Изменения в четвертом выпуске коснулись наращивания емкости H.323-терминалов, а выход пятой версии был направлен на общую стабилизацию стандарта. Кстати, решения TrueConf работают на четвертой версии протокола H.323.

В июне 2006 года утвердили шестую версию стандарта с изменениями по части транспортных протоколов H.225 и H.245. Появилась поддержка Assigned Gatekeeper - назначенного привратника, на котором регистрируется конечная точка из списка альтернативных гейткиперов. Помимо этого, были поддержаны документы и ряд приложений, позволяющих использовать кодеки GSM и H.264 в H.323-решениях.

Финальная - седьмая версия H.323 вышла в ноябре 2009 года. Среди множества обновлений следует выделить две важные для пользователей возможности:

  • передача информации о пользователях на нескольких языках (это позволило сотрудникам различных международных организаций без труда взаимодействовать друг с другом);
  • автоматическая доставка данных о групповой конференции, проходящей на MCU-сервере, всем H.323-терминалам (это позволило пользователям подключаться к конференции без ввода каких-либо данных о ней).

Архитектура

Стандарт H.323 основывается на четырех компонентах для организации видеоконференций типа точка-точка или многоточка:

  • терминалы
  • шлюзы
  • контроллеры зоны (привратник)
  • сервер многоточечных конференций (MCU)

Терминал — это по сути инструмент для управления H.323-устройством, этакий пользовательский интерфейс, конечная точка. Терминалы могут связываться друг с другом в режиме VoIP-телефонии либо видеоконференцсвязи. Для связи терминалов из разных сетей - к примеру, H.323 и ISDN, используются шлюзы . Они выполняют следующие функции:

  • установка соединения между терминалами;
  • конвертация звуковых форматов;
  • обмен информацией.

Если терминалы находятся в одной H.323-сети, шлюзы не используются.

Контроллер зоны или гейткипер - это центральная точка H.323-сети, поскольку именно гейткипер отвечает за адресацию вызовов, управляет шириной полосы пропускания и устанавливает подлинность терминалов и шлюзов во время соединения. Хотя рекомендация H.323 не определяет привратник как обязательный элемент, все же без него невозможно использование множества современных функций, которые внедряют в свои решения производители VoIP-приложений и решений видеоконференцсвязи.

Для связи трех и более терминалов используется сервер многоточечных конференций MCU (Multipoint Control Unit). Все терминалы, которые участвуют в конференции, сначала связываются с MCU-сервером, а MCU в свою очередь распределяет видеопотоки по всем терминалам. Само устройство MCU обычно также объединяет в себе роли гейткипера и шлюза.

Протоколы H.323

Каждый H.323-терминал либо устройство, поддерживающее протокол H.323, имеет свой собственный IP-адрес. По нему осуществляется механизм маршрутизации H.323-пакетов внутри сети. Для связи терминалов со шлюзами и гейткипером, а также для передачи медиатрафика используются протоколы UDP. Транспортные протоколы TCP используются только для установления звонка между терминалами и обмена дополнительными возможностями.

  1. обнаружение гейткипера и регистрация на нем;
  2. установка соединения между двумя и более терминалами;
  3. обмен голосом и видео - передача посредством транспортных протоколов;
  4. обмен мультимедиа - передача различных графических или текстовых документов, совместная работа над ними;
  5. завершение вызова.

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

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

Для установки соединения между терминалами и для обмена медиатрафиком используются следующие протоколы:

TCP:
  • H.225 - установка соединения между H.323-устройствами.
  • H.245 - обмен информацией о возможностях (поддерживаемые кодеки, например). Один терминал “сообщает” другому терминалу о поддерживаемых возможностях (кодеках), и выбирает кодек для отправки из возможностей другого терминала.
UDP:
  • RAS - используется между терминалами, шлюзами и гейткипером. Отвечает за регистрацию, разрешение на звонки и статусы.
  • RTP - используется при передаче медиатрафика в реальном времени.

Для завершения соединения терминалы посылают сообщение гейткиперу, после чего канал закрывается и связь прерывается.

Кодеки H.323

Стандарт H.323 определяет функцию обмена аудиоинформацией как основную свою возможность (так было изначально, ведь H.323 всегда применялся именно в VoIP-телефонии), поэтому каждый терминал должен был поддерживать как минимум один кодек из семейства G.7XX. А вот видеосвязь в отношении H.323 позиционировалась как второстепенная задача, в виду чего поддержка видеокодеков не была обязательной. Однако сегодня, в эпоху существования видеоконференцсвязи и интеграции ее во множество H.323-терминалов, видеокодеки входят в число обязательных. Для кодирования видео в H.323 используются видеокодеки семейства H.26X.

  • низкий уровень задержки;
  • возможность восстановления потерянных пакетов;
  • высокое качество звука;
  • малая полоса пропускания (не более 8 kbit/s).

Всем этим требованиям отвечают кодеки семейства G.7XX. Однако если говорить о последнем пункте данного списка, то лишь некоторые из G.7XX соответствуют ему.

По умолчанию в H.323 используется кодек G.711, который обладает довольно высоким коэффициентом полосы пропускания - 64 kbit/s. К тому же, G.711 на сегодняшний день считается устаревшим кодеком, ведь его частота дискретизации (преобразования аналогового сигнала в цифровой) составляет всего 8 kHz, в то время, как у другого кодека - более современного G.722.1 эта цифра в два раза больше (16 kHz). Кстати, для интернет-соединений раньше использовались низкочастотные кодеки G.723 (5.3/6.3 kbps) и G.729 (8 kbps).

Что касается видеокодеков, тут всё просто: стандартом уже много лет является видеокодек H.264. Его последователь H.265 пока не обрел популярности и поддержан только на новых устройствах, поэтому мы не думаем что он будет массово использоваться ранее 2022 года.

И если H.323 можно сравнить с ванилью, то протокол Session Initialization Protocol (SIP) вполне уместно в таком случае считать клубникой. Он не лучше и не хуже, чем H.323; он просто другой.

Действительно, SIP - часть предложений IETF, призванных заменить H.323. В то время как H.323 является набором протоколов, SIP - лишь один из нескольких протоколов, взаимодействующих друг с другом с целью организации сеансов передачи голоса по IP-сетям.

SIP - это протокол прикладного уровня, предназначенный для установления, изменения и окончания сеансов с одним или несколькими участниками. Эти сеансы могут включать в себя мультимедиа-конференции, дистанционное обучение, телефонные звонки по Internet и распространение мультимедийного информационного наполнения. Для участия в сеансе SIP способен «пригласить» людей или «роботов», таких, например, как службы хранения мультимедиа-информации.

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

Этот протокол не предоставляет возможностей управления конференциями и не указывает, каким именно образом должно осуществляться это управление. SIP не резервирует адреса для многоадресной рассылки и не захватывает ресурсы, но может передавать «приглашенной» системе необходимую для этого информацию.

Абоненты, как инициирующие звонок, так и принимающие его, идентифицируются с помощью адресов SIP. Звонящий сначала определяет местонахождение соответствующего сервера, затем передает запрос SIP. В идеальном случае запрос передается адресату, который возвращает код ответа SIP, равный 200. Как и в случае с другими кодами ответа TCP/IP, двойка в начале свидетельствует об отсутствии ошибки.

Затем инициатор звонка посылает подтверждение получателю, что несколько необычно, потому что станция, которая инициировала звонок, также посылает подтверждение.

SIP позволяет взаимодействовать в рамках многоадресной рассылки, в сети одноадресных связей или посредством сочетания много- и одноадресных связей.

Объекты, к которым обращаются посредством SIP, являются пользователями на хостах, которые идентифицируются с помощью URL-адресов SIP. Пользовательская часть - это имя пользователя или номер телефона. Хостовая часть - это имя домена или IP-адрес.

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

Транзакция SIP состоит из запроса и соответствующего ответа. В парных запросах и ответах имеются несколько полей, содержащих идентичные значения. К таким полям относятся поле с идентификатором звонка, номер командной последовательности, поле получателя, поле отправителя и тег (если присутствует). Поля отправителя и получателя идентичны в обоих направлениях. Это необычно, но отнюдь не ново в отличие от метода, применяемого в High-Level Data Link Control. Это помогает решить возникающие проблемы при использовании анализатора протокола для поиска и устранения аномалий в сети.

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

Если говорить очень упрощенно, IETF создала SIP и связанные с ним протоколы потому, что убеждена в недостаточной масштабируемости H.323. Пока же совершенно очевидно, что H.323 опережает SIP в этой гонке. Но каков будет финиш?

Как работает протокол SIP

Протокол Session Initialization Protocol (SIP) - это протокол обмена сигналами для создания, изменения и прекращения телефонных сессий, в том числе телефонных звонков по Internet и мультимедийных конференций. SIP - это только один из целого числа протоколов, которые служат для замены фрагментов протокола H.323

  1. От звонящего исходит приглашение на перенаправляющий сервер, который, в свою очередь, сообщает звонящему DNS предполагаемого абонента и предоставляет адреса сервера пользовательского агента (UAS)
  2. Звонящий формирует новое приглашение UAS
  3. UAS посылает «звонок» принимающей стороне и подтверждение вызывающего. После этого звонок считается установленным, даже если на него не поступило ответа
  4. Звонящий выдает подтверждение UAS
В данном разделе приведено описание Протокола инициирования сеансов связи - SIP, его принципы, адресация, архитектура, приведено сравнение с протоколом H323. За основу взята 7 глава книги Б.С. Гольдштейн IP-Телефония .

Сравнительный анализ протоколов Н.323 и SIP

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

И последнее. Оба протокола являются результатом решения одних и тех же задач специалистами ITU-T и комитета IETF. Естественно, что решение ITU-T оказалось ближе к традиционным телефонным сетям, а решение комитета IETF базируется на принципах, составляющих основу сети Internet.

Перейдем непосредственно к сравнению протоколов, которое будем проводить по нескольким критериям.

Дополнительные услуги . Набор услуг, поддерживаемых обоими протоколами, примерно одинаков.

Дополнительные услуги, предоставляемые протоколом Н.323, стандартизированы в серии рекомендаций ITU-T H.450.X. Протоколом SIP правила предоставления дополнительных услуг не определены, что является его серьезным недостатком, так как вызывает проблемы при организации взаимодействия оборудования разных фирм-производителей. Некоторые специалисты предлагают решения названных проблем, но эти решения пока не стандартизированы.

Примеры услуг, предоставляемых обоими протоколами:

  • Перевод соединения в режим удержания (Call hold);
  • Переключение связи (Call Transfer);
  • Переадресация (Call Forwarding);
  • Уведомление о новом вызове во время связи (Call Waiting);
  • Конференция.
Рассмотрим последнюю услугу несколько более подробно. Протокол SIP предусматривает три способа организации конференции: с использованием устройства управления конференциями MCU, режима многоадресной рассылки и соединений участников друг с другом. В последних двух случаях функции управления конференциями могут быть распределены между терминалами, т.е. центральный контроллер конференций не нужен. Это позволяет организовывать конференции с практически неограниченным количеством участников.

Рекомендация Н.323 предусматривает те же три способа, но управление конференцией во всех случаях производится централизованно контроллером конференций МС (Multipoint Controller), который обрабатывает все сигнальные сообщения. Поэтому для организации конференции, во-первых, необходимо наличие контроллера МС у одного из терминалов, во-вторых, участник с активным контроллером МС не может выйти из конференции.Кроме того, при большом числе участников конференции МС может стать. Правда, в третьей версии рекомендации ITU-T Н.323 принято положение о каскадном соединении контроллеров, однако производители эту версию в своем оборудовании пока не реализовали. Преимуществом протокола Н.323 в части организации конференций являются более мощные средства контроля конференций.

Протокол SIP изначально ориентирован на использование в IP-сетях с поддержкой режима многоадресной рассылки информации (примером может служить сеть Mbone, имеющая тысячи постоянных пользователей). Этот механизм используется в протоколе SIP не только для доставки речевой информации (как в протоколе Н.323), но и для переноса сигнальных сообщений. Например, в режиме многоадресной рассылки может передаваться сообщение INVITE , что облегчает определение местоположения пользователя и является очень удобным для центров обслуживания вызовов (Call-center) при организации групповых оповещений.

В то же время, протокол Н.323 предоставляет больше возможностей управления услугами, как в части аутентификации и учета, так и в части контроля использования сетевых ресурсов. Возможности протокола SIP в этой части беднее, и выбор оператором этого протокола может служить признаком того, что для оператора важнее техническая интеграция услуг, чем возможности управления услугами.

Протокол SIP предусматривает возможность организации связи третьей стороной (third-party call control). Эта функция позволяет реализовать такие услуги, как набор номера секретарем для менеджера и сопровождение вызова оператором центра обслуживания вызовов. Подобные услуги предусмотрены и протоколом Н.323, но реализация их несколько сложнее.

В протоколе SIP есть возможность указывать приоритеты в обслуживании вызовов, поскольку во многих странах существуют требования предоставлять преимущества некоторым пользователям. В протоколе Н.323 такой возможности нет. Кроме того, пользователь SIP-сети может регистрировать несколько своих адресов и указывать приоритетность каждого из них.

Персональная мобильность пользователей . Протокол SIP имеет хороший набор средств поддержки персональной мобильности пользователей, в число которых входит переадресация вызова к новому местоположению пользователя, одновременный поиск по не- скольким направлениям (с обнаружением зацикливания маршрутов) и т.д. В протоколе SIP это организуется путем регистрации на сервере определения местоположения, взаимодействие с которым может поддерживаться любым протоколом. Персональная мобильность поддерживается и протоколом Н.323, но менее гибко. Так, например, одновременный поиск пользователя по нескольким направлениям ограничен тем. что привратник, получив запрос определения местоположения пользователя LRQ, не транслирует его к другим привратникам.

Расширяемость протокола . Необходимой и важной в условиях эволюционирующего рынка является возможность введения новых версий протоколов и обеспечение совместимости различных версий одного протокола. Расширяемость (extensibility) протокола обеспечивается:

  • согласованием параметров;
  • стандартизацией кодеков;
  • модульностью архитектуры.
Протокол SIP достаточно просто обеспечивает совместимость разных версий. Поля, которые не понятны оборудованию, просто игнорируются. Это уменьшает сложность протокола, а также облегчает обработку сообщений и внедрение новых услуг. Клиент может запросить какую-либо услугу с помощью заголовка Require . Сервер, получивший запрос с таким заголовком, проверяет, поддерживает ли он эту услугу, и если не поддерживает, то сообщает об этом в своем ответе, содержащем список поддерживаемых услуг.

В случае необходимости, в организации IANA (Internet Assigned Numbers Authority) могут быть зарегистрированы новые заголовки. Для регистрации в IANA отправляется запрос с именем заголовка и его назначением. Название заголовка выбирается таким образом, чтобы оно говорило об его назначении. Указанным образом разработчик может внедрять новые услуги.

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

Более поздние версии протокола Н.323 должны поддерживать более ранние версии. Но возможна ситуация, когда производители поддерживают только одну версию, чтобы уменьшить размер сообщений и облегчить их декодирование.

Новые функциональные возможности вводятся в протокол Н.323 с помощью поля NonStandardParameter . Оно содержит код производителя и, следом за ним, код услуги, который действителен только для этого производителя. Это позволяет производителю расширять услуги, но сопряжено с некоторыми ограничениями. Во-первых, невозможно запросить у вызываемой стороны информацию о поддерживаемых ею услугах, во-вторых, невозможно добавить новое значение уже существующего параметра. Существуют также проблемы, связанные с обеспечением взаимодействия оборудования разных производителей.

На расширение возможностей протокола, как и на совместимость оборудования, его реализующего, оказывает влияние и набор кодеков, поддерживаемый протоколом. В протоколе SIP для передачи информации о функциональных возможностях терминала используется протокол SDP. Если производитель поддерживает какой-то особенный алгоритм кодирования, то этот алгоритм просто регистрируется в организации IANA, неоднократно упоминавшейся в этой главе.

В протоколе Н.323 все кодеки должны быть стандартизированы. Поэтому приложения с нестандартными алгоритмами кодирования могут столкнуться с проблемами при реализации их на базе протокола Н.323.

Протокол SIP состоит из набора законченных компонентов (модулей), которые могут заменяться в зависимости от требований и могут работать независимо друг от друга. Этот набор включает в себя модули поддержки сигнализации для базового соединения, для регистрации и для определения местоположения пользователя, которые не зависят от модулей поддержки качества обслуживания (QoS). работы с директориями, описания сеансов связи, развертывания услуг (service discovery) и управления конфигурацией.

Архитектура протокола Н.323 монолитна и представляет собой интегрированный набор протоколов для одного применения. Протокол состоит из трех основных составляющих, и для создания новой услуги может потребоваться модификация каждой из этих составляющих.

Масштабируемость сети (scalablllty) . Сервер SIP, по умолчанию, не хранит сведений о текущих сеансах связи и поэтому может обработать больше вызовов, чем привратник Н.323, который хранит эти сведения (statefull). Вместе с тем, отсутствие таких сведений, по мнению некоторых специалистов, может вызвать трудности при организации взаимодействия сети IP-телефонии с ТФОП.

Необходимо также иметь в виду зоновую архитектуру сети Н.323, позволяющую обеспечить расширяемость сети путем увеличения количества зон.

Время установления соединения . Следующей существенной характеристикой протоколов является время, которое требуется, чтобы установить соединение. В запросе INVITE протокола SIP содержится вся необходимая для установления соединения информация, включая описание функциональных возможностей терминала. Таким образом, в протоколе SIP для установления соединения требуется одна транзакция, а в протоколе Н.323 необходимо производить обмен сообщениями несколько раз. По этим причинам затраты времени на установление соединения в протоколе SIP значительно меньше затрат времени в протоколе Н.323. Правда, при использовании инкапсуляции сообщений Н.245 в сообщения Н.225 или процедуры Fast Connect время установления соединения значительно уменьшается.

Кроме того, на время установления соединения влияет также и нижележащий транспортный протокол, переносящий сигнальную информацию. Ранние версии протокола Н.323 предусматривали использование для переноса сигнальных сообщений Н.225 и Н.245 только протокол TCP, и лишь третья версия протокола предусматривает возможность использования протокола UDP. Протоколом SIP использование протоколов TCP и UDP предусматривалось с самого начала.

Оценка времени установления соединения производится в условных единицах - RTT (round trip time) - и составляет для протокола SIP 1,5+2,5 RTT, а для протокола Н.323 6-7 RTT

Адресация . К числу системных характеристик, несомненно, относится и предусматриваемая протоколами адресация. Использование URL является сильной стороной протокола SIP и позволяет легко интегрировать его в существующую систему DNS-серверов и внедрять в оборудование, работающее в IP-сетях. Пользователь получает возможность переправлять вызовы на Web-страницы или использовать электронную почту. Адресом в SIP может также служить телефонный номер с адресом используемого шлюза.

В протоколе Н.323 используются транспортные адреса и alias-адреса. В качестве последнего может использоваться телефонный номер, имя пользователя или адрес электронной почты. Для преобразования alias-адреса в транспортный адрес обязательно участие привратника.

Сложность протокола . Протокол Н.323, несомненно, сложнее протокола SIP. Общий объем спецификаций протокола Н.323 составляет примерно 700 страниц. Объем спецификаций протокола SIP составляет 150 страниц. Протокол Н.323 использует большое количество информационных полей в сообщениях (до 100), при нескольких десятках таких же полей в протоколе SIP. При этом для организации базового соединения в протоколе SIP достаточно использовать всего три типа запросов (INVITE , BYE и АСК ) и несколько полей (То , From , Call-ID , CSeq ).

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

Протокол Н.323 использует двоичное представление своих сообщений на базе языка ASN.1, поэтому их непосредственное чтение затруднительно. Для кодирования и декодирования сообщений необходимо использовать компилятор ASN. 1. Но, в то же время, обработка сообщений, представленных в двоичном виде, производится быстрее.

Довольно сложным представляется взаимодействие протокола Н.323 с межсетевым экраном (firewall). Кроме того, в протоколе Н.323 существует дублирование функций. Так, например, оба протокола Н.245 и RTCP имеют средства управления конференцией и осуществления обратной связи.

Выводы . На основе проведенного выше сравнения можно сделать вывод о том, что протокол SIP больше подходит для использования Internet-поставщиками, поскольку они рассматривают услуги IP-телефонии лишь как часть набора своих услуг.

Операторы телефонной связи, для которых услуги Internet не являются первостепенными, скорее всего, будут ориентироваться на протокол Н.323, поскольку сеть, построенная на базе рекомендации Н.323, представляется им хорошо знакомой сетью ISDN, наложенной на IP-сеть.

Не стоит также забывать, что к настоящему времени многие фирмы-производители и поставщики услуг уже вложили значительные средства в оборудование Н.323, которое успешно функционирует в сетях.

Таким образом, ответ на вопрос, какой из протоколов предпочтительнее использовать, будет зависеть от целей бизнеса и требуемых функциональных возможностей. Скорее всего, эти варианты не следует рассматривать как конкурирующие, а как предназначенные для разных областей рынка услуг, поскольку они могут работать параллельно и взаимодействовать через специальный шлюз. Проиллюстрируем это утверждение следующим примером. В настоящее время рынок услуг все больше нацеливается на услуги с доплатой за дополнительные возможности (value added), и простота их предоставления дает реальные преимущества. Так, использование SIP в каком-либо частном домене дает возможность более гибкого предоставления услуг, а наличие средств, обеспечивающих переход от прото- кола SIP к протоколу Н.323, гарантирует взаимодействие с областями, использующими другие решения. В таблице 6 приведен вариант возможного обмена сообщениями.

Таблица 6. Алгоритм установления соединения с участием шлюза Н.323/SIP

Шаг Н.323-сторона шлюза SIP-сторона шлюза