はじめに
インターネット電話のVoIPやビデオ会議では、相手を呼び出して通信を始める処理と、音声や映像そのものを送り続ける処理は同じではありません。通信を成立させるには、「誰と、どの条件で通信するか」を決める制御と、リアルタイムデータを運ぶ転送を分けて考える必要があります。
この役割分担で代表的なのがSIP・RTP・RTCPです。SIPは通信セッションの開始や終了などを制御し、RTPは音声や映像を運び、RTCPはRTP通信の状態を報告します。この記事では、VoIPやビデオ会議を例に、3つのプロトコルがどのように連携するのかを解説します。
この記事で分かること
- SIPが担当するシグナリングの役割
- RTPが音声・映像を運ぶ仕組み
- RTCPがRTP通信の品質情報を報告する役割
- SIP・RTP・RTCPが連携して通信を成立させる流れ
VoIP・ビデオ会議では制御とメディア転送を分ける
VoIPやビデオ会議では、最初から音声や映像を送り始めるわけではありません。まず通信相手を特定し、セッションを開始するか、どのようなメディアを使うかといった条件を決める必要があります。
この通信開始までの制御を「シグナリング」と呼びます。シグナリングと、音声・映像などのメディア転送を分けることで、それぞれの役割に適したプロトコルを利用できます。
代表的な構成では、SIPがシグナリングを担当し、RTPがリアルタイムデータを運びます。RTPと組み合わせて使われるRTCPは、パケット損失やジッターなどの受信状態を報告し、通信品質の把握を助けます。
SIPのような通信ルールはアプリケーション層のプロトコルとして扱われます。アプリケーション層全体の役割は、アプリケーション層とは?OSI・TCP/IPモデルでの役割を解説を参照してください。
SIPが通信の開始・変更・終了を制御する
SIP(Session Initiation Protocol)は、通信セッションを作成・変更・終了するためのシグナリングプロトコルです。インターネット電話やマルチメディア会議では、相手を呼び出し、通信を開始し、必要に応じて条件を変更し、最後にセッションを終了する処理を担当します。
SIP自体が音声や映像のデータを運ぶわけではありません。SIPでは、メッセージ本文にセッション記述を含めて、利用するメディアなどの条件を伝えられます。代表的な記述形式がSDP(Session Description Protocol)です。
つまりSIPの役割は、「通話データを届けること」ではなく、「これからどのような通信を始めるかを調整すること」です。
RTPが音声・映像をリアルタイムに運ぶ
RTP(Real-time Transport Protocol)は、音声や映像など、時間的な連続性が重要なデータを運ぶためのプロトコルです。RTPヘッダーには、ペイロードの種類を示す情報、シーケンス番号、タイムスタンプなどが含まれます。
シーケンス番号は、受信側がパケットの欠落や順序を把握するために利用できます。タイムスタンプは、送信側で作られた再生タイミングを受信側で再構成するために使われます。これにより、受信側は届いたデータを適切な順番とタイミングで扱いやすくなります。
RTPは一般にUDP上で利用されますが、UDP専用のプロトコルではありません。また、RTP自身がパケットの到着を保証したり、遅延を一定に保ったり、QoSを保証したりするわけでもありません。リアルタイム通信に必要な識別・順序・時刻情報を提供し、実際の再生や損失への対応はアプリケーションや関連する仕組みと組み合わせて行います。
UDPの特徴と、TCPとの役割の違いは、トランスポート層とは?役割とTCP・UDPの違いを分かりやすく解説で解説しています。
RTCPが通信状態を監視・報告する
RTCP(RTP Control Protocol)は、RTPと組み合わせて使う制御プロトコルです。RTPがメディアデータを運ぶのに対し、RTCPは通信参加者や受信品質に関する情報を交換します。
RTCPのSender ReportやReceiver Reportには、受信したRTPパケットの損失状況やジッターなど、通信状態を判断するための情報が含まれます。送信側や監視システムは、このフィードバックを通信品質の把握や送信方法の調整に利用できます。
ただし、RTCPそのものが必ず自動で送信レートを変更するわけではありません。RTCPは品質情報を報告する仕組みであり、その情報を受けてどのように通信を調整するかは、アプリケーションや使用する方式によって異なります。
SIP・RTP・RTCPが連携する流れ
VoIP通話を単純化すると、SIP・RTP・RTCPは次のように連携します。
- 発信側がSIPで相手を呼び出す
- SIPでセッション記述をやり取りし、利用するメディアなどの条件を調整する
- セッションが成立したら、RTPで音声や映像を送受信する
- 通信中はRTCPで受信状態などの情報を交換する
- 通話を終えるときはSIPでセッションを終了する
この流れを見ると、「呼制御」と「メディア転送」が別の処理であることが分かります。SIPが通話の準備と終了を担当し、実際の音声や映像はRTPが運びます。RTCPはそのRTP通信を補助する情報交換を担当します。
H.323との位置づけ
H.323は、ITU-Tが定めるパケット網上のマルチメディア通信システムです。SIPのような単一のシグナリングプロトコルと一対一で対応するものではなく、端末やゲートウェイ、呼制御、メディア制御などを含む複数の仕組みで構成されます。
VoIPやビデオ会議にはH.323を使う構成もありますが、この記事では個別のH.323手順までは扱いません。重要なのは、マルチメディア通信では通信の制御とメディア転送が役割として分かれており、SIP・RTP・RTCPはその役割分担を理解しやすい代表例だという点です。
まとめ
VoIPやビデオ会議では、通信を開始・終了する制御と、音声・映像をリアルタイムに運ぶ処理を分けて考えます。
- SIPはセッションの作成・変更・終了を行うシグナリングを担当する
- RTPは音声・映像などのリアルタイムデータを運び、シーケンス番号やタイムスタンプを提供する
- RTPは通常UDP上で使われるが、UDP専用ではなく、到着やQoSを保証するものでもない
- RTCPはパケット損失やジッターなど、RTP通信の受信状態を報告する
- SIP・RTP・RTCPを組み合わせることで、呼制御とメディア転送を役割分担できる
「VoIPではUDPを使う」とだけ覚えるのではなく、通信を準備するSIP、メディアを運ぶRTP、状態を報告するRTCPという役割の違いを整理すると、リアルタイム通信の仕組みを理解しやすくなります。