アカデミック

【初学者向け】マルチメディア通信<UDP/RTP編>

この記事では,マルチメディア通信に関わる知識を簡単にまとめていきたいと思います。ただし,全ての知識が詳しく網羅されている訳ではありません。また,分かりやすいように多少意訳した部分もあります。ですので,参考程度におさめていただければ幸いです。

間違えている箇所がございましたらご指摘ください。随時更新予定です。他のマルチメディア通信に関する記事はコチラのページをご覧ください。

TCP/IPとは

以下の記事で簡単に説明しています。

【超初心者向け】プロトコルとは?意味と使われ方をTCP/IPを用いて分かりやすく解説します!本記事は教養記事シリーズその23です。その他の教養記事はコチラの目次をご覧ください。 プロトコルとは プロトコル(p...

UDPとは

簡単にこちらの記事でお伝えしています。

【初学者向け】マルチメディア通信<TCP/IP編> この記事では,マルチメディア通信に関わる知識を簡単にまとめていきたいと思います。ただし,全ての知識が詳しく網羅されている訳ではありませ...

UDPは,TCPに比べて信頼性が担保されていないものの,実時間性があるシンプルなプロトコルです。また,TCPは一対一の通信にしか対応していません。そのため,通信が1往復のみで完了するものや,マルチキャストを用いるもの,映像・音声の伝送などでUDPが利用されます。また,NFSやTFTPなど,TCPでは効率が悪い通信ではUDPが利用されることもあります。

ここでいう「実時間性」とは,データを蓄積せずに処理を行う性質のことを指します。言葉を変えれば,一定時間内に処理が確実に完了することを保証し,決められた時刻(deadline)までに処理を完了させる方式ともいえます。もし,deadlineまでに処理が完了しなかった場合,Hard real-timeという実時間の制約をかけている場合には価値は0になり,Soft real-timeという処理の制約をかけている場合はdeadlineからの遅れに応じて価値は徐々に低下していきます。

deadlineとは逆の現象にも注意する必要があります。つまり,データが再生すべき時刻よりも早く到着してしまった場合には,その時間になるまでデータを保持しておく必要があります。

IPv6ではブロードキャスト通信が廃止されました。IPv6では端末がグローバルアドレスを持つからです。(ブロードキャスト通信はネットワークに負担をかけやすいという理由もあります。)一対複数の通信はマルチキャスト通信のみが用いられています。

このように,実時間データ伝送を実現するためには,種々の制約が必要になります。ここで登場するのが「RTP(Real-time Transport Protocol)」です。RTPはUDPと組み合わせて働くトランスポート層プロトコルです。

RTPを制御するためのプロトコルは「RTCP(Real Time Control Protocol)」と呼ばれており,RTPはRTCPに制御を任せます。RTCPが利用されない場合もあります。また,RTPでは偶数のポート番号が,RTCPでは奇数のポート番号が使用されることが推奨されています。

UDPでは輻輳制御は行われません。アプリケーション側に輻輳制御が任されています。

RTP

RTPは,UDPだけでは補いきれない情報を扱うために作られたプロトコルです。様々なプロトコルは,以下の図のような階層があります。

RTPストリーミングは,以下のような流れをとります。

また,RTPパケットは「IPヘッダ+UDPヘッダ+RTPヘッダ+ペイロード」という構成になっています。特に,RTPヘッダ+UDPヘッダは実時間データ伝送を円滑に行うための情報が格納されています。

RTPでは,受信ホストの利用可能帯域や端末能力に応じたペイロードフォーマットの変更(トランスレータ)や,複数ストリームの統合(ミキサ)の枠組みも提供します。

RTCP

RTCPは主に「通信状態の報告」「識別子の提供」「メディア間の同期」の機能を提供します。RTCPパケットとしては「受信レポート」「送信レポート」「ソース記述」「メンバシップ管理」「アプリケーション定義」があります。RTCPパケットは,定期的に全ての参加者に送られますが,あまりにも頻度が多すぎると帯域を消費してしまう恐れがあります。また,送信間隔に乱数を用いることで輻輳を防いでいます。

パケットの総量がネットワーク帯域の5%程度になることが推奨されています。

RTPにおける誤り回復

前方誤り訂正(FEC:Forward Error Correction)などが用いられます。FECは,データに冗長性を持たせて誤りを検出する方式で,誤りが生じていない場合でもデータが冗長化されてしまうという特徴があります。この方式は,誤りを検知してからデータを再送するのでは間に合わないような場合に利用されます。

FECの派生として,パリティ符号を用いるものや,Reed-Solomon符号を用いるものなどがあります。

他にも,誤り訂正符号を適用するデータの順番を入れ替えることでバースト誤り(ノイズなどにより連続して起こる誤り)に強くなるインターリービングも利用されます。インターリービングは,遅延が大きくなるという欠点もあります。

RTPは主にテレビ会議装置で利用されているとのことです。Youtubeなどでは,Google独自のプロトコルがTCPベースで適用されているとのことです。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です