Skype . Подготовка и передача пакетов.

Разберемся более подробно, каким образом работает интернет-телефония. Общая схема такова:

? подготовка данных для передачи: ваш голос переводится в цифровую форму (оцифровка) и сжимается (компрессия);

? цифровой поток разбивается на пакеты, которые отправляются по компьютерной сети в пункт назначения;

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

Ниже об этих этапах рассказано более подробно.

Подготовка данных для передачи

На этапе подготовки происходит оцифровка и сжатие данных. Оцифровка аналогового сигнала означает, что колебания воздуха преобразуются в череду нулей и единиц. На первом этапе колебания воздуха – ваш голос – фиксируются мембраной микрофона. Затем за дело берется блок аналого-цифрового преобразования (АЦП) звуковой карты компьютера.

Процесс оцифровки имеет несколько этапов:

? выборка;

? квантование сигнала;

? кодирование.

Самый общепризнанный стандарт кодирования звука называется РСМ (Pulse Code Modulation, или импульсно-кодовая модуляция), известный также как стандарт G.711. Он предполагает выборку 8000 образцов речи в секунду. Каждый из образцов имеет размер 8 бит, так что результатом работы РСМ является цифровой поток в 64 000 бит/с.

Одновременно с оцифровкой звука кодек РСМ обеспечивает и эффективное сжатие цифрового сигнала. Основной принцип здесь основан на том, что человеческое ухо не восприимчиво к большей части звукового спектра. Кроме того, голос человека занимает довольно узкую полосу во всем диапазоне слышимых звуков.

Диапазон слышимых частот составляет примерно от 16 до 20 000 Гц. Частоты человеческого голоса лежат в пределах от 64 до 1300 Гц, а типичные частоты телефонного сигнала – от 300 до 3400 Гц.

Как видим, только уже за счет эффективной выборки частот можно сжать сигнал в несколько раз. Кроме того, применяются и другие, гораздо более сложные методы компрессии. Как я говорил, кодек РСМ обеспечивает цифровой поток 64 000 бит/с. Существуют и другие стандарты оцифровки звукового сигнала. Вот некоторые из кодеков, которые входят в базовый набор Н.323:

? G.711 (РСМ) – 64 Кбит/с;

? G.721 (ADPCM) – 32 Кбит/с;

? G.723 (ADPCM) – 24 Кбит/с;

? G.726 (ADPCM) – 16 Кбит/с;

? G.728 (LD-CELP) – 16 Кбит/с;

? G.729 (CS-ACELP) – 8 Кбит/с.

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

Кроме того, существует стандарт SIP, а также различные кодеки и коммерческие протоколы для передачи трафика, которые не являются признанными стандартами. Результатом этого стало то, что сейчас в мире насчитывается более 650 различных VoIP-сервисов, зачастую несовместимых между собой. Самый известный – это Skype. Существуют национальные VoIP-сервисы, например десяток таких базируется в России.

Закрытые протоколы Skype – нестандартные протоколы связи и проприетарные, нестандартные кодеки. Несмотря на это сервису удалось добиться популярности. По оценкам экспертов пользователи Skype составляют не менее 20 % от всей аудитории сервисов VoIP в мире. На данный момент это самая популярная в мире VoIP-программа.

Передача пакетов

Следующий этап – это передача пакетов. Транспортировка цифрового трафика осуществляется через Интернет с помощью технологии TCP/IP. Термин TCP/IP обозначает целый набор технологий и прикладных программ, связанных с передачей данных через Интернет. Сюда также входят вспомогательные протоколы DNS, UDP, ARP и многие другие. На заре же существования Интернета это было просто два протокола: протокол TCP и протокол IP.

Протоколы TCP и IP (Transmission Control Protocol и Internet Protocol) были изобретены более 25 лет назад и с тех пор эффективно выполняют свою функцию: объединяют миллионы разнородных компьютерных систем, разбросанных по всему миру, в единую сеть, которая и называется «Интернет».

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

Протокол TCP (Transfer Control Protocol) обеспечивает установление надежного соединения между двумя компьютерами. Он контролирует оптимальный размер пакетов передаваемых данных, а также осуществляет, например, повторную посылку пакета в случае сбоя. С помощью протокола TCP передается львиная доля всего трафика в Интернете, чего нельзя сказать о голосовом трафике.

Для голосового трафика вместо TCP используется протокол UDP (User Datagram Protocol). Он же применяется и для организации видеоконференций в Интернете. То есть интернет-телефония не является приложением TCP/IP, но все-таки принято говорить именно так, потому что сам протокол UDP всегда рассматривается как часть универсального стека TCP/IP.

Итак, обнаружилось главное отличие между транспортировкой в Интернете обычной информации (тексты, веб-страницы) и голосовым трафиком. Это разные транспортные протоколы: вместо TCP используется UDP. Наряду с IP он является базовым протоколом для транспортировки голосового трафика.

Поверх UDP работают еще три специальных протокола: NTP, RTP и RTCP.

? Протокол 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 (Session Initiation Protocol), которая сейчас является одним из самых современных и популярных протоколов для реализации VoIP-сервисов. Она обеспечивает не только передачу VoIP, но также передачу видео, мгновенных сообщений, информации в онлайновых играх и внутри виртуальной реальности. Это универсальная технология.

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

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

В данный момент стандарт SIP поддерживают многие популярные VoIP-программы, в том числе Microsoft Windows Messenger, Apple iChat AV, OpenWengo, Gizmo и другие.