
Все статьи
|
Протоколы IP-телефонии
Игорь Масленников,
директор по развитию бизнеса компании CompTek
i.maslennikov@comptek.ru
Короткая, но богатая событиями история развития IP-телефонии привела
к тому, что сегодня в реальных сетях VoIP сосуществуют и конкурируют
между собой три основных семейства протоколов - H.323, SIP и MGCP.
Протоколы всех трех перечисленных семейств регламентируют управление
мультимедиа-вызовами и передачу медиа-трафика в IP-сетях, но при этом
реализуют три различных подхода к построению систем телефонной
сигнализации. Попробуем разобраться, почему сложилась такая ситуация,
что представляют собой эти протоколы и каковы перспективы развития
каждого из них.
Набор рекомендаций Н.323
Исторически первый и самый распространенный в настоящее время - это
введенный Международным союзом электросвязи (МСЭ) набор рекомендаций
Н.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, а по ее окончании - завершение соединения.

Рис. 2. Сценарий соединения по протоколу H.323.
Протокол 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:igor@comptek.ru - это самый естественный 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.

Рис. 4. Сценарий соединения по протоколу SIP.
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-пакеты, а затем анализировать их и манипулировать
голосовыми каналами на шлюзах.

Рис. 6. Сценарий соединения по протоколу МGCP.
Резюме
Сравнивая "биографические данные" и функциональные особенности трех
видов протоколов (см. таблицу), мы видим, что их различия обусловлены
историческими причинами, в частности, изменениями представлений о пути
развития телекоммуникаций в разное время. При этом 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, и какие-то новые, еще не
родившиеся протоколы будут сосуществовать в реальных операторских и
корпоративных сетях. Практика их использования может меняться со
временем, и мы обязательно увидим много интересного и неожиданного на
телекоммуникационной сцене в ближайшие годы.
|