После прочтения раздела «Протоколы, кодеки, алгоритмы» вы поймете, что в мире VoIP до сих пор нет единых стандартов. Связисты в лице ITU (International Telecommunication Union – Международный Телекоммуникационный Союз) продвигают стандарт Н.323. Компьютерщики придумали открытый стандарт SIP и создают все новые сервисы на его основе. Бизнесмены идут своим путем, создавая нестандартные сервисы и пытаясь заработать на них. Например, создатели нестандартной программы Skype (а это шведские бизнесмены и эстонские программисты) заработали около двух миллиардов долларов. Их программа приобрела популярность, и бизнес удалось продать за огромные деньги. Эстонские программисты, впрочем, не получили своих миллионов, потому что трудились исключительно за зарплату.
Закрытые интернет-пейджеры с поддержкой VoIP выпускают крупнейшие интернет-корпорации – Yahoo! Google, MSN и AOL. Программу Skype также можно занести в этот список, потому что теперь она принадлежит богатейшей интернет-корпорации eBay. Каждое из этих приложений закрыто от других, но корпорации вкладывают миллионы долларов в развитие и продвижение именно своей программы. Это настоящая битва стандартов на фоне конкуренции между финансовыми гигантами.
К сожалению, приверженцы открытых стандартов не обладают такими огромными финансовыми ресурсами, поэтому VoIP-программы, работающие на открытых стандартах и совместимые друг с другом, такие как Gizmo или SIPphone, пока не получили широкого распространения. Однако многие эксперты считают, что будущее именно за ними.
Разберемся, каким образом работает интернет-телефония. Общая схема такова.
1. Голос переводится в цифровую форму (оцифровка) и сжимается (компрессия).
2. Цифровой поток разбивается на пакеты, которые отправляются по компьютерной сети в пункт назначения.
3. Система адресата получает пакеты с голосовым потоком, осуществляет их «сборку», после чего переводит информацию обратно из цифровой формы в аналоговую.
Расскажем подробнее о каждом из этих этапов.
Оцифровка аналогового сигнала означает, что колебания воздуха превращаются в ряд нулей и единиц. На первом этапе колебания воздуха ваш голос фиксируется мембраной микрофона. На втором этапе задействован обычно блок аналого-цифрового преобразования (АЦП) звуковой карты компьютера.
Процесс оцифровки имеет следующие стадии.
1. Выборка.
2. Квантование сигнала.
3. Кодирование.
Самый известный стандарт кодирования звука называется PCM (Pulse Code Modulation – импульсно-кодовая модуляция), известный также как стандарт G.711. Он предполагает выборку 8000 образцов речи в секунду. Каждый из образцов имеет размер 8 бит, так что результатом работы PCM является цифровой поток 64 000 бит/с (рис. 1.1).
Рис. 1.1. Запись голосового сигнала на компьютере после оцифровки
Одновременно с оцифровкой звука кодек PCM обеспечивает и эффективное сжатие цифрового сигнала. Основной принцип сжатия звука основан на том, что человеческое ухо не воспринимает большую часть звукового спектра. Кроме того, голос человека занимает лишь узкую полосу в диапазоне всех слышимых звуков.
Диапазон слышимых частот составляет примерно 200-20 000 Гц. Частоты человеческого голоса лежат в пределах 200-10 000 Гц, а типичные частоты телефонного сигнала – в диапазоне 300-3000 Гц.
Только за счет эффективной выборки частот уже можно сжать сигнал в несколько раз. Применяются и другие, более сложные методы компрессии. Как уже было сказано, кодек PCM обеспечивает цифровой поток 64 000 бит/с. Существуют и другие стандарты оцифровки звукового сигнала. Вот некоторые из кодеков, которые входят в базовый набор Н.323 (рис. 1.2):
• G.711 (PCM) – 64 Кбит/с;
• G.721 (ADPCM) – 32 Кбит/с;
• G.723 (ADPCM) – 24 Кбит/с;
• G.726 (ADPCM) – 16 Кбит/с;
• G.728 (LD-CELP) – 16 Кбит/с;
• G.729 (CS-ACELP) – 8 Кбит/с.
Рис. 1.2. Архитектура Н.323 и основные стандарты, входящие в этот набор
Набор стандартов Н.323 используется в некоторых программах для интернет-телефонии, таких как NetMeeting и Ekiga. Однако сегодня Н.323 не является единственным общепризнанным стандартом, хотя и рекомендован к использованию ITU.
Существует еще стандарт SIP (о нем будет рассказано позже), а также различные кодеки и коммерческие протоколы для передачи трафика, которые не являются признанными стандартами. Сегодня в мире насчитывается более 650 различных VoIP-сервисов, зачастую несовместимых между собой. Самый известный – это Skype. Существуют национальные VoIP-сервисы, например в России.
Закрытые протоколы Skype – это нестандартные протоколы связи и кодеки. Несмотря на это, сервису удалось добиться популярности. По оценкам экспертов, пользователи Skype составляют не менее 20 % всей аудитории пользователей сервисов VoIP в мире. На данный момент это самая популярная в мире VoIP-программа.
Транспортировка цифрового трафика через Интернет осуществляется с помощью TCP/IP – набора технологий и прикладных программ, связанных с передачей данных через Интернет. Это протоколы TCP и IP, вспомогательные протоколы DNS (Domen Name System – система доменных имен), UDP (User Datagram Protocol – протокол пользовательских датаграмм), ARP(Address Resolution Protocol – протокол разрешения адресов) и многие другие. Сегодня TCP/IP – это целое семейство технологий, но на заре Интернета это были только два протокола – TCP и IP.
TCP и IP – это два базовых протокола Сети, которые были изобретены более 25 лет назад. Их функция заключается в объединении миллионов разнородных компьютерных систем, разбросанных по всему миру, в единую сеть, которая и называется Интернет.
Информация в Интернете, как уже говорилось ранее, перемещается в виде пакетов. Протокол IP обеспечивает адресацию сетевых пакетов. С помощью этого протокола прокладывается маршрут среди миллионов компьютеров, играющих роль шлюзов. Каждый из этих компьютеров работает как звено в цепи, получая пакеты от одного соседа и передавая их другому.
Протокол TCP обеспечивает установку надежного соединения между двумя компьютерами. С его помощью контролируется оптимальный размер пакетов передаваемых данных, а также осуществляется, например, повторная посылка пакета в случае сбоя. С помощью протокола TCP передается основная часть всего трафика в Интернете, кроме голосового.
Для голосового трафика вместо TCP используется протокол UDP. Он же используется для организации видеоконференций в Сети. Интернет-телефония не является приложением TCP/IP, но принято говорить именно так, потому что сам протокол UDP всегда рассматривается как часть TCP/IP.
Главное различие между транспортировкой в Интернете обычной информации (тексты, веб-страницы) и голосовым трафиком – это использование разных транспортных протоколов. В первом случае используется TCP, во втором – UDP, который наряду с IP-протоколом является базовым для транспортировки голосового трафика. Поверх UDP работают еще три специальных протокола:
• NTP (Network Time Protocol – протокол сетевого времени) – отвечает за синхронизацию времени на компьютерах адресата и получателя, чтобы передавать голосовые пакеты в правильной последовательности и в заданное время. Это важно для качества связи;
• RTP (Real-Time Transport Protocol – транспортный протокол реального времени) – это транспортный протокол реального времени, предназначенный для передачи через Интернет мультимедийных данных, в том числе аудио и видео. RTP выполняет такие функции, как идентификация типа полезной нагрузки, нумерация последовательности пакетов и присвоение временных меток. RTP был разработан для многоадресного вещания, но он подходит и для организации сессий типа «точка – точка», то есть для VoIP-телефонии (подробнее об этом протоколе можно прочитать по адресу http://www.compdoc.ru/network/internet/videopotoki);
• RTCP (Real-Time Transport Control Protocol – протокол управления передачей в реальном времени) – это протокол управления передачей, который работает в паре с RTP и помогает следить за качеством передаваемого сигнала, уровнем перегрузки канала связи, а также утерей пакетов.
Все три протокола службы UDP работают вместе и гарантируют транспортировку VoIP-пакетов точно по адресу в заданное время (чтобы задержки почти не были уловимы на слух) с максимально возможным качеством.
При передаче голосового трафика через Интернет пакеты VoIP помещаются внутрь пакетов RTP, а те, в свою очередь, – в пакеты UDP-IP.
Отдельно отметим протокол SIP, который сейчас является одной из самых современных и популярных технологий для реализации VoIP-сервисов. Он обеспечивает не только передачу VoIP, но и передачу видео, мгновенных сообщений, информации в онлайновых играх и внутри виртуальной реальности. Это универсальная технология.
Набор SIP включает в себя большое количество различных спецификаций, которые приближают VoIP к традиционной телефонной связи по качеству и надежности. Эти спецификации также добавляют новые функции VoIP. Например, если во время разговора поступает входящий вызов от другого абонента, то протокол SIP позволяет принять его в разговор (устроить трехстороннюю связь), либо отклонить вызов, либо поставить его на удержание. При помощи SIP пользователь также может изменить характеристики звонка прямо во время сеанса связи. Например, если сеанс связи был инициирован как «только голосовой», то в процессе можно подключить и функцию передачи видео. Это очень удобно также, если к разговору подключается, скажем, третий участник и хочет передать файл.
Протокол SIP предусматривает передачу данных в пиринговой сети (от англ. peer-to-peer, P2P – равный с равным). Участники такой сети автоматически устанавливают между собой прямые соединения и обеспечивают передачу трафика от одного абонента к другому. Работа SIP-приложений осуществляется через специальные прокси-серверы (рис. 1.3).
Рис. 1.3. Передача данных по протоколу SIP осуществляется через специальные прокси-серверы
В данный момент стандарт SIP поддерживают многие популярные VoIP-программы, в том числе Microsoft Windows Messenger, Apple iChat AV, OpenWengo, Gizmo и др.