SIP系のOSSを、開発するプロジェクトです。
SIPropVer.2.0の完成と雷電の開発開始に合わせて、定義し直されました。
「メディア (通信媒体)の世界を広げる」
という目的の元、SIPに関するのOSSアプリを提案・開発するプロジェクトである。
この目的を果たすために、他プロジェクトと提携し、いろいろなプロダクトを立ち上げている。プロジェクト一覧はこちら。
イメージ図:
一般の IP 電話において、SIP は相手を呼び出す機能(シグナリングという)を実現する通信プロトコルとして利用されている。そのため、現状では「SIP は IP 電話のための通信プロトコルである」と誤解されがちである。
しかし、インターネットの通信プロトコル規約である RFC において、SIP
の目的は次のように規定されている。
SIP (Session Initiation Protocol) は、インターネットのエンドポイント(ユーザーエージェントと呼ばれる)が
お互いを発見し、共有を望むセッションの特性に合意することを可能にすることで、これらのプロトコルと
協調して動作する。セッションの参加者と見込まれるものの場所を特定するため、および他の機能のために、
SIPは、ユーザーエージェントが登録リクエストやセッションへの招待およびその他のリクエストを送ることが
できる、ネットワークホスト(プロキシサーバーと呼ばれる)のインフラを生成することを可能にする。
SIPは、下位のトランスポートプロトコルから独立し、確立されるセッションのタイプに依存せずに動作する、
セッションを生成・修正・終了するためのしなやかで多目的なツールである。
すなわち、SIPは
「(IP電話を含む)様々なネットワーク・アプリケーションのためにセッションの管理を行う、汎用セッション・プロトコル」
なのである。
本来、汎用セッション・プロトコルであるはずの SIP が、IP 電話に付随する通信プロトコルとして語られることが多いのは、IP 電話が SIP が提供するセッション管理機能を必要とする最もメジャーなアプリケーションであり、他に SIP を必要とするアプリケーションが見つからないことに原因がある。
さらに、近年の通信事業各社によるNGNやFMCと呼ばれる試みは、「シグナリング・プロトコルとしての SIP」を推し進めるものであり、SIP の本来の「汎用セッション・プロトコルとしてのSIP」という設計意図からの乖離を生み出している。
このような状況により SIP
は、大きなジレンマを抱え込むことを意味している。「汎用セッション・プロトコルとしての
SIP」では、特定のアプリケーションに依存しない汎用セッション・プロトコルとしての地位を保ち続けるべきであるが、「シグナリング・プロトコルとしての
SIP」では、通信事業者のシステムも含めたシグナリングに必要な機能が拡充が求められるからである。
そこで、SIPropプロジェクト は、 SIP が抱えるジレンマをより望ましい形で解決する方策を見出す議論をするためのコミュニティとして、さまざまな活動を行っている。
そのアプローチは概ね2つの方向性に整理することができる。
以上の2つのアプローチは垂直方向と水平方向の全く異なるベクトルを持っているが、実は相互に密接な関係を持つ。
例えば (1) でIP 電話のために開発された実装の一部は、(2)
の新たなアプリケーションの獲得に役立つかもしれない。また逆に (2)
の新たなアプリケーション獲得のために考えられた規格は、(1)
の相互接続のための設計・実装のヒントになるかもしれない。
上記のバイ・ディレクション・アプローチは、SIP の問題解決には有効であり、SIP の利用範囲を拡大に寄与すると考えられる。そして、汎用セッション・プロトコルとしての SIP の拡張こそが、目的である 「メディア (通信媒体)の世界を広げる」 につながると SIPropプロジェクト は考えており、実践している。
- 第7層 - アプリケーション層 -
具体的な通信サービス(例えばファイル転送、メール転送、遠隔データベースアクセスなど)を提供。
- 第6層 - プレゼンテーション層 - データの表現方法。 - 第5層 -
セッション層 - 通信プログラム間の通信の開始から終了までの手順。 - 第4層
- トランスポート層 -
ネットワークの端から端までの通信管理(エラー訂正、再送制御等)。 - 第3層
- ネットワーク層 -
ネットワークにおける通信経路の選択(ルーティング)。データ中継。
上記のOSI参照モデルに、SIPを適用しようとした場合、下記の構造が想定される。
- 第5層 - セッション層 - 通信プログラム間 セッションの通信の開始から終了までの手順。 -
すなわち、SIPネットワークと考えられる。 - 第4層 -
トランスポート層 - ネットワーク Peer(Node,Resource)の端から端までの通信管理(エラー訂正、再送制御等)。
- すなわち、P2Pネットワークやオーバーレイネットワークと考えられる。
これらから、下記のような層構造をSIPropプロジェクトは、考えている。 - アプリケーション層 - アプリケーションのための機能を提供する - HTTPやFTPなどのアプリケーション用プロトコル - NGN+IMSでいうところの「アプリケーション基盤」に相当する。 - セッション層 - セッション管理や認証、パーミッションを提供する - SIPそのもの - NGN+IMSでいうところの「サービス・ストラタム」に相当する。 - トランスポート層 - Peerやリソースへのリーチャビリティーを提供する - P2Pやオーバーレイネットワーク - NGN+IMSでいうところの「トランスポート・ストラタム」に相当する。 - ネットワーク層 - ネットワークを提供する - 現在のTCPネットワーク - NGN+IMSでいうところの「物理レイヤー」に相当する。
これらの適用例:HTTPの場合 - アプリケーション層 - HTTP通信をする - 送信先としては、Socket(TCP)ではなく、SIPスタックやSIPropなどのHTTPをSIPでラップするためのアプリを想定している。 - セッション層 - HTTPをSIPに載せて、通信をし、認証やパーミッションチェックを行う。 - SIP-URIベースのSIP IX網ルーティングを想定している。 - トランスポート層 - SIPをオーバーレイネットワークに載せて、相手リソースへ、通信を行う。 - DHTであれば、ハッシュによるリソースへのルーティングを想定している。この層により、リーチャビリティーが確保される。 - ネットワーク層 - 現在のTCP/IPネットワークに相当する通信を行う。 - Socketによる通信を想定している。
