インスタントメッセンジャーの仕組み


さて、今日非常に話題なのがインスタントメッセンジャーです。 (今後はIMと書くことにします。)IMはメッセージを即時に相手 に渡すためのソフトですが、現在は高機能化しており、相手のステータス (ネットワークに接続している等)を知る事やファイル共有、ボイスチャット、 プログラムを共有して共同作業をすることさえできるようになっています。 企業の一部(特にアメリカ)では、積極的にIMを使う事により作業効率を 大幅に上昇しているそうです。

IMに関して特に注目される動きとして、マイクロソフトがP2Pコラボレーションソフト で有名なGroove NetworksやPlaceWareと提携したり買収していることです。 このような企業のノウハウを活かしてIMがさらに高度化することが期待されます。

それではIMのシステムについてネットワーク形態から分類してどのような 長所・短所があるのか見ていきましょう。


サーバ=クライアント型IM
IMのメッセージ送受信機能及び一部機能を使う際にこのような形態を取ります。 例えば、Windows Messengerのメッセージ送受信機能が挙げられます。

ユーザAがユーザBと通信する時には必ずサーバAを経由します。 この通信の長所は、ユーザ間において、IPアドレス等の個人情報が漏れないこと と多対多の通信ができることです。例えば、後述のHybrid-P2Pでは、 N人のグループでIMを行うとn(n-1)/2のリンクが必要です。 これはかなり無理があります。短所はサーバとサーバ側ネットワークのリソースを 非常に消費することです。またサーバがユーザ間の通信内容を見ることができてしまい ます。サーバを介することで若干の遅延が生じることも考えられます。


Hybrid-P2P型IM
Yahoo!Messenger,Windows Messengerのアプリケーション (例えばファイル送信、ボイスチャット)がこの方式を使います。

まず、ユーザは名前解決サーバに自分の個人情報等を登録します。 ユーザがIMソフトを立ち上げると、自分の端末のIPアドレス等の情報を 名前解決サーバにアップデートします。

さて、ユーザAがユーザBと通信しようとすると、ユーザAは名前解決サーバAと 通信して、ユーザBのIPアドレスの入手します。ユーザAはユーザBと直接通信 を行い、データの交換をします。

さて、Hybrid-P2P型の特徴ですが、名前解決サーバは単に相手のIPアドレスを 通知するだけなのでサーバ、ネットワーク負荷が比較的 小さいということが挙げられます。また、ユーザ間で直接データをやり取りするの で、サーバはユーザ間でやり取りしているデータを見ることはできません。その他 にユーザ間が直接通信するので遅延が少ない事が期待できます。そのため、 ボイスチャットのように遅延が 少ないことが求められるアプリケーション、ファイル転送のように データ量が多いアプリケーションに適しています。


Pure P2P 型IM
非常に純粋なP2Pシステムです。IP Messengerの形態です。

ユーザAはユーザBと直接データを通信します。Hybrid-P2P型と違うのは、 事前にユーザBのIPアドレスを何らかの方法でユーザAが取得する必要が あることです。Hybrid-P2P型であれば、サーバにあるユーザのIPアドレス を問い合わせをすることができますが、これはそのようなことができません。 長所はサーバを構築せずにIMができることです。短所は相手のIPアドレスを 事前に聞く手間がかかることです。(注:IP Messengerでは 起動時にブロードキャストすることによって、そのブロードキャストエリア内の 他のIP Messengerユーザのステータスを知る事が可能) そのため小規模グループ内でのIMに適しています。 ちなみにIP Messengerではブロードキャストが届く範囲内 でしか通信ができません。


Tree状P2P型IM
これはGnutellaやWinnyに見られるようにTree状なネットワークトポロジー におけるIMの形態です。

データはユーザ間をバケツリレーで運びます。たとえばユーザDがユーザA と通信したければ、ユーザD⇔ユーザC⇔ユーザAという風に通信をします。 長所はサーバが必要でないこと、通信相手のユーザの情報を事前に知る必要 がないことです。(メタデータをグループ内に送信することで相手の検索をする ことができます。)また、IM相手の間に何人ものユーザを介することで、 匿名性を高めることができます。短所としては、通信の経路上にいるユーザの有無によって、 ネットワークトポロジーが変わるため、通信したい相手と通信できなくなる可能性 があること、経路上のユーザが通信内容を見れてしまうことです。 もちろん、ユーザはこのTree状ネットワークに参加するため、ネットワーク に既に参加しているIPアドレスを事前に知る必要があります。

(筆者注:現在、このような形態のIMがあるかどうかについて私は把握していません。 ただし、WinnyなどのP2Pアプリに搭載される可能性があります。 現在、考察中なので近日中にそのシステムを説明する予定です。)


参考:
日経NETWORK 2004年2月号:

IP Messenger開発研究室:
http://www.asahi-net.or.jp/~VZ4H-SRUZ/ipmsg.html
次にP2PとIPアドレスの関係を説明します。


NEXT

TOPページに戻る