2009年5月5日火曜日

ゼロから学ぶSIP: 第02回 SIPが扱う「セッション」とは?

SIPとはセッションを開始するときに使うプロトコルです。ここでいうセッションとは、端的に言えば、通信元と通信先とその間を流れる情報(メディア)のセットのことです。RTP[RFC3350]でのセッションの定義に似ていますね。例えば、電話は発信者(通信元)と着信者(通信先)が音声というメディアを交換し合うセッションです。テレビは配信元(通信元)から視聴者(のテレビ)(通信先)へ映像と音声というメディアを流すセッションです。チャットは2人以上の通信者がテキスト(メディア)のやりとりをするセッションです。要は何か情報があってそれを送信する人、受信する人がいればそれがセッションなのです。何となくイメージできるでしょうか。なお、便宜上通信元と通信先という言い方をしていますが、メディアの流通は片方向とは限りませんので、通信元というのは最初に「通信を始めよう」と提案する人、通信先というのはその提案を受け取った人で、メディアを流す方向とは関係ない、という点に注意してください。

SIPが開始/操作するセッションと、RTPで定義されているセッションはちょっと違います。RTPでいうセッションは明確に、1つの通信元、1つの通信先、そしてその間に流れる単一のメディアと決まっています。つまり、映像と音声を流す場合は、それぞれが別のセッションになります。そして3者通話のように通信先が2つになる場合には、各々の通信先に対してセッションを張ります。一方、SIPが扱うセッションは、メディアが映像+音声のように複数ある場合でも、3者通話や複数地点から参加する電話会議のような2つ以上の通信先がある場合でも、1つのセッションとしてまとめて扱います。こうすることで、複数の接続先を関連付けて操作ができます。

SIPとは、上記のような通信者とメディアのセットを「セッション」という単位で識別できるようにし、それを操作するためのプロトコルだと言えます。

もう少し具体的な動作の中身を説明します。SIPはIPネットワ―ク上で動作するので、通信元、通信先はIPアドレスとポート番号が分かれば特定できます。またその間を流れるメディアは、メディアの種類(音声、映像、テキスト等)、コーデック名(G.711、H.246等)、転送レートなどを決定すればメディアを流せます。つまり、通信元と通信先が、お互いのIPアドレスとポート番号とその間に流すメディアに関する情報を共有できれば、通信を開始できます。RTPで通信をするときに必要な情報と同じですね。

つまり、SIPを使ってセッションを開始することとは、上記のような通信を開始するための情報を通信元と通信先とで共有することだと言えます。SIPはそれらの情報を伝達するルールを規定しているプロトコルです。

0 件のコメント:

コメントを投稿