Rtp і rtcp протоколи для ip-телефонії, КомпьютерПресс

1. Введення

У мережах, що не забезпечують гарантовану якість обслуговування (до них відносяться мережі, побудовані на основі протоколу IP), пакети можуть втрачатися, може змінюватися порядок їх надходження, дані, що передаються в пакетах, можуть спотворюватися. Для забезпечення надійної доставки інформації, що передається в цих умовах використовуються різні процедури транспортного рівня. При передачі цифрових даних для цієї мети застосовується протокол ТСР (Transmission Control Protocol). Даний протокол забезпечує надійну доставку даних і відновлює вихідний порядок проходження пакетів. Якщо в пакеті виявлено помилку, або пакет втрачається, процедури TCP надсилають запит на повторну передачу.

2. Основні поняття

Зауважимо, що RTP сам по собі не має ніякого механізму, що гарантує своєчасну передачу даних і якість обслуговування, але для забезпечення цього використовує служби нижчого рівня. Він не запобігає порушенням порядку проходження пакетів, але при цьому і не передбачає, що основна мережа абсолютно надійна і передає пакети в потрібній послідовності. Порядкові номери, включені в RTP, дозволяють одержувачу відновлювати послідовність пакетів відправника.

Хоча протокол RTP вважається протоколом транспортного рівня, він функціонує зазвичай поверх іншого протоколу транспортного рівня UDP (User Datagram Protocol). Обидва протоколу вносять свої частки в функціональність транспортного рівня. Слід зазначити, що RTP і RTCP є незалежними від нижчих рівнів - транспортного і мережного, тому протоколи RTP / RTCP можуть використовуватися з іншими відповідними транспортними протоколами.

Протокольні блоки даних RTP / RTCP називаються пакетами. Пакети, що формуються відповідно до протоколу RTP і службовці для передачі мультимедійних даних, називаються інформаційними пакетами або пакетами даних (data packets), а пакети, що генеруються відповідно до протоколу RTCP і службовці для передачі службової інформації, необхідної для надійної роботи телеконференції, називають пакетами управління або службовими пакетами (control packets). Пакет RTP включає до свого складу фіксований заголовок, необов'язкове розширення заголовка змінної довжини і поле даних. Пакет RTCP починається з фіксованої частини (подібної фіксованої частини інформаційних пакетів RTP), за якою слідують структурні елементи, що мають змінну довжину.

2.1. групова аудіоконференцзв'язок

Додаток аудіоконференцзв'язку, що використовується кожним учасником конференції, посилає звукові дані малими порціями, наприклад, тривалістю 20 мс. Кожній порції звукових даних передує заголовок RTP; заголовок RTP і дані по черзі формуються (инкапсулируются) в пакет UDP. Заголовок RTP показує, який тип кодування звуку (наприклад, ІКМ, АДІКМ або LPC) використовувався при формуванні даних в пакеті. Це дає можливість змінювати тип кодування в процесі конференції, наприклад, при появі нового учасника, який використовує лінію зв'язку з низькою пропускною здатністю, або при перевантаженнях мережі.

У мережі Internet, як і в інших мережах передачі даних з комутацією пакетів, пакети іноді губляться і змінювати порядок, а також затримуються на різний час. Для протидії цим подіям заголовок RTP містить тимчасову мітку і порядковий номер, які дозволяють одержувачам відновити синхронізацію в початковому вигляді так, щоб, наприклад, ділянки звукового сигналу відтворювалися динаміком безперервно кожні 20 мс. Ця реконструкція синхронізацію окремо і незалежно для кожного джерела пакетів RTP в телеконференції. Порядковий номер може також використовуватися одержувачем для оцінки кількості втрачених пакетів.

Так як учасники телеконференції можуть вступати і виходити з неї під час її проведення, то корисно знати, хто бере участь в ній в даний момент, і як добре учасники конференції отримують звукові дані. Для цієї мети кожен екземпляр звукового додатка під час конференції періодично видає на порт управління (порт RTCP) для додатків усіх інших учасників повідомлення про прийом пакетів із зазначенням імені свого користувача. Повідомлення про прийом вказує, як добре чуємо поточний оратор, і може використовуватися для управління адаптивними кодерами. На додаток до імені користувача, може бути включена також інша інформація ідентифікації для контролю смуги пропускання. При виході з конференції сайт посилає пакет BYE протоколу RTCP.

2.3. Поняття про мікшерах і трансляторах

Деякі з учасників аудиоконференции можуть бути з'єднані широкосмуговими лініями зв'язку, але можуть бути недосяжні за допомогою групової конференц з використанням протоколу IP (IPM - IP multicast). Наприклад, вони можуть перебувати за брандмауером прикладного рівня, який не допускатиме ніякої передачі IP-пакетів. Для таких випадків потрібні не мікшери, а засоби зв'язку рівня RTP іншого типу, звані трансляторами. З двох трансляторів один встановлюється поза брандмауера і зовні передає всі групові пакети, отримані через безпечне з'єднання, іншому транслятора, встановленому за брандмауером. Транслятор за брандмауером передає їх знову як мультівещательнимі пакети багатокористувацької групі, обмеженою внутрішньою мережею сайту.

2.4. Порядок байтів, вирівнювання і формат міток часу

Всі поля пакетів RTP / RTCP передаються по мережі байтами (октетами); при цьому найбільш значущий байт передається першим. Всі дані полів заголовка вирівнюються відповідно до їх довжиною. Октети, позначені як додаткові, мають нульове значення.

У наступних двох розділах даної статті (3 і 4) розглядаються формати пакетів і особливості функціонування протоколів RTP і RTCP відповідно.

3. Протокол передачі даних RTP

3.1. Поля фіксованого заголовка RTP

Як було зазначено вище, пакет RTP включає до свого складу фіксований заголовок, необов'язкове розширення заголовка зі змінною довжиною і поле даних. Фіксований заголовок пакетів протоколу RTP має такий вигляд:.

Перші дванадцять октетів присутні в кожному пакеті RTP, в той час як поле ідентифікаторів включаються джерел CSRC (сontributing source) присутній тільки тоді, коли воно вставлено мікшером. Поля мають наступні призначення.

Версія (V): 2 біти. Це поле ідентифікує версію RTP. У даній статті розглядається версія 2 протоколи RTP (величина 1 використовувалася в першій чорновій версії RTP).

Доповнення (P): 1 біт. Якщо біт доповнення встановлений в одиницю, то пакет в кінці містить один або більше октетів доповнення, які не є частиною трафіку. Останній октет доповнення містить вказівку на число таких октетів, які повинні згодом ігноруватися. Доповнення може вимагатися деякими алгоритмам шифрування з фіксованими розмірами блоку або для перенесення кількох пакетів RTP в одному блоці даних протоколу нижчого рівня.

Розширення (X): 1 біт. Якщо біт розширення встановлений, то за фіксованим заголовком слід розширення заголовка з форматом, визначеним у розділі 3.4.

Лічильник CSRC (CC): 4 біта. Лічильник CSRC містить число ідентифікаторів включаються джерел CSRC (див. Список використовуваних скорочень і термінів), які слідують за фіксованим заголовком.

Тип трафіку (PT): 7 біт. Це поле ідентифікує формат трафіку RTP і визначає його інтерпретацію додатком. Профіль визначає заданий за замовчуванням статичне відповідність значень РТ і форматів трафіку. Додаткові коди типу трафіку можуть бути визначені динамічно через Не-RTP кошти. Відправник пакета RTP в будь-який момент часу видає єдине значення типу трафіку RTP; це поле не призначене для мультиплексування окремих мультимедійних потоків (див. розділ 3.2).

Список CSRC: від 0 до 15 пунктів, 32 біта кожен. Список CSRC (сontributing source) ідентифікує включаються джерела трафіку, що міститься в пакеті. Число ідентифікаторів задається полем CC. Якщо є більше п'ятнадцяти включаються джерел, то тільки 15 з них можуть бути ідентифіковані. Ідентифікатори CSRC вставляються мікшерами при використанні ідентифікаторів SSRC для включаються джерел. Наприклад, для звукових пакетів ідентифікатори SSRC всіх джерел, які були змішані при створенні пакета, перераховуються в списку CSRC, забезпечуючи коректну індикацію джерел повідомлень для одержувача.

3.2. Сеанси зв'язку RTP

При використанні для кожного типу трафіку різних SSRC, але при передачі їх в одному і тому ж сеансі RTP, можна уникнути перших трьох проблем, але двох останніх уникнути не вдасться. Тому специфікація протоколу RTP наказує для кожного типу трафіку використовувати свій сеанс RTP.

3.3. Обумовлені профілем зміни заголовка RTP

Існуючий заголовок інформаційного пакета RTP є повним для набору функцій, необхідних в загальному випадку для всіх класів додатків, які могли б підтримувати RTP. Однак, для кращого пристосування до конкретних завдань заголовок може бути видозмінений за допомогою модифікацій або доповнень, визначених у специфікації профілю.

Біт маркера і поле типу трафіку несуть корисну інформацію профілю, але вони розташовані в фіксованому заголовку, так як очікується, що в них потребуватимуть багато додатків. Октет, що містить ці поля, може бути перевизначений профілем для задоволення різних вимог, наприклад, з більшою або меншою кількістю бітів маркера. Якщо є які-небудь біти маркера, вони повинні розміщуватися в старших бітах октету, так як незалежні від профілю монітори можуть бути здатні спостерігати кореляцію між характером втрат пакетів і бітом маркера.

Якщо конкретний клас додатків потребує додаткових функціональних можливостях, що не залежать від формату трафіку, то профіль, з якими функціонують ці додатки, повинен визначити додаткові фіксовані поля, наявні відразу після поля SSRC існуючого фіксованого заголовка. Ці програми будуть здатні швидко безпосередньо звертатися до додаткових полях, в той час як профіль-незалежні монітори або реєстратори все ще будуть здатні обробляти пакети RTP, інтерпретуючи тільки перші дванадцять октетів.

Якщо вважається, що додаткові функціональні можливості необхідні в загальному для всіх профілів, то повинна бути визначена нова версія RTP, щоб зробити постійна зміна фіксованого заголовка.

3.4. Розширення заголовка RTP

Для забезпечення можливості окремим реалізацій експериментувати з новими функціями, незалежними від формату трафіку, які вимагають, щоб в заголовку інформаційного пакета передавалася додаткова інформація, протоколом RTP передбачений механізм розширення заголовка пакета. Цей механізм розроблений так, щоб розширення заголовка могло ігноруватися іншими взаємодіючими додатками, яким воно не потрібно.

Якщо біт X в заголовку RTP встановлений в одиницю, то до фіксованого заголовку RTP (слідом за списком CSRC, якщо він є) приєднується розширення заголовка зі змінною довжиною. Зауважимо, що це розширення заголовка призначене тільки для обмеженого використання. Розширення заголовка пакета RTP має такий вигляд:

Розширення містить 16-розрядний поле довжини, яке показує кількість 32-розрядних слів в ньому, крім четирехоктетний заголовок розширення (отже, довжина може мати нульове значення). Тільки одне розширення може бути додано до фіксованого заголовку інформаційного пакета RTP. Щоб дозволити кожному з безлічі взаємодіючих реалізацій експериментувати незалежно з різними розширеннями заголовка або дозволяти конкретної реалізації експериментувати більше ніж з одним типом розширення заголовка, використання перших 16 бітів розширення не визначено, залишено для различающих ідентифікаторів або параметрів. Формат з цих 16 бітів повинен бути визначений специфікацією профілю, з яким працюють додатки.

Зовсім недавно компанія Cougar представила нову серію блоків живлення для традиційних ПК - VTX, орієнтовану на користувачів з обмеженим бюджетом. У цьому огляді буде розглянута модель Cougar VTX600, яка завдяки своїм характеристикам буде однією з найбільш затребуваних в цій лінійці блоків живлення

На щорічному заході Capsaicin SIGGRAPH в Лос-Анджелесі компанія AMD зміцнила свої позиції на ринку ПК класу high-end з новими процесорами Ryzen Threadripper і GPU «Vega»

Для простого і зручного побудови мереж рядовими користувачами компанія ZyXEL випустила чергову версію свого Інтернет-центру для підключення до мереж 3G / 4G через USB-модем з точкою доступу Wi-Fi - ZyXEL Keenetic 4G III, який ми і розглянемо в цьому огляді

До своєї і так великій родині роутерів і маршрутизаторів фірма ASUS недавно додала дві вельми цікаві моделі: флагманську 4G-AC55U і більш просту 4G-N12. У даній статті буде розглянута флагманська модель ASUS 4G-AC55U

Молода, але амбіційна компанія KREZ на початку цього року випустила нову, оригінальну модель ноутбука KREZ Ninja (модель TM1102B32) під керуванням Windows 10. Оскільки цей комп'ютер має поворотний екран, він може служити універсальним рішенням - його можна з успіхом використовувати і для роботи, і для навчання, і для ігор

Якщо ви часто друкуєте фотографії та вже втомилися міняти картриджі в своєму принтері, зверніть увагу на МФУ Epson L850. Великий ресурс витратних матеріалів, чудова якість відбитків, найширший набір функціональних можливостей - ось лише деякі з переваг даної моделі