|
グヌーテラプロトコル詳細バージョン0.4 原文はこちら(PDFフォーマット)、読めない方はここでGET
クリップ2・ディストリビューテッド・サーチ・サービシズ
http://dss.clip2.com
dss-protocols@clip2.com
訳者:こば、カワサキ
訳の問題はkoba@jnutella.org
, kawasaki@jnutella.org
翻訳完了日:2000年8月19日
グヌーテラ(発音は「ニューテラ」という)は、分散型検索のプロトコルです。グヌーテラ・プロトコルは従来のクライアント/中央集権型サーバの検索パラダイムをサポートしますが、グヌーテラの特徴というものはピア・ツー・ピアで、中心が無いモデルなのです。このモデルでは、すべてのクライアントがサーバであり、逆にクライアントなのです。サーバントと呼ばれるグヌーテラは、通常クライアントとサーバ双方と連携を行って作業を行っています。サーバントは、クライアントサイドにユーザーがクエリーを出し、検索結果を見つけたことができるためのインターフェイスを提供します。それと同時にサーバントは、他のサーバントからのクエリーも受け取り、ローカルのデータとの適応を見て、検索条件に当てはまった結果を返すのです。この分散型の性質のために、グヌーテラのプロトコルを実行するサーバントのネットワークは、フォルト・トレラントとなるのです(高い障害耐久性を発揮します)。つまり、もしサーバのサブセット(部分集合)がオフラインになったとしてもネットワークの運営が中断されることはないのです。
プロトコルの定義
グヌーテラのプロトコルは、サーバントがネットワーク上で通信を行うための方法を定義しています。同プロトコルは、サーバント間のデータ通信を行うためのデスクリプター(descriptors:種類を確認しデータ記録を合体させるのに使われるキーワード)の集合と、デスクリプターのサーバント間での交換を管理するルールの集合とで構成されています。現在、以下のデスクリプターが定義されています。
| デスクリプター |
解説
|
| ピング(Ping) |
ネットワーク上でホストを探すのに使われます。ピングのデスクリプターを受け取ったサーバントは1つ以上のポングのデスクリプターを返すと予期されます(期待されます)。 |
| ポング(Pong) |
ピングへの返答です。接続されたグヌーテラ・サーバントのアドレス、及び、ネットワークへと利用可能なデータの総量とみなされる情報を含みます。 |
| クエリー(Query) |
分散型ネットワークを検索するために必要となる主要なメカニズム。もしローカルのデータの中に検索にふさわしいものが見つかったら、クエリーのデスクリプターを受け取ったサーバントはクエリーヒットを返信します。 |
| クエリーヒット(QueryHit) |
クエリーの返信です。一致したクエリーのマッチングを行うデータを手に入れるために、このデスクリプターは十分な情報を持つ受け取り人を提供します。 |
| プッシュ(Push) |
ファイアウォール化されたサーバントが、ネットワークへのファイルベースのデータを提供することを可能にするメカニズムです。 |
現在ネットワーク上に存在する他の別のサーバントと接続を確立することで、グヌーテラサーバントは、ネットワークと自身との接続を行います。他のサーバントのアドレスの獲得は、プロトコルの定義の一部ではありません。ですから、それについてはここでは詳述を避けます(ホストのキャッシュサービスは、グヌーテラのサーバントのアドレスの獲得を自動的に行うという方法を通じて、現在顕著に見られる方法ですが)。
ネットワーク上の他のサーバントのアドレスを一回手に入れてしまえば、サーバへのTCP/IP接続が作り出されます、そして次のようなグヌーテラの接続要求列(string)が送られることになります。
GNUTELLA CONNECT/<protocol version string>\n\n
詳細のこのバージョンでは<プロトコル・バージョン・ストリング>と記述される場所は、ASCIIストリング「0.4」になるように定義されます。
<1,2,3,4,5,6,7>
|