RTPとはリアルタイムトランスポートプロトコルの略称で、インターネット上で音声や動画をリアルタイムに転送するため、RTSPやH.323の通信プロトコルのデータ部分に使用されます。これまでのTCPベースの仕組みは品質を確保するため、転送結果を確認し、エラーなら再送します。再送が行われると、通信が止まってしまうので、リアルタイムのデータを送ることはできません。RTPは、送信エラーが発生しても、リアルタイムでデータを送り続けるための仕組みです。
通常、インターネットでは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は、単独で全部の制御を行わず、他のプロトコルと合わせることで、その時点で最適なリアルタイム転送を実現します。