2005/01/27
■[P2P][VoIP]P2P SIPの勉強中 / Columbia Universityの場合
ここ最近、標準的なIP電話プロトコルであるSIP(Session Initiation Protocol)を改良して、P2Pネットワーク上でIP電話を実現しようとする動きがいくつかあります。SIPをP2Pネットワークに乗せた時点で、それはもはやSIPと呼べないような気もするんですけど……まぁ、面白そうなのでちょっと調べ始めてみました*1。
僕が知っている限りでは、アメリカの2つの大学が個別に実装を進めているそうです。以下は、僕が活動を知った順。
P2P-SIP(Columbia University)
http://www1.cs.columbia.edu/~kns10/research/p2p-sip/
P2P SIP(College of William and Mary)
http://www.p2psip.org/
そこで、まずはコロンビア大学のP2P SIPの論文を読んでみました。ざっと読んだだけですが、要点と思えるところだけ書き出してみます。
Kundan Singh and Henning Schulzrinne, "Peer-to-peer Internet Telephony using SIP", Columbia University Technical Report CUCS-044-04, New York, NY, Oct 2004.
http://www.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-044-04.pdf
ネットワーク構造
- 安定して動作できるsuper nodeと、それ以外のordinary nodeによる2層構成(Skypeと同様)
- ordinary nodeからsuper nodeになるかどうかは、ローカルに判断する(これもSkypeと同様)
- ordinary nodeはsuper nodeにREGISTERすることで、SIP/P2Pネットワークに参加する
- 固定的なREGISTER先(DNS NAPTR or SRV)や、super nodeが見つからない場合は、アプリケーションに予め設定された既知のドメイン(例:sip-p2p.net)を利用する
- OPTIONメソッドを利用してノード間の生存確認を行う
registrationの管理(SIPで言うところのロケーションサーバの役割)
- Chord(DHT)を使ってユーザのregistrationを管理する
- super node間でのみDHTを管理する中間モデル(Intermediate model)を採用
SIPメッセージの送受信
- INVITE(ダイアログを生成するSIPメッセージ)はsuper nodeを介してやり取りされる
- その他のSIPメッセージは基本的にordinary node間で直接やりとりされる
発展
- NAT/ファイアウォール越えの方法は、まだあまり検討されていない様子(ICEを使う、とだけ書いてある)
- ボイスメールは、Oceanstoreのように複数のノードに保存するか、発信側で保存して後ほど送信するか、有料の集中型サービスプロバイダを利用して実現する
- セキュリティ対策としては、リアルタイム通信向けの評判システムが必要(従来のP2P評判システムはファイル共有が対象だった)
その他
- 通常のSIP UAと、SIP/P2P対応のSIP UAを区別するためにRequireヘッダを利用する
ということで、まだ基本的なところしか決まっていないようですね。正直、これを読んだだけでは、通常のSIPとSIP/P2Pがホントに共存できるのかはよく分かりません。普通のSIPプロクシをsuper nodeとして扱うにしても、そのドメインで扱っているユーザの情報(registration)もDHTに乗せるのかどうか、などの点が書かれていないので……。
----
一方、ウィリアム・アンド・メアリー大学のP2P SIPに関する情報は、IETFのインターネットドラフトとして最近公開されました。次はこちらを読んでみます。
David A. Bryan and Cullen Jennings, P2P SIP IETF internet draft : A P2P Approach to SIP Registration
http://www.employees.org/~dbryan/p2psip/draft-bryan-sipping-p2p-00.txt
(たぶん続く)
*1 SIP自体については「SIP入門 〜プロトコル概要からSIPの適用、将来像まで〜」やソフトフロント社サイトのSIP入門記事を参照のこと。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。