Затримки
3.1.1 Затримки
При передачі мови по IP-мережі виникають набагато більші, ніж у ТфОП, затримки, які, до того ж, змінюються випадковим чином. Цей факт являє собою проблему і сам по собі, але крім того, ускладнює обговорювану далі в цій главі проблему луни. Затримка (або час запізнювання) визначається як проміжок часу, що витрачаються на те, щоб мовний сигнал пройшов відстань від мовця до слухача. Покажемо, що і як впливає на кількісні характеристики цього проміжку часу.
Вплив мережі
По-перше, нестійкий і погано передбачувано час проходження пакета через мережу. Якщо навантаження мережі відносно мала, маршрутизатори і комутатори, безумовно, можуть обробляти пакети практично миттєво, а лінії зв'язку бувають доступні майже завжди. Якщо завантаження мережі відносно велика, пакети можуть досить довго чекати обслуговування в чергах. Чим більше маршрутизаторів, комутаторів і ліній на маршруті, по якому проходить пакет, тим більше час його запізнення, і тим більше варіація цього часу, тобто джиттер. У главі 10, присвяченій якості обслуговування (QoS), буде показано, яким чином і з використанням яких протоколів і алгоритмів слід будувати мережі, щоб мінімізувати затримки та їх джиттер.
Вплив операційної системи
Більшість додатків IP-телефонії (особливо клієнтських) представляє собою звичайні програми, які виконуються в середовищі якої-небудь операційної системи, такої як Windows або Linux. Ці програми звертаються до периферійних пристроїв (платам обробки мовних сигналів, спеціалізованим платам систем сигналізації) через інтерфейс прикладних програм для взаємодії з драйверами цих пристроїв, а доступ до IP-мережі здійснюють через Socket-інтерфейс.
Більшість операційних систем не може контролювати розподіл часу центрального процесора між різними процесами з точністю, що перевищує кілька десятків мілісекунд, і не може обробляти за такий же час більше одного переривання від зовнішніх пристроїв. Це призводить до того, що затримка в просуванні даних між мережевим інтерфейсом і зовнішнім пристроєм мовного виведення становить, незалежно від використовуваного алгоритму кодування мови, величину такого ж порядку, або навіть більше.
Зі сказаного випливає, що вибір операційної системи є важливим чинником, що впливає на загальну величину затримки. Щоб мінімізувати вплив операційної системи, деякі виробники шлюзів і IP-телефонів використовують так звані ОС реального часу (VxWorks, pSOS, QNX Neutrino і т.д.), які використовують більш складні механізми поділу часу процесора, що діють таким чином, щоб забезпечувати набагато швидку реакцію на переривання і більш ефективний обмін потоками даних між процесами.
Інший, більш плідний підхід - перекласти всі функції, які необхідно виконувати в жорстких часових рамках (обмін даними між мовними кодеками і мережевим інтерфейсом, підтримку RTP і т.д.), на окремий швидкодіючий спеціалізований процесор. При цьому пересилання мовних даних здійснюється через виділений мережевий інтерфейс периферійного пристрою, а операційна система робочої станції підтримує тільки алгоритми управління з'єднаннями і протоколи сигналізації, тобто завдання, для виконання яких жорстких часових рамок не потрібно. Цей підхід реалізовано в платах для додатків IP-телефонії, вироблених фірмами Dialogic, Audiocodes, Natural Microsystems. За такою ж технологією виконаний і шлюз IP-телефонії в платформі Протей-IP, що дозволило забезпечити високу якість передачі мови.
Вплив джіггер-буфера
Проблема джитер досить істотна в пакетно-орієнтованих мережах. Відправник мовних пакетів передає їх через фіксовані проміжки часу (наприклад, через кожні 20 мс), але при проходженні через мережу затримки пакетів виявляються неоднаковими, так що вони прибувають в пункт призначення через різні проміжки часу. Це ілюструє рис. 3.1.