コンテンツにスキップ

Real-time Transport Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Real-time Transport Protocol
通信プロトコル
略称 RTP
目的 オーディオとビデオの配信を行う
開発者 Audio-Video Transport Working Group of the IETF
導入 1996年1月 (30年前) (1996-01)
派生元 Network Voice Protocol[1]
RFC RFC 1889, 3550, 3551

Real-time Transport Protocol(リアルタイム トランスポート プロトコル、RTP)は、音声動画などのデータストリームをリアルタイムに配送するためのデータ通信プロトコルである。

概要

[編集]

RTSPH.323通信プロトコルのデータ部分に使用される。 ほぼ全てのVoIP関連製品は、RTPを利用して、音声情報をIPネットワーク上へ送出している。 これは、リアルタイムストリームを運ぶためのプロトコルとしてIETFおよびITUによって標準化されている。

RTPは典型的にはUDP上で利用される[2]TCPと違ってUDPのヘッダーには「シーケンス(順序)番号」の項目が存在しないため順序の組み立てができない。しかし、RTPパケットを受信したホストは、RTPパケット内のヘッダーにある情報のうち、時刻情報(タイムスタンプ)から各パケットの時間的な順序関係を把握し、データを再生することができる。(詳細は #順序制御)。

RTPパケットも他のパケットと同様に、ネットワークを経由して転送されていく中で、喪失や、配送の遅れが起こる。しかし、映像や音声のデータ(ストリーミングメディアデータ)は、データの一部が多少欠けていても再生が可能であるため、データの受信側では、喪失や、配送の遅れたパケットは無視し、受信側が期待する時間に到着したパケットだけを利用してデータを再生することができる。

RTPは単独で利用されることはなく、RTCP (RTP Control Protocol) のような制御プロトコルと組み合わせて利用される[3]。RTPとRTCPはともにRFC 3550にて標準化されている。

表. UDP, RTP/UDP, TCP 比較
UDP RTP/UDP TCP
アプリ間通信
パケットトランザクション
ストリーム通信 -
順序制御
到着順序保証 - -[4]
シーケンス順序復元 - [5]
到達保証 - -[6]

機能

[編集]

RTPは以下の機能を提供する。

ストリーム送信

[編集]

パケット通信プロトコルは独立したパケットを送信するため、パケット間の関係性を扱わない。RTP はストリーム機能を提供することで、音声や動画などデータストリームの送信を可能にする。

順序制御

[編集]

ネットワークの輻輳や負荷分散、その他ネットワークの予測できない振る舞いにより、パケットは遅延し順序がばらばらに届きうる。パケット集合をストリームとしてデコードするにはパケットの順序を知る必要がある。RTPはストリームシーケンス番号機能を提供することで順序制御を可能にする[7]

パケットヘッダー

[編集]
RTP packet header
Bit offset 0-1 2 3 4-7 8 9-15 16-31
0 バージョン P X CC M PT 順序番号
32 タイムスタンプ
64 SSRC識別子
96 CSRC識別子
...
96+32×CC プロファイル固有の拡張ヘッダーID 拡張ヘッダー長
128+32×CC 拡張ヘッダー
...

RTPヘッダーは、12バイトが最小サイズである。 ヘッダーの後ろのオプションの拡張ヘッダーは存在してもよい。[8]

順序番号

[編集]

順序番号: sequence number)はRTPパケットの送出順序番号である[9]。初期値はランダムである[10]

SSRC識別子

[編集]

SSRC識別子: SSRC identifier)はRTPストリームの識別子である。SSRC識別子の実体はRTPセッション内で一意な32bitのランダム値である[11]

仕様

[編集]

下層プロトコル

[編集]

RTPはトランスポートプロトコル上で利用される。

仕様上、下層プロトコルは特定プロトコルに縛られないが[12]ポート機能を前提とする[13]

規格書

[編集]

IETF において RTP に関する規格が策定されている。以下はその一部である:

表. RTP 規格
規格書名 規格種別 発行日
RTP: A Transport Protocol for Real-Time Applications RFC Internet Standard 2003-07
A Taxonomy of Semantics and Mechanisms for Real-Time Transport Protocol (RTP) Sources RFC Informational 2015-11

出典・脚注

[編集]
  1. Perkins 2003, p. 6.
  2. "Applications typically run RTP on top of UDP"RFC 3550より引用。
  3. 15群(○○○)-8編 - 03gun_04hen_05.pdf
  4. "RTP itself ... does not prevent out-of-order delivery"RFC 3550より引用。
  5. "The sequence numbers included in RTP allow the receiver to reconstruct the sender's packet sequence"RFC 3550より引用。
  6. "Note that RTP itself ... does not guarantee delivery"RFC 3550より引用。
  7. "the real-time transport protocol ... provides end-to-end delivery services ... Those services include ... sequence numbering ... The sequence numbers included in RTP allow the receiver to reconstruct the sender's packet sequence ... All packets from a synchronization source form part of the same timing and sequence number space"RFC 3550より引用。
  8. Peterson 2007, p. 430
  9. "The sequence number increments by one for each RTP data packet sent"RFC 3550より引用。
  10. "The initial value of the sequence number SHOULD be random (unpredictable) to make known-plaintext attacks on encryption more difficult"RFC 3550より引用。
  11. "The SSRC identifier is a randomly chosen value meant to be globally unique within a particular RTP session"RFC 3550より引用。
  12. "RTP may be used with other suitable underlying network or transport protocols"RFC 3550より引用。
  13. "RTP depends upon the lower-layer protocol to provide some mechanism such as ports"RFC 3550より引用。

関連項目

[編集]

外部リンク

[編集]

ウィキメディア・コモンズには、Real-time Transport Protocolに関するメディアがあります。

  • RFC 3550 - A Transport Protocol for Real-Time Applications
  • RFC 3551 - RTP Profile for Audio and Video Conferences with Minimal Control