Введение

Протокол передачи аудио и видео по IP-сетям

Протокол передачи в реальном времени (RTP) — это сетевой протокол для передачи аудио и видео по IP-сетям. RTP используется в системах связи и развлечений, включающих потоковую передачу мультимедиа, таких как телефония, приложения для видеоконференций, включая WebRTC, телевизионные услуги и веб-функции push-to-talk. RTP обычно работает поверх протокола пользовательских дейтаграмм (UDP). RTP используется совместно с протоколом управления RTP (RTCP). В то время как RTP передает потоки мультимедиа (например, аудио и видео), RTCP используется для мониторинга статистики передачи и качества обслуживания (QoS), а также для синхронизации нескольких потоков. RTP является одним из технических фундаментов Voice over IP, и в этом контексте часто используется совместно с протоколом сигнализации, таким как протокол инициирования сеанса (SIP), который устанавливает соединения в сети. RTP был разработан рабочей группой по транспортировке аудио- и видеоданных (Audio Video Transport Working Group) при Целевой группе по инженерным задачам в Интернете (IETF) и впервые опубликован в 1996 году, а затем обновлен в 2003 году.

Обзор

Исследования в области передачи аудио и видео по сетям с коммутацией пакетов начались в начале 1970-х годов. Internet Engineering Task Force (IETF) опубликовала первую спецификацию в 1977 году и начала разработку RTP в 1992 году, а затем продолжила разработку протокола объявления сеанса (SAP), протокола описания сеанса (SDP) и протокола инициирования сеанса (SIP). RTP предназначен для передачи потоковых медиаданных в реальном времени. Протокол предоставляет средства для компенсации джиттера и обнаружения потери пакетов, а также для обнаружения пакетов, доставленных не по порядку, что часто встречается, особенно при передаче UDP в сети IP. RTP позволяет передавать данные множеству получателей посредством IP-мультикаста. RTP считается основным стандартом для транспортировки аудио/видео в IP-сетях и используется с соответствующим профилем и форматом полезной нагрузки. Протокол управления передачей (TCP), хотя и стандартизирован для использования с RTP, обычно не применяется в приложениях RTP, поскольку TCP отдает приоритет надежности, а не своевременности. Вместо этого большинство реализаций RTP основаны на протоколе пользовательских датаграмм (UDP) и DCCP, хотя по состоянию на 2012 год они не получили широкого распространения. RTP был разработан рабочей группой Audio/Video Transport организации по стандартизации IETF. RTP используется в сочетании с другими протоколами, такими как H.323 и RTSP. Спецификация RTP описывает два протокола: RTP и RTCP. RTP используется для передачи мультимедийных данных, а RTCP – для периодической отправки управляющей информации и параметров QoS. Управляющий протокол RTCP используется для обратной связи по качеству обслуживания (QoS) и синхронизации между медиапотоками. Пропускная способность трафика RTCP относительно RTP невелика и обычно составляет около 5%. RTP-сессии обычно инициируются между взаимодействующими узлами с использованием сигнального протокола, такого как H.323, протокол инициирования сеанса (SIP), RTSP или Jingle (XMPP). Эти протоколы могут использовать протокол описания сеанса для указания параметров сеанса. Для каждого мультимедийного потока устанавливается отдельная RTP-сессия. Аудио- и видеопотоки могут использовать разные RTP-сессии, что позволяет приемнику выборочно получать компоненты конкретного потока. Архитектура RTP и RTCP не зависит от транспортного протокола. Приложения чаще всего используют UDP с номерами портов в не привилегированном диапазоне (1024–65535). Протокол управления потоком (SCTP) и протокол управления перегрузкой датаграмм (DCCP) могут использоваться, когда требуется надежный транспортный протокол. Спецификация RTP рекомендует использовать четные номера портов для RTP и следующий нечетный номер порта для соответствующей сессии RTCP. RTP используется в мультимедийных приложениях реального времени, таких как VoIP, аудио по IP, WebRTC и интернет-телевидение.