メインコンテンツまでスキップ

6. RTP制御プロトコル -- RTCP (RTP Control Protocol -- RTCP)

RTP制御プロトコル (RTP Control Protocol, RTCP) は、データパケットと同じ配信メカニズムを使用して、セッションのすべての参加者に制御パケットを定期的に送信することに基づいています。基盤プロトコルは、データパケットと制御パケットの多重化を提供する必要があります(例えば、UDPで別々のポート番号を使用)。

RTCPは4つの機能を実行します:

  1. 主な機能は、データ配信の品質に関するフィードバックを提供することです。これはトランスポートプロトコルとしてのRTPの役割の不可欠な部分であり、他のトランスポートプロトコルのフロー制御および輻輳制御機能に関連しています。

  2. RTCPは、正規名またはCNAMEと呼ばれるRTPソースの永続的なトランスポートレベル識別子を運びます。SSRC識別子は衝突が発見されたりプログラムが再起動されたりすると変更される可能性があるため、受信者は各参加者を追跡するためにCNAMEを必要とします。

  3. 最初の2つの機能では、すべての参加者がRTCPパケットを送信する必要があるため、RTPが多数の参加者にスケールアップするためにレートを制御する必要があります。各参加者が他のすべての参加者に制御パケットを送信することにより、各参加者は参加者数を独立して観察できます。この数値は、パケットが送信されるレートを計算するために使用されます。

  4. 4番目のオプション機能は、最小限のセッション制御情報を伝達することです(例えば、ユーザーインターフェースに表示される参加者識別)。これは、メンバーシップ制御やパラメータネゴシエーションなしに参加者が参加および退出する「緩やかに制御された」セッションで最も有用です。

機能1〜3は、すべての環境、特にIPマルチキャスト環境で使用する必要があります (SHOULD)。RTPアプリケーション設計者は、ユニキャストモードでのみ機能し、より多数にスケールしないメカニズムを避ける必要があります (SHOULD)。

6.1 RTCPパケットフォーマット (RTCP Packet Format)

本仕様は、さまざまな制御情報を運ぶためのいくつかのRTCPパケットタイプを定義します:

  • SR (送信者レポート, Sender Report): アクティブな送信者である参加者からの送信および受信統計
  • RR (受信者レポート, Receiver Report): アクティブな送信者でない参加者からの受信統計
  • SDES (ソース記述, Source Description): CNAMEを含む項目
  • BYE: 参加の終了を示す
  • APP: アプリケーション固有の機能

各RTCPパケットは、RTPデータパケットのものと類似した固定部分で始まり、その後にパケットタイプに応じて可変長であるが常に32ビット境界で終わる構造化要素が続きます。

6.2 RTCP送信間隔 (RTCP Transmission Interval)

RTPは、数人の参加者から数千人までのセッションサイズに対してアプリケーションが自動的にスケールできるように設計されています。RTPセッション帯域幅はデータ部分と制御部分に分割され、RTCPには通常セッション帯域幅の5%が割り当てられます。

6.3 RTCPパケット送受信規則 (RTCP Packet Send and Receive Rules)

RTCPパケットを送受信する方法の規則は、あらゆるサイズのセッションで適切な動作を実現するように注意深く設計されています。

6.4 送信者および受信者レポート (Sender and Receiver Reports)

RTP受信者は、受信者が送信者でもあるかどうかに応じて2つの形式のいずれかを取るRTCPレポートパケットを使用して受信品質フィードバックを提供します。

6.5 SDES: ソース記述RTCPパケット (SDES: Source Description RTCP Packet)

SDESパケットは、ヘッダーと0個以上のチャンクで構成される3レベル構造であり、各チャンクはそのチャンクで識別されるソースを記述する項目で構成されます。

6.6 BYE: さようならRTCPパケット (BYE: Goodbye RTCP Packet)

BYEパケットは、1つ以上のソースがアクティブでなくなったことを示します。

6.7 APP: アプリケーション定義RTCPパケット (APP: Application-Defined RTCP Packet)

APPパケットは、新しいアプリケーションと新しい機能が開発される際の実験的使用を目的としています。