новости
статьи
.технологии

принципы организации корпоративной IP-телефонии

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

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

Корпоративная IP-телефония позволяет объединить уже существующее в организации телефонное оборудование (обычные телефоны, подключенные к УАТС) и специализированные IP-телефоны в одну систему, использующую для передачи голосового трафика сеть передачи данных. Как же организована корпоративная IP-телефония? Как происходит передача голоса, как обеспечивается его быстрое прохождение по сети, как совершается коммутация вызовов? Об этом здесь и пойдет речь. Так как многие фирмы имеют корпоративную сеть передачи данных, построенную с использованием активного сетевого оборудования фирмы Cisco Systems, особое внимание уделено решениям, которые предлагает именно эта компания.

передача голоса через IP-сеть

Голос для передачи по сети сначала попадает на вход цифрового сигнального процессора DSP (Digital Signal Processor), где он порциями кодируется определенным кодеком. Выход с DSP инкапсулируется в PDU (единица данных протокола — фреймы, пакеты) и передается по сети.

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

Технология VoFR (Voice over Frame Relay, передача голоса по каналам Frame Relay) использует специальный заголовок FRF.11 (Рис. 1). Этот заголовок занимает, как минимум, три байта и служит для определения типа данных, которые содержатся во фрейме. Устройства VoATM (Voice over ATM, передача голоса по каналам ATM) используют такой же заголовок.



Рис. 1. Поля, отвечающие за метку приоритета.

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

- используемый кодек;

- размер полезной нагрузки в пакете;

- размер служебной информации в пакете.

Различные кодеки (сокращение от "кодер-декодер" — компонент системы, обеспечивающий сжатие и распаковку определенных данных) требуют разную полосу пропускания (см. таблицу 1):

Таблица 1.


КодекТехнология сжатияБитрейт кодека (Кб/с)
G.711PCM64
G.726ADPCM16, 24, 32
G.728LDCELP16
G.729CS-ACELP8
G.729ACS-ACELP8


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

Размер полезной нагрузки зависит от размера голосового сэмпла (звукового файла), который является величиной конфигурируемой и непосредственно влияет на требуемую полосу пропускания. Голосовой сэмпл — это выход с процессора DSP, инкапсулирующийся в PDU. Cisco, например, использует DSP, обрабатывающие по 10 мс голоса. Оборудование Cisco по умолчанию инкапсулирует в PDU 20 мс голоса вне зависимости от используемого кодека. Это значение можно изменить, но при его увеличении требуемая полоса пропускания уменьшается, что может привести к увеличению переменных задержек (так называемых джиттеров — jitter) и появлению ощутимых разрывов в звучании, если пакет не дойдет до пункта назначения.

Размер сэмпла в байтах рассчитывается по формуле, представленной на рис. 2.



Рис. 2.

В этой формуле:

- Bytes_per_sample — размер сэмпла в байтах;

- Sample_size — размер сэмпла в секундах;

- Codec_bandwidth — битрейт используемого кодека.

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

Total_bandwidth=(Layer2_overhead+IP_UDP_overhead+Sample_size)/Sample_size*Codec_speed

где

- Layer2_overhead — объем служебной информации протокола канального уровня в байтах;

- IP_UDP_RTP_overhead — размер заголовков протоколов IP, UDP и RTP в байтах;

- Sample_size — размер сэмпла в байтах;

- Codec_speed — битрейт используемого кодека.

Приведем примеры полосы пропускания, занимаемой одним звонком, при использовании кодеков G.711 и G.729 и различных размерах сэмплов. В качестве протоколов канального уровня возьмем Frame Relay и Ethernet II.

Размер служебной информации при использовании Ethernet II составляет 18 байт (6 байт — адрес назначения, 6 байт — адрес источника, 2 байта — тип, 4 — контрольная сумма); при использовании Frame Relay — 6 байт (2 байта — DLCI, 2 — FRF.12, 2 — контрольная сумма). Заголовки IP, UDP и RTP без компрессии занимают 40 байт (20 IP, 8 UDP, 12 RTP). Таким образом получаем распределение, представленное в таблице 2.

Таблица 2.


КодекИсп. каналБитрейт, бит/сСэмпл, мсСэмпл, байт L2 OverheadIP/UDP/RTP Overhead Занимаемая полоса пропускания, бит/с
G.711Frame Relay640001080640100800
G.711Ethernet II6400010801840110400
G.711Frame Relay640002016064082400
G.711Ethernet II6400020160184087200
G.711Frame Relay640003024064076267
G.711Ethernet II6400030240184079467
G.729Frame Relay8000101064044800
G.729Ethernet II80001010184054400
G.729Frame Relay8000202064026400
G.729Ethernet II80002020184031200
G.729Frame Relay8000303064020267
G.729Ethernet II80003030184023467


проблемы использования сети передачи данных для передачи голоса

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

Рассмотрим основные проблемы качества передачи голоса.

Потери пакетов. Голосовые кодеки способны восполнять небольшие потери, но если они выше некоторого предела, то возможно прерывание голоса. Задержка. Сквозная задержка — это время, которое требуется для передачи пакета от передающего на принимающее устройство. Задержка складывается из постоянной и переменной составляющих. Постоянная составляющая может быть оценена при проектировании сети. Примеры постоянных задержек — время прохождения сигнала по сети, задержка кодирования, время пакетизации. Перегруженные очереди на интерфейсах и время выкладывания данных на физическую среду передачи данных (Serialization delay) рождают переменные задержки. Время выкладывания данных на физическую среду является функцией от скорости канала и размера пакета — чем больше пакет и меньше скорость канала, тем больше это время. Несмотря на то, что это отношение известно, время выкладывания данных на физическую среду отнесено к переменным задержкам, потому что больший пакет может войти в очередь на интерфейсе в любой момент перед голосовым пакетом. В этом случае голосовой пакет будет ждать в очереди на интерфейсе, пока не будет обработан пакет перед ним.

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

технологии магистрали

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

- классификация и маркировка трафика;

- механизмы очередей или устранения перегрузок на интерфейсах;

- механизм сжатия заголовков RTP-пакетов;

- фрагментация пакетов.

Все эти технологии должны обеспечить различным видам трафика соответствующий уровень обслуживания и необходимое качество голосовых соединений.

механизмы обеспечения качества передачи голосовых данных

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

VoIP гарантирует передачу голоса высокого качества только в том случае, если аудио- и сигнальные пакеты имеют приоритет перед любыми другими пакетами в сети. Для выполнения этого требования используется механизм QoS (Quality of Service). QoS — это методика обеспечения качества передачи определенных данных, основанная на разделении трафика по приоритетам для соответствующей его обработки. QoS обеспечивает лучший, более предсказуемый, сервис сети, выполняя следующие функции:

- поддержка выделенной полосы пропускания;

- уменьшение потерь пакетов;

- предотвращение заторов в сети, управление загруженностью сети;

- управление сетевым трафиком;

- установление приоритетов для различных типов трафика в сети.

На выходных очередях маршрутизаторов применяются следующие методы ускорения обработки критичного трафика:

- WFQ (Weighted Fair Queuing) и DWFQ (Distributed WFQ). Разделяет трафик на потоки, после чего распределяет его на вывод особым образом, обеспечивая поддержку заданной полосы пропускания и заданный диапазон задержек.

- CBWFQ (Class-Based Weighted Fair Queuing). Расширяет функциональность WFQ, предоставляя поддержку пользовательских классов трафика. Можно самостоятельно задать специальный класс трафика для голоса, используя CBWFQ.

- LLQ (Low Latency Queuing). Предоставляет строго приоритетную постановку в очередь на виртуальных соединениях ATM (VCs) и последовательных интерфейсах.

- WRED и DWRED (Weighted Random Early Detection и Distributed WRED). Обеспечивает разные параметры производительности для различных классов трафика. Такая классификация гарантирует привилегированную обработку голосового трафика в условиях затора без усугубления ситуации. В глобальной вычислительной сети для улучшения качества обслуживания различных видов трафика применяются:

- CAR (Committed access rate). Обеспечивает ограничение занимаемой полосы пропускания;

- FRTS (Frame Relay traffic shaping). Задерживает "чрезмерный" трафик, используя специальный буфер или механизм очереди для удержания пакетов и нормализации потока данных в случае, когда его объем выше ожидаемого;

- FRF.12. Обеспечивает лучшую пропускную способность на низкоскоростных линиях Frame Relay;

- IP to ATM class of service (CoS). Включает в себя обеспечение соответствия характеристик CoS между IP и ATM;

- MLP (Multilink PPP) с LFI (link fragmentation and interleaving). Фрагментирует большие пакеты. LFI также обеспечивает специальную очередь для передачи небольших, чувствительных к задержкам пакетов, позволяя им быть отосланными раньше других;

- CRTP (Compressed Real-Time Transport Protocol). Сжимает заголовки RTP, уменьшая расход полосы пропускания для голосового трафика; - RSVP (Resource Reservation Protocol). Поддерживает резервирование ресурсов в IP-сети;

- распространение политик QoS по протоколу BGP (Border Gateway Protocol). Обеспечивает распространение политик QoS на удаленные маршрутизаторы в сети по протоколу BGP.

классификация и маркировка трафика

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

Для определения принадлежности трафика к тому или иному классу, что необходимо для принятия решения о способе его обработки, могут проверяться различные характеристики:

- физический интерфейс, порт;

- поля из заголовка фрейма 2-го уровня — MAC-адрес, биты поля CoS 802.1Q/P, VLAN id;

- поля из IP-заголовка — IP Precedence, код DSCP, IP-адреса источника и/или назначения;

- порты протоколов TCP и UDP;

- сигнатуры из уровня приложений.

Классификация применяется для входящего и/или исходящего из маршрутизатора трафика.

Для маркирования пакета может быть использован заголовок второго уровня (802.1Q/p, FR DE bits) и/или поле TOS IP-заголовка (IP Precedence или DSCP).

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

Маркировка трафика и перемаркировка рекомендована на входящем интерфейсе, как можно ближе к источнику трафика.

механизмы очередей или устранения перегрузок на интерфейсах

Для регулирования возможных перегрузок на исходящем интерфейсе в ПО маршрутизаторов Cisco существует уровневая система буферизации пакетов. Подсистема L3 оперирует IP-пакетами, L2-буфер сильно зависит от канального протокола и L1-буфер (Tx Ring) работает на драйвере устройства. Существует несколько алгоритмов регулировки очередей для подсистемы L3.

При наличии в сети VoIP-трафика рекомендовано использовать LLQ (Low-Latency Queuing). Алгоритм основан на классификации потоков:

- поддерживает очередь с безусловным приоритетом strict priority для голосового трафика и CBWFQ для трафика других приложений. Маршрутизатор обрабатывает только очередь strict priority, пока она не будет полностью обработана. Если очередь strict priority пуста, то весь остальной трафик обрабатывается по методике CBWFQ;

- уменьшает возможные задержки голосовых пакетов и оптимизирует использование полосы пропускания канала.

механизм сжатия заголовков RTP-пакетов (cRTP)

На маршрутизаторах можно задействовать механизм сжатия заголовков RTP-пакетов. В этом случае, вместо того, чтобы передавать друг другу RTP- пакеты с заголовком в 40 байт (IP+UDP+RTP), они передают пакеты с заголовком в 2-5 байт. Передающий маршрутизатор заменяет исходный заголовок, а принимающий при приеме его восстанавливает.

Механизм не влияет на задержку VoIP-трафика. Уменьшает полосу канала, занимаемую голосовым трафиком.

Механизм cRTP имеет следующие характеристики:

- используется только на соединениях point-to-point и не применяется при передаче пакетов через Ethernet и MPLS;

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

- уменьшает полосу, занимаемую голосовым трафиком, что необходимо учитывать при планировании политик очередей LLQ;

- механизм создает дополнительную нагрузку на CPU маршрутизатора. Не рекомендуется использовать при загрузке CPU более 70%;

- механизм зависим от протокола канального уровня. Работает только на каналах с инкапсуляцией типа HDLC, Frame Relay или PPP;

- возможно использование классификатора трафика (class based RTP) для применения механизма сжатия только к VoIP-пакетам, что уменьшает нагрузку на CPU маршрутизатора, так как применение механизма cRTP на интерфейсе автоматически включает сжатие TCP-заголовков для всех исходящих пакетов; - механизм идентифицирует RTP-поток по UDP-портам.

фрагментация пакетов (LFI)

Механизм поддерживает выполнение рекомендации ITU G.114 — устройство не должно обрабатывать голосовой пакет больше 20 мс. Механизм не изменяет занимаемую полосу канала. Уменьшает возможную задержку пакета и вариацию задержки (jitter) потока.

Механизм LFI имеет следующие характеристики:

- пакеты, исходящие из высокоприоритетных очередей, не фрагментируются;

- механизм относится к процессам, работающим на канальном уровне (L2);

- рекомендованный интервал фрагментации (serialization) — 10 мс, для канала в 512 Кбит/с соответствует пакету размером 640 байт;

- существуют два варианта механизма — Multilink PPP LFI и Frame Relay LFI (FRF.12).

Неэффективно использовать данный механизм на каналах более 1 Мбит/с.

ошибки проектирования IP-телефонии

Отличительные черты неправильного проектирования:

- игнорирование требований QoS на втором уровне модели OSI: QoS на втором уровне включает в себя FRF.11, LFI и планирование трафика; - игнорирование других требований QoS: такие сервисы, как LLQ и сRTP, должны быть включены;

- игнорирование анализа пропускной способности: планирование количества звонков и их влияние на пропускную способность является критичным для всех пользователей сети;

- простое добавление VoIP в существующую IP-сеть: при внедрении VoIP может потребоваться перепроектирование сети.

краткий обзор протоколов VoIP

В технологии VoIP используются следующие протоколы /* Будут рассмотрены в продолжении статьи в следующем номере – прим. ред. */:

- H.323. Протокол ITU для интерактивной конференции. Был изначально предназначен для мультимедийного взаимодействия в сетях без установления соединения, таких как ЛВС.

- MGCP (Media Gateway Control Protocol). Предназначен для управления VoIP-шлюзами, подключенными к внешним устройствам управления вызовами. MGCP предоставляет сервис сигнализации для недорогих конечных устройств, таких как шлюзы, которые не поддерживают в полном объеме стек сигнализации, например H.323;

- SIP (Session Initiation Protocol). Протокол, определяющий команды и ответы для установления и завершения телефонных вызовов. Также детализирует такие моменты как безопасность, прокси и транспортные сервисы;

- RTP (Real-Time Transport Protocol). RTP доставляет голос через сеть. Обеспечивает очередность и маркировку времени для правильной последовательной обработки пакетов;

- RTCP (RTP Control Protocol). Используется для передачи управляющей информации для протокола RTP. Любое RTP-соединение имеет соответствующее RTCP-соединение. RTCP используется для предоставления информации о качестве сервиса.

Соответствие протоколов VoIP уровням модели OSI см. в таблице 3.

Таблица 3.


ApplicationСофтфоны и приложения Call Manager
PresentationКодеки
SessionH.323/SIP/MGCP
TransportRTP/UDP (голос), TCP/UDP (управление)
NetworkIP
Data-LinkFrame Relay, ATM, Ethernet, MLPPP, PPP, HDLC ...
PhysicalФизическая среда передачи


принципы установления соединения

Абонентское устройство (Dial Peer) — это адресуемая точка дозвона. Такие точки устанавливают логические соединения, называемые этапами дозвона (Call Legs), для завершения установления звонка. Маршрутизаторы Cisco, поддерживающие голосовые функции, поддерживают два типа абонентских устройств: POTS Dial Peer и VoIP Dial Peer.

POTS (Plane old telephone service) Dial Peer подключаются к традиционным телефонным сетям или традиционным телефонным аппаратам. Такие устройства выполняют функции по предоставлению адреса (телефонного номера или диапазона телефонных номеров) для конечного устройства (сети) и также указывают на конкретный голосовой порт, к которому конечное устройство (сеть) подключено.

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

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

Адрес абонентского устройства, называемый шаблоном назначения (destination pattern), сконфигурирован на каждом абонентском устройстве. Шаблон назначения может соответствовать как одному телефонному номеру, так и диапазону телефонных номеров. Маршрутизатор использует абонентские устройства для установления логических соединений (Call Legs) как в исходящем, так и во входящем направлениях.

Когда к маршрутизатору Cisco с голосовыми функциями подключается традиционное телефонное устройство (вариант POTS Dial Peer), в конфигурации маршрутизатора указывается телефонный номер этого устройства и порт, к которому оно подключено. Таким образом, маршрутизатор знает, куда направлять входящий звонок на этот номер.

В случае VoIP Dial Peer конфигурация маршрутизатора включает телефонный номер назначения (диапазон номеров) и сетевой адрес следующего маршрутизатора.

этапы соединения

Этапы установления соединения (Call Legs) — это логические соединения между любыми двумя телефонными устройствами, такими как шлюзы, маршрутизаторы, приложения Cisco CallManager или оконечные телефонные устройства.

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

Сквозной звонок состоит из четырех этапов соединения: два с точки зрения маршрутизатора, на котором звонок возникает, и два с точки зрения маршрутизатора, на котором телефонное соединение завершается.

Входящий этап соединения возникает, когда вызов входит в маршрутизатор или шлюз, исходящий — когда вызов совершается маршрутизатором или шлюзом.

Процесс установления телефонного соединения можно описать следующими шагами (рис. 3):



Рис. 3. Этапы соединения.



Рис. 4. Этапы соединения с точки зрения маршрутизаторов.

1. Звонок с традиционного телефона приходит на R1 и абонентское устройство, инициировавшее вызов, идентифицировано.

2. После ассоциирования входящего вызова с абонентским устройством R1 создает входящий этап соединения и назначает ему идентификатор Call ID (Call Leg 1).

3. R1 использует строку набора с целью определения абонентского устройства для совершения исходящего шага соединения.

4. После определения абонентского устройства, с которым будет устанавливаться соединение, R1 создает исходящий шаг соединения и назначает ему идентификатор (Call Leg 2).

5. Сетевой запрос поступает на маршрутизатор 2 (R2), на котором происходит идентификация вызывающего сетевого абонентского устройства.

6. После определения сетевого абонентского устройства, с которого поступил запрос, R2 создает входящее соединение и назначает ему идентификатор (Call Leg 3). Здесь R1 и R2 согласовывают параметры при необходимости.

7. R2 использует строку набора с целью определения абонентского устройства для совершения исходящего шага соединения.

8. После определения абонентского устройства R2 создает исходящий вызов с назначением ему идентификатора и завершает процесс соединения (Call Leg 4).

продолжение следует.



Иван Ярцев, Jet Infosystems
обсудить статью
© сетевые решения
.
.