Протокол RTP


При использовании протокола RTP открываются два порта для коммуникации. Один для передачи потока медиаданных (четный номер порта), и один для передачи данных сигнализации (обратная связь для QoS и контроль медиапотока) - RTCP. Значения номеров портов жестко не привязаны, в основном, они сильно зависят от используемого приложения.

  • RTP - Протокол передачи медиаданных в реальном времени (Real-time Transport Protocol)
  • RTCP - Протокол передачи управляющих данных в реальном времени (Real-time Control Protocol)
    • Дополнительно включает в себя информацию о:
    • Потерях пакетов
    • Буферизация "Jitter"
    • Задержки
    • Уровень сигнала
    • Метрика качества сигнала (Call Quality Metrics)
    • Echo Return Loss
    • и т.д.
  • RTCP XR -Расширенный Протокол передачи управляющих данных в реальном времени (Real-time Control Protocol Extended Reports)
    • Все поля, описанные для протокола RTCP, плюс:
    • R Factor - Параметр качества сигнала
    • MOS - Параметр качества сигнала
    • и другие

Пакеты, содержащие передаваемый голос, передаются с использованием RTP/RTCP для протокола SIP, который используется для VOIP вызовов. Протокол RTP может передавать медиаданные, идентифицируемые параметрами, которые зарегистрированы организацией: "Internet assigned numbers authority" - IANA. Они так же используются для полей в протоколе SDP, который используется в SIP и MGCP сообщениях.

Некоторые значения поля payload:



PT название кодека audio/video (A/V) clock rate (Hz) кол-во каналовДокумент
0 PCMU A 8000 1 RFC3551
3 GSM A 8000 1 RFC3551
4 G723 A 8000 1 Kumar
5 DVI4 A 8000 1 RFC3551
6 DVI4 A 16000 1 RFC3551
7 LPC A 8000 1 RFC3551
8 PCMA A 8000 1 RFC3551
9 G722 A 8000 1 RFC3551
10 L16 A 44100 2 RFC3551
11 L16 A 44100 1 RFC3551
12 QCELP A 8000 1 -
13 CN A 8000 1 RFC3389
14 MPA A 90000 RFC3551,RFC2250
15 G728 A 8000 1 RFC3551
16 DVI4 A 11025 1 DiPol
17 DVI4 A 22050 1 DiPol
18 G729 A 8000 1
19зарезервированоA
20не назначеноA
21не назначеноA
22не назначеноA
23не назначеноA
24не назначеноV
25CelBV90000 RFC2029
26JPEGV90000 RFC2435
27не назначеноV
28nvV90000 RFC3551
29не назначеноV
30не назначеноV
31H261V90000 RFC2032
32MPVV90000 RFC2250
33MP2TAV90000 RFC2250
34H263V90000 Zhu
35--71не назначено
72--76зарезервировано для RTCP во избежание конфликтов RFC3550
77--95не назначено
77--95dynamic RFC3551



Протокол RTP и трансляция IP адресов (NAT)

При проведении VOIP сеанса связи, образуются два RTP потока, по одному в каждом направлении. Если один из участников, участвующий в этом сеансе, использует IP адрес из приватной сети, тогда поток от абонента, находящегося в публичной сети в сторону NAT сервера, не сможет достичь абонента, находящегося во внутренней сети. Для решения этой проблемы часто используется Symmetric RTP (симметричный RTP). Для дополнительной информации об использовании VOIP в сетях с NAT, смотри: NAT and VOIP.

Статьи


Документы RFC:

  • IETF RFC 3550 RTP: Транспортный протокол для приложений, работающих в реальном времени.
  • IETF RFC 3611 RTP Control Protocol Extended Reports (RTCP XR)
  • IETF RFC 1890 RTP профиль для звуковых и видео конференций с Минимальным управлением.
  • IETF RFC 2508 Сжатие заголовков IP/UDP/RTP пакетов для низкоскоростных линий связи.
  • IETF RFC 3545 Расширенная компрессия RTP (CRTP) для линий связи с высокими задержками, большими потерями пакетов и частой повторной отправкой данных.


Ссылки по теме:

  • Open Source VOIP Software Реализации стеков RTP протокола и соответствующее программное обеспечение
  • Формат пакета RTP с описаниями полей
  • http://www.cs.columbia.edu/~hgs/rtp/: Все, что Вам может понадобиться или захочется узнать о протоколе RTP
  • SRTP: Защищенный RTP протокол
  • IETF
  • SIP: Протокол Инициирования Сеанса
  • MGCP
  • подавление тишины в RTP протоколе, еще известен, как VAD