RTCP【RTP Control Protocol】

広告

広告

RTCPとは

最終更新
2006-01-30T17:30:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/rtcp.html#what

RTPと組み合わせて使われる、データのフローチェックや送信者受信者間の情報を伝達するためのプロトコルで、RTP制御プロトコルと訳されます。RTCPはRTPでデータを送受信するためのセッションを制御するサブプロトコルとして位置づけられています。RTPセッションはネットワークアドレスと2つのポートで識別されます。ここで、1つのポートはRTPデータが使用し、残る1つはRTCPデータが使用します。例えばUDPを使用する場合、RTPは偶数番のUDPポートを、RTCPはその1つ上の奇数番UDPポートをアプリケーションポート番号として使用します。RTPをUDP/IPで利用する際のデフォルトポート番号は5004と5005ですが、多くの場合アプリケーションはこれらのポートを使用せず、セッションのセットアップ時に動的に割り当てたポートを使用します。ただし、現在ではRTPデータに偶数のポート番号を使用すると言う規制は緩和され、また、RTPとRTCPに連続しないポート番号を使うことも認められています。

RTPセッション内の全ての参加者は、RTCPパケットを送信する一方で、他の全ての参加者から送信されるRTCPパケットを受信します。このときのフィードバックは複数の参加者からなるRTPセッションにおいて全ての参加者に送信されることとなります。

RTCPパケットのフォーマット

最終更新
2006-02-05T16:13:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/rtcp.html#format

RTCPパケットは以下のフォーマットとなっています。ただし、RTCPパケットは1つずつ単体で転送されることは無く、通常はUDP/IPパケットが使われるのですが、下位層のパケットに必ずいくつかのRTCPパケットがまとめられた複合パケットとしてカプセル化されて転送されます。

RTCPパケットのフォーマット
VPカウントPTパケット長
種類別情報(パディング)
V【Version number】
プロトコルバージョンを表す2bit。現行のRTPバージョンである2が入ります。
P【Padding】
パディングフラグを表す1bit。パケットの末尾に1オクテット以上のパディングが追加された場合に1がセットされます。パディングの最後のオクテットには、追加されたパディングのオクテット数が入れられます。
カウント【Item Count】
パケットの種類によってパケットに含まれる項目の数を示す5bit。各RTCPパケットには最大31の項目を含めることができます。カウントが0の場合は項目リストに何も入っていないことを示します。カウントを必要としない種類のパケットではこのフィールドを別の目的で使用しても構いません。
PT【Packet Type】
RTCPパケットタイプを示す8bit。後述のRTCP制御パケットタイプが示すものがありますが、将来的にはこれ以外の種類のパケットが定義される可能性があります。
パケット長【Length】
ヘッダを除くパケット長を示す16bit。32bitのワード単位で数えます。

RTCP制御パケットタイプ

最終更新
2006-02-26T13:15:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/rtcp.html#p_type
RTCP制御パケットタイプ
略称Code名称引用
SR200送信者レポート【Sender Report】RFC1890
RR201受信者レポート【Receiver Report】RFC1890
SDES202送信元記述【Source Description】RFC1890
BYE203退去メッセージ【Goodbye】RFC1890
APP204アプリケーション定義【Application Defined】RFC1890
FIR192フルイントラフレーム要求【Full INTRA-Frame request】RFC2032
NACK193否定応答【Negative acknowledgement】RFC2032

受信者レポート

受信者レポートは受信品質のフィードバックに主に使われます。これは送信側だけでなく、他の参加者やサードパーティ製の監視ツールでも利用できます。送信側はRRパケットによるフィードバックに従ってデータの転送量を調節することが可能です。それ以外の参加者もRRパケットにより問題が局所的なものか多数の受信側で発生しているのかを判断できます。また、送信側はLSRとDLSRのフィールドを使用し、自分と各受信者間の往復時間を計算する事もできます。

RRパケットのフォーマット
VPRCPT=201パケット長
レポート作成者のSSRC
レポート対象者のSSRC
欠落率累積欠落パケット数
最大拡張シーケンス番号
パケット間隔ジッタ
最新送信レポートのタイムスタンプ(LSR)
最新送信レポート経過時間(DLSR)
(次の受信レポートブロック:レポート対象者のSSRC)

送信者レポート

アプリケーションはデータを受信せずに、SRパケットの情報に基づいてインターバル単位でのペイロードデータの平均レートとパケットの平均レートを計算できます。そしてこの2つの比率からペイロードの平均サイズを得ることができます。また、タイムスタンプを使えば、メディアクロックと周知の外部参照との間の対応付けができます。これによってリップシンクが可能となるのです。

SRパケットのフォーマット
VPRCPT=200パケット長
レポート作成者のSSRC
NTPタイムスタンプ
RTPタイムスタンプ
送信側のパケットカウント
送信側のオクテットカウント
(受信レポートブロック)

送信元記述

このパケットでは、参加者の識別を可能にするほか、場所や電子メールアドレス、電話番号といった補足情報を提供します。SDESパケットの情報はユーザによって入力され、通常はアプリケーションのGUIに表示されます。

SDESパケットのフォーマット
VPRCPT=202パケット長
SSRC/CSRC 1
SDES項目のリスト
SSRC/CSRC 2
SDES項目のリスト

退去メッセージ

このパケットを使用し、一部の参加者がセッションから出たことを知らせます。また、参加者が自分のSSRCを変更した際にも生成されます。

BYEパケットのフォーマット
VPRCPT=203パケット長
SSRC1
SSRC2
...
SSRCn
オプション長セッションを出る理由

アプリケーション定義

アプリケーションで機能拡張を定義できるよう用意されています。

APPパケットのフォーマット
VPRCPT=204パケット長
SSRC
アプリケーション定義パケット名
アプリケーション定義データ

補足知識

最終更新
2006-01-29T13:44:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/protocol/rtcp.html#supplement

広告

当ページ作成にあたり、参考にさせてもらったリソース

Copyright (C) 2006 七鍵 key@do.ai 初版:2006年01月30日 最終更新:2006年02月26日