RTP控制協議(RTCP)是RTP協議的關聯協議,它同樣在RFC 3550中定義。RTCP允許RTP會話中的參與方彼此發送質量報告和統計信息,並交換一些基礎的身份信息。下表,列出了RTCP的報文類型。
SR |
Sender report |
RR |
Receiver report |
SDES |
Source description |
BYE |
Goodbye |
APP |
Application-specific |
RTPFB |
Generic RTP Feedback |
PSFB |
Payload-specific |
XR |
Extended report |
AVB |
AVB (Audio Video Bridging) RTCP packet |
RSI |
Receiver Summary Information |
TOKEN |
Port Mapping |
IDMS |
IDMS (Inter-Destination Media Synchronization) Settings |
SMPTETC |
SMPTE time-code mapping |
IJ |
Extended interarrival jitter report |
RTCP的設計,也適用於非常大型的會議。RTCP的流量都是開銷,設計中分配給這些消息的帶寬保持不變,與參與者數量無關。也就是說,會議的參與方越多,發送RTCP包的頻率就越低。比如說,在基本的雙方音頻會話中,RTP/AVP配置中定義大約每5秒發送一次RTCP包;在四方會議中,可以每10秒發送一次RTCP包。發送方報告(Sender reports (SR))或接收方報告(receiver reports (RR))的發送頻率最高,其它類型的包發送頻率較低。允許在報告中對連接的質量進行反饋,包括以下信息:
• 已發送包和已接收包的數量;
• 丟包的數量;
• 包的抖動深度.
缺省條件下,RTCP使用RTP的下一個端口傳輸,這可以在offer/answer交換中改變約定。此外,用同一端口混合發送RTP和RTCP是可行的,請參考RFC5761。
RTCP 報告
RTCP總是以組合包的形式發送。每個RTCP包都以發送方報告(SR)或接收方報告(RR)打頭,可以組合其它任何包。顧名思義,發送方報告SR由媒體發送方發送;而接收方報告RR由媒體發送方發送。由於RTP是單向的,那麼雙向媒體會話就必然有兩個RTP會話和兩個RTCP會話。源描述包(ource description (SDES))交換髮送方和接收方的信息。用bye (BYE)消息離開多播會話。可以用application-specific (APP)包攜帶RTCP擴展。下一節介紹重要的RTCP擴展。
RTCP 擴展報告
RTCP擴展報告(RTCP-XR) RFC3611定義了七種附加的報告塊。它們是基於SR和RR的限制進行定義的。例如,接收報告包含平均丟包率的信息。然而,對於通話質量,突發的丟包信息比平均丟包信息重要得多,因爲一種好的codec可以處理單個的丟包,但不能處理長序列的丟包。此外,RTCP-XR了一種評估實際通話質量並交換此類信息的方法。現有的接收報告中無法獲取這些信息。因此,RTCP擴展報告的定義推動了RTCP的進一步實現。