Real-time Transport Protocol (RTP) について
Real-time Transport Protocol(RTP)は、
音声や
動画などのリアルタイムデータストリームをネットワーク上で伝送するためのプロトコルです。IETFとITUによって標準化されており、リアルタイム性を要求されるアプリケーションにおいて重要な役割を果たしています。
概要
RTPは、主にRTSPやH.323などの
通信プロトコルにおけるデータ部分で使用されます。特に、
VoIP(Voice over IP)関連の製品では、ほぼ全てがRTPを利用して
音声情報をIPネットワーク上で送受信しています。RTPは、リアルタイムストリームを効率的に伝送するためのプロトコルとして、広く採用されています。
RTPは、通常UDP上で動作します。UDPはTCPとは異なり、ヘッダーにシーケンス番号を持たないため、
パケットの順序を保証することができません。しかし、RTP
パケットのヘッダーにはタイムスタンプが含まれており、受信側はこの情報に基づいて
パケットの順序を把握し、データを適切に再生することができます。
ネットワーク環境では、
パケットの損失や遅延が発生する可能性があります。しかし、
音声や
動画などのストリーミングメディアデータは、多少のデータの欠落があっても再生が可能です。そのため、RTPでは受信側が期待する時間内に到着した
パケットのみを利用し、損失や遅延が発生した
パケットは無視することで、リアルタイム性を維持します。
RTPは単独で使用されることは少なく、RTCP(RTP Control Protocol)などの制御プロトコルと組み合わせて使用されます。RTPとRTCPは、RFC 3550で標準化されています。
機能
RTPは、以下の主要な機能を提供します。
ストリーム送信: RTPは、パケット間の関係性を管理し、音声や動画などのデータストリームを連続的に送信する機能を提供します。これにより、リアルタイムアプリケーションにおけるデータの円滑な伝送が可能になります。
順序制御: ネットワークの状況によっては、
パケットの到着順序が送信順序と異なる場合があります。RTPは、ストリームシーケンス番号を使用して、
パケットの順序を制御し、受信側でデータを正しく再構築できるようにします。
RTP
パケットのヘッダーは、少なくとも12バイトで構成されます。ヘッダーの後ろには、オプションで拡張ヘッダーを追加することができます。RTPヘッダーには、以下の重要な情報が含まれています。
順序番号: RTPパケットの送信順序を示す番号です。初期値はランダムであり、パケットが送信されるたびに増加します。
SSRC識別子: RTPストリームを一意に識別するための識別子です。32ビットのランダムな値で構成されており、RTPセッション内で一意です。
仕様
下層プロトコル
RTPは、トランスポートプロトコル上で動作します。RTPは、特定のトランスポートプロトコルに依存しないように設計されていますが、ポート機能を使用することを前提としています。通常はUDPが使用されます。
規格書
RTPに関する規格は、IETFによって策定されています。主な規格書には、以下のようなものがあります。
RFC 3550: RTPの基本的な仕様を定義しています。
RFC 3551: 音声およびビデオ会議のためのRTPプロファイルを定義しています。
関連項目
RTP Control Protocol (RTCP): RTPセッションを制御するためのプロトコルです。RTPと組み合わせて使用されます。
MGCP (Media Gateway Control Protocol): メディアゲートウェイを制御するためのプロトコルです。
遠隔会議: RTPは、遠隔会議システムで音声や動画データを伝送するために使用されます。
外部リンク
ウィキメディア・コモンズ - 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
RTPは、リアルタイム性が要求されるアプリケーションにおいて、データの効率的な伝送を実現するための重要なプロトコルです。
音声や
動画のストリーミング、
VoIP、ビデオ会議など、様々な分野で広く活用されています。