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

RFC 3550 - 11. ネットワークおよびトランスポートプロトコル上の RTP

11. ネットワークおよびトランスポートプロトコル上の RTP (RTP over Network and Transport Protocols)​

本節は、特定のネットワークおよびトランスポートプロトコル内で RTP パケットを運ぶことに特有の問題を記述する。以下の規則は、本仕様外のプロトコル固有定義により置き換えられない限り適用される。

RTP は、RTP データストリームと RTCP 制御ストリームの分離(demultiplexing)を提供するため、下位プロトコルに依存する。UDP および類似のプロトコルについて、RTP は偶数の宛先ポート番号を用い、対応する RTCP ストリームは次に高い(奇数の)宛先ポート番号を用いるべきである (SHOULD)。単一のポート番号をパラメータとして受け取り、そこから RTP および RTCP のポート対を導出するアプリケーションについて、奇数が与えられた場合、アプリケーションはその数をポート対の基底として用いる次に低い(偶数の)数に置き換えるべきである (SHOULD)。RTP および RTCP の宛先ポート番号が明示的かつ別個のパラメータ(シグナリングプロトコル等)により指定されるアプリケーションでは、偶数/奇数のポート対を用いることが推奨されるものの、アプリケーションはポート番号が偶数/奇数で連続することの制限を無視してよい (MAY)。RTP と RTCP のポート番号は同一であってはならない (MUST NOT)。なぜなら RTP はポート番号により RTP データと RTCP 制御ストリームを分離するからである。

ユニキャストセッションにおいて、両参加者は RTP および RTCP パケットを受信するためのポート対を特定する必要がある。両参加者は同じポート対を用いてよい (MAY)。参加者は、着信 RTP または RTCP パケットの送信元ポートを、発信 RTP または RTCP パケットの宛先ポートとして用いられると仮定してはならない (MUST NOT)。両方向で RTP データパケットが送信されている場合、各参加者の RTCP SR パケットは、他の参加者が RTCP 受信用に指定したポートへ送信されなければならない (MUST)。RTCP SR パケットは、発信データの送信側情報と着信データの受信報告情報を結合する。ある側が能動的にデータを送信していない場合(セクション 6.4 参照)、代わりに RTCP RR パケットが送信される。

階層的符号化アプリケーション(セクション 2.4 参照)は、連続するポート番号の組を用いることが推奨される (RECOMMENDED)。ポート番号は一意でなければならない (MUST)。なぜなら、複数のマルチキャストアドレスで同じポートを使用することを防ぐ既存のオペレーティングシステムに広く見られる欠陥があり、ユニキャストでは許容されるアドレスは 1 つしかないからである。したがって層 n について、データポートは P + 2n、制御ポートは P + 2n + 1 となる。IP マルチキャストを用いる場合、アドレスも一意でなければならない (MUST)。なぜならマルチキャストルーティングおよびグループメンバシップはアドレス粒度で管理されるからである。しかし、連続する IP マルチキャストアドレスの割り当ては想定できない。なぜなら一部のグループは異なるスコープを必要とし、したがって異なるアドレス範囲から割り当てられるかもしれないからである。

前段落は、同じセッション記述で複数のアドレスと複数のポートの両方を指定することは、アドレスとポートの対応が曖昧になり得るため違法であると述べる SDP 仕様 RFC 2327 [15] と抵触する。RFC 2327 の改訂により、等数のアドレスとポートを 1 対 1 のマッピングが暗示される形で指定できるよう、この制限が緩和されることが意図されている。

RTP データパケットは長さフィールドや他の区切りを含まないため、RTP は長さ指示を提供するため下位プロトコルに依存する。RTP パケットの最大長は、下位プロトコルによってのみ制限される。

メッセージ(パケット)ではなく連続したオクテットストリームの抽象化を提供する下位プロトコルで RTP パケットを運ぶ場合、フレーミング機構を提供するよう RTP パケットのカプセル化を定義しなければならない (MUST)。下位プロトコルがパディングを含み得るため RTP ペイロードの範囲を決定できない場合にもフレーミングが必要である。フレーミング機構はここでは定義されない。

プロファイルは、1 つの下位層プロトコルデータユニット(UDP パケットなど)に複数の RTP パケットを運ぶことを可能にするため、フレーミングを提供するプロトコルで RTP が運ばれる場合であっても用いるべきフレーミング方法を規定してよい (MAY)。1 つのネットワークまたはトランスポートパケットに複数の RTP パケットを運ぶことは、ヘッダオーバヘッドを低減し、異なるストリーム間の同期を単純化し得る。