Протокол RTP (англ. Real-time Transport Protocol) працює на прикладному рівні і використовується при передачі аудіо і відеоданих через IP мережі в режимі реального часу. Протокол був розроблений Audio-Video Transport Working Group в IETF і вперше опублікований в 1996 році як RFC 1889, і замінений у RFC 3550 у 2003 році.
Протокол RTP переносить у своєму заголовку дані, необхідні для відновлення голосу та відео на приймальному вузлі, а також дані про тип кодування інформації (JPEG, MPEG і т. ін.). В заголовку цього протоколу, зокрема, передаються мітка і номер пакету. Ці параметри дозволяють при мінімальних затримках визначити порядок і час декодування кожного пакета, а також інтерполювати втрачені пакети.
RTP не має стандартного зарезервованого номера порту. Єдине обмеження полягає в тому, що з'єднання проходить з використанням парного номера порту, а наступний непарний номер використовується для зв'язку з протоколом RTCP. Той факт, що RTP використовує адреси портів що присвоюються динамічно, створює йому труднощі з проходженням міжмережевих екранів, для обходу цієї проблеми, як правило, використовується STUN-сервер.
Встановлення і розрив з'єднання не входить в список можливостей RTP, такі дії виконуються сигнальним протоколом (наприклад, RTSP або SIP протоколом).
Всі цілочисельні поля передаються згідно з мережевим порядком, тобто старший байт слідує за першим (big-endian). Порядок передачі докладно описаний у роботі [3]. Якщо не обумовлено зворотного всі цифрові константи є десятковими. Всі поля заголовка вирівнюються своїми природними кордонами, тобто. 16-бітові поля мають парне зміщення, а 32-бітні мають адреси, кратні 4. Октети-заповнювачі містять нулі.
Абсолютний час видається з допомогою часових позначок згідно з форматом NTP (network time protocol), який характеризує час у секундах від початку доби (UTC) 1 січня 1900 [4]. Мітка часу NTP повної точності визначається 64-бітовим числом з фіксованою комою без знаку. Цілочисельна частина задається першими 32 бітами, а дробова частина останніми. У деяких полях, де припустимо компактніше подання, використовуються тільки середні 32 біти (16 бітів цілочисельна частина і 16 бітів дробова).
Ver. (2 біти) вказує версію протоколу. Поточна версія - 2.
P (один біт) використовується у випадках, коли RTP-пакет доповнюється порожніми байтами на кінці.
X (один біт) використовується для зазначення розширень протоколу, залучених в пакеті.
CC (4 біти) містить кількість CSRC-ідентифікаторів, що йдуть за постійним заголовком.
M (один біт) використовується на рівні програми та визначається профілем. Якщо це поле встановлено, то дані пакету мають якесь особливе значення для програми.
PT (7 бітів) вказує формат payload і визначає її інтерпретацію додатком.
SSRC вказує джерело синхронізації.
Портал «Інформаційні технології»
Lokasi Pengunjung: 3.144.88.85