Приветствую вас, друзья! Во время изучения материалов к экзамену CCNA Voice родилась идея изложить часть полученной информации в виде отдельной статьи.
Преследуя две цели: одна эгоистичная — лучше понять изучаемый материал и рассортировать всё в уме по категориям; второй – альтруистический – делиться полученными знаниями с теми, кому это хотя бы меньше всего интересно.
В этой статье я расскажу о процессах кодирования голоса, кодеках как таковых и расчетах пропускной способности, необходимой для передачи голоса по IP-сетям.
Об основном цифровом сигнале
Думаю, не нужно объяснять, что для того, чтобы передать аналоговый сигнал (которым является человеческий голос) по IP-сетям, необходимо этот самый сигнал преобразовать в последовательность единиц и нулей.Пользователь прекрасно объяснил, как это делается.
Денис_г в моей любимой статье.
Чтобы не прослыть плагиатором и не дублировать информацию, просто оставлю Этот Здесь.
Кратко суть такова: на основе теоремы Котельникова (буржуи называют ее теоремой Найквиста) при использовании импульсно-кодовой модуляции для передачи речевого сигнала без потери качества достаточно передавать данные со скоростью 64 кбит/с.
сек.
64 килобита в секунду – это то, что называется в современной цифровой телефонии.
основной цифровой сигнал .
Первичный (наименьший, простейший) уровень в плезиосинхронной (почти синхронной) цифровой иерархии (ПЦИ) построен на 32 (30 голосовых + 2 служебных) основных цифровых сигналах - т.н.
Поток E1 (2048 кбит/сек).
А сам основной цифровой сигнал иногда называют нулевым уровнем.
Стоит отметить, что в PDH есть второй (Е2), третий (Е3) и четвертый (Е4) уровни.
Каждый последующий уровень мультиплексируется из четырех предыдущих с добавлением некоторой служебной информации, например E3=4*E2+сигнализация.
Некоторое время (в 80-е годы) вся цифровая телефония в мире была построена на технологии PDH. Но у него был ряд недостатков, наиболее существенным из которых была необходимость последовательного демультиплексирования потока высокого уровня для извлечения потоков более низкого уровня.
То есть, например, чтобы извлечь один поток Е1 из потока Е4 с целью его маршрутизации в другое место, нужно было сначала разложить Е4 на четыре Е3, затем разобрать Е3 на четыре Е2, разобрать Е2 на четыре Е1, перенаправить Е1 туда, где он должен быть, собираем поток в обратном порядке и отправляем дальше.
В общем, это была муторная работа, отнимавшая огромное количество ресурсов.
На смену технологии PDH пришла SDH (синхронная цифровая иерархия), которая по сей день остается основным вариантом организации связи между операторами сотовой связи, а сети двух наших магистральных провайдеров (ТТК, РТК) по-прежнему базируются на SDH. Тем не менее, первичные уровни (Е1) никуда не делись и порой остаются единственным способом организации общения.
Например, все телефонные операторы нашей страны используют для соединения друг с другом N количество потоков E1. Да, я отвлекся.
Вернемся к IP-телефонии, то есть к коммутации пакетов, но забудем пока о коммутации каналов.
О кодеках
Итак, мы имеем первичный цифровой канал, который в IP-сетях воплощается кодеком G.711. Этот стандарт стал де-факто самым популярным и теперь используется в таких протоколах, как SIP и SCCP. Он использует полосу пропускания 64 кбит/сек и, наверное, знаком каждому, кто имеет дело с современной IP-телефонией.Стандарт был разработан в 70-х годах прошлого века и на данный момент срок действия патента на него истек, и он находится в открытом доступе.
Стандарт описывает два алгоритма кодирования — Mu-law (используется в Северной Америке и Японии) и A-law (используется в Европе и остальном мире).
Оба алгоритма являются логарифмическими, но более поздний a-закон изначально предназначался для компьютерной обработки процессов.
(с) Википедия Помимо общепризнанного G.711, существует еще множество стандартов кодирования/декодирования аудиосигналов.
Наиболее популярные из них — G.729, G.729a, G.726, G.728. Если оценить их по занимаемой полосе пропускания, то увидим следующую картину: G.729 – 8 кбит/сек G.729a – 8 кбит/сек G.726 – 32 кбит/с G.728 – 16 кбит/с Казалось бы, если они используют меньший диапазон, то почему они не стали популярнее G.711? Дело в том, что пропускная способность — не самый важный параметр кодека; важна также скорость работы и, как следствие, загрузка DSP (Digital Signal Processor) — процессора цифровых сигналов, отвечающего за кодирование/декодирование сигнала в реальном времени.
Еще одним важным критерием, определяющим успешность того или иного кодека, является т.н.
MOS (Mean Opinion Score, в русской литературе встречается как средняя субъективная оценка).
Идея MOS очень проста: специально отобранной группе людей предоставляется возможность использовать систему связи и предлагается оценить ее от 1 (ужасно) до 5 (отлично).
Усредненные данные такого исследования называются MOS. Итак, для указанных мною кодеков рейтинги MOS имеют следующие значения: G.711 - 4.1 (по некоторым данным 4.45 для Mu-law) G.729 — 3,92 (возможно, мог бы конкурировать с G.711, но съедает много процессорного времени) G.729a — 3.7 (данный кодек работает значительно быстрее старшего брата, но как видим — в ущерб качеству) Г.
726 - 3,85 Г.
728 - 3,61 И совокупность всех этих факторов (пропускная способность, скорость работы, MOS) определяет первенство того или иного кодека в области кодирования цифрового сигнала.
Кстати, все эти стандарты (ну те, что начинаются с Г.
) являются плодами деятельности Международного консультативного комитета по телефонии и телеграфии (подразделение ITU – Международного союза электросвязи) и по своей сути являются проприетарными.
И в наше время сложно представить отсутствие бесплатных альтернатив проприетарным стандартам.
Так в области аудиокодирования родился стандарт iLBC (интернет-кодек с низким битрейтом), который использует скорость 15,2 Кбит/с и имеет рейтинг MOS 4,1. Именно эти факторы, наряду с открытостью, повлияли на то, что этот стандарт используется в Google Talk, мессенджере Yahoo и нашем любимом Skype. Стоит отметить, что популярные IP-АТС (asterisk, cisco CME) поддерживают все эти кодеки, и вы всегда имеете право сами определять, что вы будете использовать в своей телефонной сети.
О пропускной способности
Проектная пропускная способность — это параметр, который необходимо учитывать при планировании любой сети передачи данных, чтобы ее можно было легко масштабировать и ваши пользователи не испытывали лишних неудобств во время ее эксплуатации.Повторяю – любые сети, в том числе VoIP-сети.
Важным параметром в данном конкретном случае является размер выборки (измеряется в миллисекундах).
Размер выборки — это параметр, определяющий «объем» голосовой информации в IP-пакете — например, в один и тот же пакет стандартного размера можно втиснуть один или два слога.
Чем больше размер выборки, тем экономнее вы используете полосу пропускания, но тем большую задержку вы услышите в разговоре (следствие кодирования/декодирования цифрового процессора).
Не знаю как в Asterisk (надеюсь кто-нибудь подскажет), но в Cisco CME (решение от Cisco в области IP-телефонии) при настройке параметров кодека, к сожалению, нет такого параметра - размер выборки , но есть параметр, определяющий количество байт в выборке.
Они связаны друг с другом простой формулой (линейная зависимость) и легко выражаются друг через друга.
И вот формула: BvS = RS*PPK/8, где BvS — количество байтов в выборке, RS — размер выборки в секундах, PPK — скорость передачи кодека в бит/сек.
То есть, если мы хотим, чтобы при использовании кодека G.711 в одном пакете было, например, 20 миллисекунд разговора, то нам нужно установить значение параметра BvS = 0,02 * 64000/8 = 160. Таким образом, нам необходимо включить в наш UDP-фрагмент 160 байт полезной информации.
Хорошо, давайте двигаться дальше.
Допустим, мы используем классическую IP-сеть, канальным протоколом для которой является Ethernet, плюс мы хотим запустить все это в зашифрованной VPN-сети.
Затем к нашим 160 байтам добавятся еще 18 байт служебной информации Ethernet. Добавляем сюда сетевой и транспортный уровень — заголовки IP, UDP и RTP (20+8+12 байт).
И все наше добро заворачиваем в IPSec — еще плюс 50 байт. На выходе получается пакет размером 268 байт. Чтобы рассчитать окончательную пропускную способность, нам нужно умножить размер этого пакета на количество пакетов в секунду.
Учитывая, что размер нашей выборки составляет 20 мс, то за одну секунду таких выборок будет 50. Умножив 50 на 268 видим, что за одну секунду нам нужно прогнать 13400 байт или 107200 бит в секунду, то есть 107,2 Кбит в секунду.
А это почти в два раза больше исходных 64 килобит! Именно от этого числа вы должны исходить при планировании своей сети.
Будь осторожен! Да пребудет с тобой сила! Использованные источники: Видеокурс CCNA Voice ru.wikipedia.org www.deltann.ru P.S.: Надеюсь на дополнения с вашей стороны Теги: #телефония #ip-телефония #кодеки #пропускная способность #ccna voice #pdh #SDH #Разработка систем связи
-
Технический Состав Технологических Схем
19 Oct, 24 -
«Умный Дом» На Скорую Руку
19 Oct, 24 -
Обычная История В Автосалоне Nokia
19 Oct, 24 -
Клетка Со Всеми Удобствами
19 Oct, 24 -
Яндекс Научился Считать Деньги
19 Oct, 24