- Принципи організації IP-телефонії на базі рішень Cisco Systems
- Передача голосу через IP-мережу
- Проблеми використання мережі передачі даних для передачі голосу
- технології магістралі
- Механізми забезпечення якості передачі голосових даних
- Класифікація та маркування трафіку
- Механізми черг або усунення перевантажень на інтерфейсах
- Механізм стиснення заголовків RTP пакетів (cRTP)
- Фрагментація пакетів (LFI)
- Помилки проектування IP-телефонії
- Короткий огляд протоколів VoIP
- Принципи встановлення з'єднання
- етапи з'єднання
2007 р
Принципи організації IP-телефонії на базі рішень Cisco Systems
Іван ЯрцевІнформаційний бюлетень JET INFO
назад Зміст вперед
Передача голосу через 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. Поля, що відповідають за позначку пріоритету
Пропускна здатність каналу, займаного одним голосовим дзвінком, залежить від наступних компонентів:
- використовуваний кодек;
- розмір корисного навантаження в пакеті;
- розмір службової інформації в пакеті.
Різні кодеки (скорочення від "кодер-декодер" - компонент системи, що забезпечує стиснення і розпаковування певних даних) вимагають різну смугу пропускання:
кодек
технологія стиснення
Бітрейт кодека (Кб / с)
G.711
PCM
64
G.726
ADPCM
16, 24, 32
G.728
LDCELP
16
G.729
CS-ACELP
8
G.729A
CS-ACELP
8
Займану смугу пропускання можна обчислити, грунтуючись на бітрейте (число бітів потоку, що передаються за секунду; основна характеристика відео- або аудиопотока при стисканні) кодека, витраті пакетизації і розмірі корисного навантаження в пакеті.
Розмір корисного навантаження залежить від розміру голосового семпли (звукового файлу), який є величиною конфігурується і безпосередньо впливає на необхідну смугу пропускання. Голосовий семпл - це вихід з процесора DSP, інкапсулює в PDU. Cisco використовує DSP, обробні по 10 мс голосу. Устаткування Cisco за замовчуванням инкапсулирует в PDU 20 мс голосу незалежно від використовуваного кодека. Це значення можна змінити, але при його збільшенні необхідна смуга пропускання зменшується, що може призвести до збільшення змінних затримок (так званих джиттером - jitter) і появи відчутних розривів в звучанні, якщо пакет не дійде до пункту призначення.
Розмір семпли в байтах розраховується за формулою:
де
- 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). Таким чином отримуємо розподіл, представлене в Таб. 1 .
Проблеми використання мережі передачі даних для передачі голосу
У традиційної телефонії голос має гарантовану фіксовану затримку при передачі і гарантовану смугу пропускання для кожного дзвінка. У мережі передачі даних для передачі голосу потрібна низька затримка, мінімальні джиттером і втрати пакетів.
Проблеми якості передачі голосу включають:
- Втрати пакетів. Голосові кодеки здатні заповнювати невеликі втрати, але якщо вони вище певної межі, то можливо переривання голосу.
- Затримка. Наскрізна затримка - це час, який потрібен для передачі пакета від передавального на приймаючий пристрій. Затримка складається з постійної і змінної складових. Постійна складова може бути оцінена при проектуванні мережі. Приклади постійних затримок - час проходження сигналу по мережі, затримка кодування, час пакетизації. Перевантажені черзі на інтерфейсах і час викладання даних на фізичну середу передачі даних (Serialization delay) народжують змінні затримки. Час викладання даних на фізичну середу є функцією від швидкості каналу і розміру пакета - чим більше пакет і менше швидкість каналу, тим більше цей час. Незважаючи на те що це ставлення відомо, час викладання даних на фізичну середу віднесено до змінних затримок, тому що більший пакет може увійти в чергу на інтерфейсі в будь-який момент перед голосовим пакетом. В цьому випадку голосовий пакет буде чекати в черзі на інтерфейсі, поки не буде оброблений пакет перед ним.
- Різниця часу затримок передачі від пакета до пакету (джиттер) - різниця між очікуваним і фактичним часом приходу чергового пакета. VoIP-пристрої використовують спеціальний буфер для встановлення постійного темпу обробки пакетів, таким чином досягається плавність звучання голосу.
технології магістралі
Для забезпечення передачі різних типів трафіку в магістральних каналах зв'язку використовуються різні технології:
- класифікація і маркування трафіку;
- механізми черг або усунення перевантажень на інтерфейсах;
- механізм стиснення заголовків RTP-пакетів;
- фрагментація пакетів.
Всі ці технології повинні забезпечити різним видам трафіку відповідний рівень обслуговування та необхідну якість голосових з'єднань.
Механізми забезпечення якості передачі голосових даних
Додатки реального часу, такі як голосові, відрізняються своїми характеристиками від традиційних додатків. Голосові програми допускають мінімальний джиттер. Втрати пакетів і джитера погіршують якість переданого голосу. При заміні традиційних голосових технологій IP-телефонією користувачі повинні отримувати те ж якість голосу, як і при звичайній телефонії. Для ефективної передачі голосу через IP-мережу потрібен механізм надійної доставки з маленькою затримкою.
VoIP гарантує передачу голосу високої якості тільки в тому випадку, якщо аудіо- та сигнальні пакети мають пріоритет перед будь-якими іншими пакетами в мережі. Для виконання цієї вимоги використовується механізм QoS (Quality of Service). QoS - це методика забезпечення якості передачі певних даних, заснована на поділі трафіку за пріоритетами для відповідної його обробки. QoS забезпечує кращий, більш передбачуваний, сервіс мережі, виконуючи наступні функції:
- підтримка виділеної смуги пропускання;
- зменшення втрат пакетів;
- запобігання заторів в мережі, управління завантаженістю мережі;
- управління мережевим трафіком;
- встановлення пріоритетів для різних типів трафіку в мережі.
Програмне забезпечення Cisco IOS (операційна система активного мережного обладнання фірми Cisco Systems) включає в себе повний набір засобів забезпечення 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).
Маркований трафік спрощує застосування єдиних правил приоритизации / обробки трафіку для всіх пристроїв в мережі передачі даних, в тому числі і для пристроїв провайдера послуг.
Маркування трафіку і перемаркування рекомендована на вхідному інтерфейсі, як можна ближче до джерела трафіку.
Механізми черг або усунення перевантажень на інтерфейсах
Для регулювання можливих перевантажень на вихідному інтерфейсі в програмному забезпеченні маршрутизатора (IOS) існує рівнева система буферизації пакетів. Підсистема L3 оперує IP-пакетами, L2-буфер сильно залежить від канального протоколу і L1-буфер (Tx Ring) працює на драйвері пристрою.
Існують різні алгоритми регулювання черг для підсистеми L3.
При наявності в мережі VoIP-трафіку компанією Cisco рекомендовано використовувати 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 Kbps відповідає пакету розміром 640 байт;
- існують два варіанти механізму - Multilink PPP LFI і Frame Relay LFI (FRF.12).
Неефективно використовувати даний механізм на каналах більше 1 Mbps.
Помилки проектування 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:
Принципи встановлення з'єднання
Абонентські пристрої (Dial Peers)
Абонентський пристрій (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 Systems з голосовими функціями підключається традиційне телефонний пристрій (варіант POTS Dial Peer), в конфігурації маршрутизатора вказується телефонний номер цього пристрою і порт, до якого під'єднано. Таким чином, маршрутизатор "знає", куди направляти вхідний дзвінок на цей номер.
У разі VoIP Dial Peer конфігурація маршрутизатора включає телефонний номер призначення (діапазон номерів) і мережеву адресу наступного маршрутизатора.
етапи з'єднання
Етапи встановлення з'єднання (Call Legs) - це логічні з'єднання між будь-якими двома телефонними пристроями, такими як шлюзи, маршрутизатори, додатки Cisco CallManager або кінцеві телефонні пристрої.
Коли надходить вхідний дзвінок, він обробляється окремо, поки не буде визначено пункт призначення. Після цього встановлюється вихідні повідомлення, і вхідний дзвінок комутується з вихідним портом.
Наскрізний дзвінок складається з чотирьох етапів з'єднання: два з точки зору маршрутизатора, на якому дзвінок виникає, і два з точки зору маршрутизатора, на якому телефонне з'єднання завершується.
Вхідний етап з'єднання виникає, коли виклик входить в маршрутизатор або шлюз, що виходить - коли виклик відбувається маршрутизатором або шлюзом.
Процес встановлення телефонного з'єднання можна описати наступними кроками ( Мал. 3 ):
Мал. 2. Етапи з'єднання
Мал. 3. Етапи з'єднання з точки зору маршрутизаторів.
- Дзвінок з традиційного телефону приходить на R1 і абонентський пристрій, що ініціювала виклик, ідентифіковано.
- Після асоціювання вхідного дзвінка з абонентським пристроєм R1 створює вхідний етап з'єднання і призначає йому ідентифікатор Call ID (Call Leg 1).
- R1 використовує рядок набору з метою визначення абонентського пристрою для здійснення вихідного кроку з'єднання.
- Після визначення абонентського пристрою, з яким буде встановлюватися з'єднання, R1 створює вихідний крок з'єднання і призначає йому ідентифікатор (Call Leg 2).
- Мережевий запит надходить на маршрутизатор 2 (R2), на якому відбувається ідентифікація викликає мережевого абонентського пристрою.
- Після визначення мережевого абонентського пристрою, з якого надійшов запит, R2 створює вхідні повідомлення і призначає йому ідентифікатор (Call Leg 3). Тут R1 і R2 узгоджують параметри при необхідності.
- R2 використовує рядок набору з метою визначення абонентського пристрою для здійснення вихідного кроку з'єднання.
- Після визначення абонентського пристрою R2 створює вихідний дзвінок з призначенням йому ідентифікатора і завершує процес з'єднання (Call Leg 4).
В якості ілюстрації процесу в розділі "Приклади конфігурацій" наведено приклад конфігурації абонентських пристроїв і описані методи конфігурації діапазонів телефонних номерів.