RTPはUDP上で動作する!5つの仕組み解説や活用事例を紹介

RTPはUDP上で動作する!5つの仕組み解説や活用事例を紹介のアイキャッチイメージ

RTPとはどんなプロトコル?

RTPとはリアルタイムトランスポートプロトコルの略称で、インターネット上で音声や動画をリアルタイムに転送するため、RTSPやH.323の通信プロトコルのデータ部分に使用されます。これまでのTCPベースの仕組みは品質を確保するため、転送結果を確認し、エラーなら再送します。再送が行われると、通信が止まってしまうので、リアルタイムのデータを送ることはできません。RTPは、送信エラーが発生しても、リアルタイムでデータを送り続けるための仕組みです。

RTPの仕組み5つ

通常、インターネットではTCPというプロトコルでデータが転送されていますが、TCPはデータの品質を確保するため、リアルタイムのデータ転送ができず、また1対1の通信しかできません。プロトコルとは、コンピューター間の通信をする際の手順や規格です。RTPでは、データの品質を二の次として、リアルタイムにブロードキャスト型通信、マルチキャスト型通信を実現するために作られました。RTPはさまざまな仕組みを用意して、リアルタイムのデータ転送を実現します。

RTPの仕組み1:UDP上で動作する

RTPはインターネットで一般的なTCPではなく、UDP上で動いています。TCPはデータ転送の完全性を担保するために、必ず送ったデータが届いたかを確認し、届いていなければ再送するので、リアルタイムでシーケンシャルにデータを送ることができません。

またTCPは輻輳制御も行っており、ネットワークが混雑してくると送信レートが変えられるため、リアルタイム送信には向きません。UDPではTCPのような制御が実装されておらず、通信エラーが発生してもそのままシーケンシャルに同じ送信レートで送信され続けるので、RTPはUDPでリアルタイム送信を実現します。

RTPの仕組み2:RTP単独では動作しない

RTPでは、データ転送などの挙動に対する制御をRTP側で規定せず、RTPで保持している情報をもとに、ほかのプロトコルやフォーマットで挙動を実現します。TCPは単独でデータ通信のすべての制御を行いますが、RTPでは単体ですべての制御を行わない仕組みにしています。RTPは、単独で全部の制御を行わず、他のプロトコルと合わせることで、その時点で最適なリアルタイム転送を実現します。

RTPの仕組み3:受信側ではシーケンス番号によってパケットを並び替え

RTPでは、リアルタイム通信を実現するために受信側でパケットの並び替えを行いますが、UDPの通信プロトコルにはシーケンス番号の項目はなく、送信時と同じ順序でデータを並べ替えることができません。UDP側では送信順にデータを並べ替えることができないので、RTPパケットのRTP用ヘッダに記述されているタイムスタンプとシーケンス番号を受信側のRTPサーバで読み取り、並べ替えを行ってリアルタイム通信を実現します。

RTPの仕組み4:タイムスタンプを記述する

RTPはタイムスタンプをリアルタイム通信のために使用していますが、使用している通信プロトコルであるUDPにはタイムスタンプがありません。RTPは、タイムスタンプを通信プロトコル側でなくRTP側に持つことで、リアルタイム通信を実現しています。

RTPの仕組み5:1通話あたりの必要帯域は?

RTPをIT電話として音声通信用途で使用する場合に必要な帯域は、計算式(音声データサイズ+各ヘッダサイズ)×8×pps(1秒当たりのパケット量)で出すことができます。VoIPでよく使用されるG.711であれば、(160byte+58byte)×8×50pps=87.2Kbpsで、余裕を見れば100Kbps程度が必要帯域になります。人の声を再現するのに向いているG.729なら、(20byte+58byte)×8×50pps=31.2Kbpsで、余裕を見て40Kbpsを必要帯域とします。

RTPの特徴7つ

インターネットで一般的に使われているTCPと比べて、RTPはいくつかの特徴があります。RTPはデータの正確性を犠牲にし、リアルタイムのデータ通信を実現するためのプロトコルであり、データの正確性を重視するTCPと異なる考え方や実装方法をとっています。ここではRTPの特徴について7つご紹介します。

RTPの特徴1:リアルタイムに転送できる

RTPは、現在リアルタイムでデータを伝送する用途でよく使われているプロトコルです。インターネットで一般的に使われているTCPなどのプロトコルでは、個々のデータの信頼性を高める仕様のせいで、リアルタイムのデータ通信の実現は難しくなります。RTPではデータのリアルタイム性を実現するために、TCPで行っている制御を外して、エラーが発生してもそこをリカバリーすることなく、送信されたデータを時間順に再生することを実現します。

RTPの特徴2:品質の高いデータ通信が可能

UDPを使用すると、TCPのようにデータの整合性を保つための制御をしないので、多少のエラーがあってもデータを送ることはできますが、UDP自体にはシーケンス番号やタイムスタンプがないため、リアルタイムにデータを再生できません。UDPの上でRTPを使用することで、RTP側で持っているシーケンス番号とタイムスタンプを使って正しくリアルタイムのデータ通信を実現できます。

RTPの特徴3:簡単にプログラムを記述できる

TCPはプロトコル側で品質を確保する仕組みを持っており、パケットロスなどが生じた場合のロジックなどを考慮する必要がないため、プログラムを簡単に記述できます。RTPは、TCPよりは記述しなければならない項目は増えますが、UDPとRTP、RTCPによる制御手順があるので、比較的簡単にプログラムを記述できます。TCPより制御の自由度が高い為、今後メインストリームが変わった場合でも、プログラムレベルで対応が可能です。

RTPの特徴4:RTPは単独では不十分なプロトコル

RTPは、単独での使用ができず、転送プロトコルであるUDPとRTCPによる制御を加えて初めて機能します。組み合わせるプロトコルが外部にあるため、ネットワーク全体に大きな変更が生じた場合でも、組み合わせるプロトコルを変更することで対応する自由度があります。転送プロトコルについては、現在でもUDP以外にIPやATMを使用するケースもあります。

RTPの特徴5:アプリケーション側でフレーミングを行う

通常、フレーミングはTCPのようにトランスポート層で行われることが多いですが、RTPではアプリケーション側でフレーミングを行います。RTPのトランスポート層であるUDPにはシーケンス番号とタイムスタンプが記載されないので、RTPのヘッダに記載されているシーケンス番号とタイムスタンプを使用して、リアルタイム制御をアプリケーションレベルでフレーミングを行います。

RTPの特徴6:1対複数の通信が可能

インターネットの標準的なプロトコルであるTCPは、1対1の通信しかサポートしていません。RTPは、通信状況を見て制御を変えないUDPを使用することで、1対多のブロードキャスト通信やマルチキャスト通信に対応しています。リアルタイム通信では、個々のデータの正確性より、時間軸に沿った順序でデータを再現することが重要なので、細かい正確性の制御は必要ないため、UDPが適しています。

RTPの特徴7:RTCPによるデータ転送制御

RTPのデータ転送はRTCPによって制御されます。RTPでできるのはデータのリアルタイム転送のみなので、データ転送の遅延やデータのロス率などの転送状況の把握にはRTCPメッセージを利用します。TCPを利用することで、アプリケーションにデータ通信の品質情報を提供できます。各機器のクロック同期やメディア間の同期などもRTCPの持っている情報で行います。RTCPは、RTPでのデータ通信の品質を確保する必要がある場合に有効です。

RTPの活用事例3つ

RTPはリアルタイムでのデータ送信を実現できるため、時系列通りにデータを受信できないと意味をなさない音声や動画などの情報を送るのに適しています。その特性を活かして、インターネット経由の音声通話や、映像配信システムなどで活用されています。個々のデータを考える必要のない一方的なデータ送付システムは、情報システムに関する知識がなくても利用できるので、今後も多くの分野で使われるようになります。

RTPの活用事例1:ストリーミング

RTPは、ストリーミングによるマルチメディアデータの配信に使われています。ストリーミングでは個々のパケットの品質よりも、マルチメディアデータ全体が時系列通りに配信されることが重要視されるので、TCPのような高品質のデータを保障するシステムではなくRTPが利用されます。最低限の品質については、RTCPで制御することでコントロールされます。

RTPの活用事例2:VoIP

RTPは、インターネット電話として利用されているVoIPの中核技術として採用されています。電話などの音声情報は、時系列が保証されないと意味をなさなくなってしまいます。多少雑音が混ざっても、人間側で情報を補完することが可能なので、RTPで実現することができます。インターネット上でデータを送受信すると、通話料金は発生せず、大きなコスト削減にもつながります。

RTPの活用事例3:テレビ会議

RTPでは、マルチメディアデータを多拠点間でリアルタイムに配送することでテレビ会議を実現します。テレビ会議は大勢の参加者が同じストリームに参加しますが、その場合に個々の参加者の接続や切断の通知にRTCPが使用されます。VoIPと同様に、通信回線はインターネットを使用するため、テレビ会議を実現するのにコストの発生がないのも大きなメリットです。

RTPの仕組みを理解しよう

RTPは、インターネットのメインプロトコルであるTCPに比べてデータの品質は落ちますが、リアルタイムのデータの転送を実現できるプロトコルです。リアルタイム通信を実現するために、さまざまな技術やプロトコルを採用し、それぞれの特性を活かしています。RTPの特性や仕組みを理解し、メリットの多いRTPの導入を検討しましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。