RTCP (RTP Control Protocol)

RTPは、ペイロードを運ぶデータ転送プロトコルと制御プロトコルの2つにより構成されています。 ここでは、制御プロトコルであるRTCPの説明をします。 RTCPには、以下の5種類があります。

RR (Receiver Report) RRは、受信者での受信品質に関する情報を伝えるために利用されます。
SR (Sender Report) SRは、送信者からのストリームに関する情報を伝えます。
SDES (Source Description) RTPセッションへの参加者の識別や、電子メールアドレス、電話番号といった捕捉情報を伝えます。
BYE 参加者がセッションを抜けた事を通知します。
APP (Application-Defined) アプリケーションが独自拡張を行えるように用意されています。

RTCPで良く利用されるのがRTCP SRとRTCP RRだと思います。 これらを利用して、送信者は受信者での受信品質を知ることが出来ます。 具体的には、パケットロスとRTTがわかります。 受信者でのパケットロスは、RTCP RRに記述されます。 RTTは、RTCP SRとRTCP RRの両方を組み合わせて得られます。

図5. RTCPによるRTTの取得
RTCPによるRTTの取得

図5にRTCPによるRTT計算の方法を示します。 送信者はRTCP SRを送信した時間を覚えておきます。 受信者は、RTCP SRを受け取ってからRTCP RRを送るまでの時間を計測し、その値(図5の(b))をRTCP RRに記述します。 送信者は、RTCP SRを送った時間とRTCP RRを受け取った時間の差を計算します(図5の(a))。 図5の(a)から(b)を引いたものがRTTになります。

RTPは、マルチキャストを前提に設計されています。 そのため、RTCPもマルチキャストを意識した設計になっています。 例えば、RTCPの送信量の基準としては、「RTCPのトラフィックがセッション全体の5%を越えないこと」という決まりがあります。 マルチキャストセッションでは、受信者からのフィードバックであるRTCP RRはマルチキャストで送信されます。 他の受信者は、マルチキャストで送信されたRTCP RRを受信し、全体のセッション参加者数を予測して、RTCP RRの送信を控えたりします。

| 1 | 2 | 3 |

YouTubeチャンネルやってます!