Протокол 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)
Пакеты, содержащие передаваемый голос, передаются с использованием 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 | |||
25 | CelB | V | 90000 | RFC2029 | |
26 | JPEG | V | 90000 | RFC2435 | |
27 | не назначено | V | |||
28 | nv | V | 90000 | RFC3551 | |
29 | не назначено | V | |||
30 | не назначено | V | |||
31 | H261 | V | 90000 | RFC2032 | |
32 | MPV | V | 90000 | RFC2250 | |
33 | MP2T | AV | 90000 | RFC2250 | |
34 | H263 | V | 90000 | Zhu | |
35 | не назначено | ? | |||
7276 | зарезервировано для RTCP во избежание конфликтов | RFC3550 | |||
77 | не назначено | ? | |||
7795 | dynamic | ? | RFC3551 |
- IANA: Зарегистрированные параметры протокола RTP: http://www.iana.org/assignments/rtp-parameters
Протокол RTP и трансляция IP адресов (NAT)
При проведении VOIP сеанса связи, образуются два RTP потока, по одному в каждом направлении. Если один из участников, участвующий в этом сеансе, использует IP адрес из приватной сети, тогда поток от абонента, находящегося в публичной сети в сторону NAT сервера, не сможет достичь абонента, находящегося во внутренней сети. Для решения этой проблемы часто используется Symmetric RTP (симметричный RTP). Для дополнительной информации об использовании VOIP в сетях с NAT, смотри: NAT and VOIP.Статьи
- RTCP XR measures VoIP performance Network World 11/17/03
Документы 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