RTPとは
前回までの記事でSIPについての紹介をしてきましたが、SIPはIP電話の呼制御(シグナリング)部分を担当しているに過ぎず、SIPだけで電話機能の全てを実現しているわけではありません。
今回からは、音声通信時に使用するRTPについて見ていきます。
RTPとは
RTP(Realtime Transport Protocol)は主に音声や映像などのマルチメディアデータをリアルタイムで送信するためのプロトコルです。IP電話の他に、ビデオ会議やインターネット上でのライブ中継で使われるストリーミング配信技術などでもRTPが採用されています。
SIPとRTP
SIPとRTPはOSI参照モデルで分けて見た場合、セッション層に位置するプロトコルと言えます。SIPがセッションの開始と終了の作業を担当し、セッションを確立した後は、RTPによるセッション管理に切り替わることになります。
その際、SIPはINVITEリクエストと200応答での相手とのやり取り時に、お互いの能力(対応している音声コーデックなど)を確認し合い、その情報をRTPに引き継ぎ、それぞれが可能な方式で通話を実現します。
RTPによるセッション管理
RTPは下位層のプロトコルにリアルタイム通信に適しているUDPを使用します。UDPなので、TCPに備わっているエラー訂正機能や、フロー制御、ふくそう制御(ネットワーク上のトラフィック量に合わせてデータ送信量を調整する制御)などの仕組みがありません。
これは、速度を重視する結果であるため仕方のないことですが、リアルタイム通信においてもTCPの一部の仕組みが必要になります。
例えば、パケットの到着順序が正しい順番と異なるようなことが頻繁に起こる場合、明らかに音声がおかしくなります。
そのようなことを防ぐため、RTPにはTCPが持つ機能と同等な機能を持ち合わせています。