Updated July 31, 2000 by Makoto Kimura

Gnotella version 0.70ヘルプファイル和訳版

 
はじめに
gnultella Netとは何か
利用の最初に
接続の継続
さらに学習するために
よく聞かれる質問(FAQ)
1.どうやって動いているの?
2.検索はどれ位長く、続けられるの?
3.ダウンロードをもっと速くする方法は何かあるの?
4.特定のホストで共有されているファイル一覧を入手にはどうしたらいいの?
5.どれ位の接続数を確保しておけばいい? 何かこつはあるの?
6.gnutellaNetでファイルは転送されていくの ?
7."Requesting Push..."の意味は何なの ?
8.Gnotellaはboolean検索演算子をサポートしているの("phish+mp3")?
9.誰かの照会からディレクトリ名は検索されるの?

 

はじめに

 
 本説明は、Gnutellaの新規ユーザーがぜひ読んでおくべき資料である。以下の説明においてgnutellaとgnotella、そして、gnutellaNetとgNetの言葉は交換可能である。
 この資料には、Gnutellaネットワークがどのように動作しているかについて親しみがもてるように、そしてGnotellaを有効に利用するために知っておくべきことが記述されている。
 

gnultella Netとは何か

 gnultella Net、あるいは"gNet"は、Gnulellaを使うことを考えた時に誰でも利用できる大規模なユーザーのネットワークである。このネットワーク構成に「サーバー」は存在しない。ネットワーク上の誰もがサーバーであり、クライアントでもある。これは、他ユーザからの接続要求を拒否しない限り、あらゆるユーザ同士で接続できることを意味する。それ故、ある時間内においてgnutellaNetに何人のユーザーが存在しているか、あるいは、Gnutellaのユーザー総数が何人なのかを正確に測定する方法は存在しない。
 

利用の最初に

 
 gnutellaNetに接続するためには幾つかの方法があり、幾つかの方法は他の方法よりも優れている。第一に最も簡単な方法は"ホストキャッシュ"を用いることである。ホストキャッシュは、gnutellaNet専用の接続器であり、その目的は、ネットワークに他端末を接続させることにある。ユーザーがホストキャッシュに接続する時、ユーザー毎のホストキャッチャーが満たされるまで接続が試みられる。その後、接続のために十分な時間(20〜30秒)が経過した後に切断される。次点として推奨される方法は、IRCそしてDNS管理者に依頼することであるが、ここでは省略する。
 

接続の継続

 
 一度、gnutellaNetに接続が成功すると、ホストキャッシャーと呼ばれる素晴らしい技術が接続を維持する。ネットワークにログオンするとき、クライアント側(Gnotella)は、ネットワーク上で近辺の全てに、PING要求を送信する。相対して、PING要求を受信した場合に、各ホストは、それぞれPONGを返信する。クライアントが(IPアドレス、ポート番号、ホップ回数、TTL設定、ファイル共有等のリモートクライアント情報を含んだ)PONG返信を受信すると、この返信情報をホストキャッシャーに配置する。
 例えば、(少なくとも幾つの接続を継続させておくかを決定する)"Outgoing"テキストボックスを"3"に設定するとき、接続数を3つ以下に保つために、それ以上の誰かは接続できないようにして、Gnotellaはホストキャッチャーからアドレスを読み込んで接続を試みることになる。もし、その時に接続の試みが不成功に終わった場合、Gnotellaは少なくとも"Outgoing"テキストボックスで指定された数だけの接続が得られるように、別のアドレスで接続を試みる。
 

さらに学習するために

 
 もし、Gnottellaについてさらに学ぶことに興味がある、バグレポートをチェックしたり、提出したい、あるいは最新のGnutellaニュースについて情報を得たい方は以下のWWW資源をチェックして欲しい。
 
 

よく聞かれる質問(FAQ)

 
 この節は、GnotellaやGnutellaについて最もよく聞かれる質問やコメントの幾つかについて答えている。Gnotella掲示板はメールを送る前にまず、この節全体を読んで欲しい。誰かにたずねるよりも、まずは学習することから始めよう。
 

1.どうやって動いているの?

 
Gnutellaプロトコルについてのおおまかな説明
 
 Gnutellaはまるで旧式の電話ゲームのような振る舞いをする。検索やその結果、そしてネットワークに接続された他ホストについての情報は、一つのホストから他のホストへとリレーされて転送される。何かについて検索をしたいときに、発信された照会は、他の多くの人に送られる。各自は照会内容に一致する可能性のある共有ファイルの一覧をチェックし、接続された次の人(たち)に照会を転送する。もし、一致が確認されたら、その結果が検索元に返信され、検索に応じた内容がディスプレイ上に表示される。Gnutellaは完全な匿名性を実現している。ネットワーク上で誰かを特定できる追跡可能な情報は存在しない。何かを検索しようとする時に、誰かに検索元として発見される確率は非常に少ない。
 
Gnutellaプロトコルについてのちょっと詳しい説明
 
 Gnutellaプロトコルがどのように動作をするかについて説明する。gnutellaNetを通信されるデータは、"メッセージ"と呼ばれる。ネットワーク上で通信されるメッセージは5種類ある。1番目のメッセージはPING要求である。最初にgNetに接続するとき、PING要求は、自らの存在をネットワークに宣言し、他のユーザーに新たな情報として、ホストキャッチャー一覧に記録することを許可する。それに相対する2番目のメッセージは、PONG返信である。ユーザーはPING要求を受信した後に、PONG返信によって応答する。PONG返信はGnotellaがホストキャッチャーにホスト名を追加できるような情報を含んでいる。おわかりのように、これらの2種類のメッセージはネットワーク上の誰もが存在を認識できるように、一対となって動作する。三番目には、検索メッセージがある。何かを検索したい場合に検索テキストが、接続されている通信可能なあらゆるホストに検索メッセージの形式で送信される。もし、他のユーザーが検索内容に一致するファイルを保有する場合に、4番目のメッセージ種類の"検索結果"メッセージが生成される。PINGとPONGメッセージの関係のように、検索要求と検索結果メッセージは、対となって動作する。最後に、PUSH要求が発信される。
  
Gnutellaプロトコルについてのおたくっぽい説明
 
 Gnutellaプロトコルについて詳細な説明をしよう。Gnutellaメッセージの構成は、ヘッダと本体から構成される。ヘッダはメッセージのMessage ID、FunctionID、 HopsTaken、RemaingTTL、そしてDataLengthフィールドが含まれている。順序の最初として、Message IDフィールドは検索元の16バイトGUID(Global Unique Identifier)値である。1バイトのFunctionIDフィールドは、INIT要求[0x00]、INIT応答[0x01]、検索要求[0x80]、検索応答[0x81]、PUSH要求[0x40]のいづれかである。次に1バイトのHopsTakenフィールドはメッセージが通過したホップ数、またはホスト数を含んでいる。四番目のRemaingTTLフィールドは、IPパケットにおけるTTLと同様に、メッセージが通過する度に減算されるメッセージのTTL(Time-To-Live)値を示している。 最後にDataLengthは4バイトのフィールドであり、メッセージ本体のサイズ値が含まれている。このフィールドの目的はクライアントにメッセージの終了箇所を通知するためにある。
 

2.検索はどれ位長く、続けられるの?

 
 1分か2分経った後には、結果が得られなくても検索は終了したと思ってよい。いつ、検索が終了したかを知る明確な方法は存在しない。これは、まさにGnutellaプロトコルの設計仕様がそのようになっている。
 

3.ダウンロードをもっと速くする方法は何かあるの?

 
 実はあるのだ。2つの方法がある。一番目:インターネットの接続回線速度を速くすること。二番目:接続回線が早い環境にいる誰かにダウンロードを頼むこと。巷にまん延する誤解された情報に反して、遅延ダウンロード率は決してGnutellaのせいではない。せいではない。GnutellaはGnotellaが利用する単なるプロトコルにしか過ぎないのだ。ファイルのダウンロードが遅いのをGnutellaのせいにするやからは、Quake格闘ゲームでのぎこちない動きをTCP/IPのせいにするようなものだ。
 

4.特定のホストで共有されているファイル一覧を入手にはどうしたらいいの?

 
 この質問に対してあいまいな解答はない。多くの場合はできない。全てのホストで共有されたファイルの一覧を得る方法は存在しない。しかし、もし、特定の人がGnotellaを利用して、ウェブインタフェ−ス機能を提供できたら、それらにウェブブラウザを利用して接続し、共有されたファイルを眺めたり、入手することができる。
  

5.どれ位の接続数を確保しておけばいい? 何かこつはあるの?

 
 ダイヤルアップユーザーには、2〜3つの接続数が必要十分な数だろう。ブロードバンドでのユーザーには、3〜4つでも接続できるだろう。これらの数は集約された接続数であり、入力、出力の数でない。推奨される接続数を超過することは、不必要にバンド域を抹殺することになり、ネットワーク冗長性を増やすだけである(悪条件が重なる状況)。gnutellaNet全体との接続が増やすに減らすにも、端末からは2〜3の接続数だけで十分なのだ。ネットワークの分岐は爆発的に増えていくからである。
 

6.gnutellaNetでファイルは転送されていくの ?

 
 いいえ。そんなことをしたらネットワークパフォーマンスは壊滅状態になってしまう。gNetを通じて転送されるデータはPING要求、PONG返信、PUSH要求、照会そして検索結果のみである。ファイルは直接に2つのホスト間でHTTPを通じて配信される。
 

7."Requesting Push..."の意味は何なの ?

 
 この接続状態は、ダウンロードしたいファイルを保有するリモートホストに向かって GnutellaNetを通じたPUSH要求をGnotellaが送信した、あるいは送信を試みていることを意味している。時々、幾つかの理由によって、PUSH要求が失敗することがある。そして原因不明のまま、"Requesting Push..."という状態待ちになる。もし、1分以上このメッセージが表示されていたら、PUSHの試みは失敗してしまったと仮定してよい。もし可能ならば、他のホストからのファイルのダウンロードを試みた方がよい。あるいは、ダウンロードを中止(aborting)して、再度試行(resuming)することもできる。この場合は、最初のPUSH要求が正常受信されなかった場合に二番目のPUSH要求をホストに送信することになる。
 

8.Gnotellaはboolean検索演算子をサポートしているの("phish+mp3")?

 
 いいえ。標準的なインターネット検索エンジンと違って、Gnutellaプロトコルは、boolean検索メカニズムと対照的な"sub-string"検索メカニズムを採用している。
 

9.誰かの照会からディレクトリ名は検索されるの?

 
 いいえ。デフォルトのGnotellaは、誰かの照会に一致した誰かのディレクトリ名のコンテンツを返信しない。この仕様はクライアントからクライアント間で異なる可能性がある。つまり、もし、他のGnutellaクライアントが照会と一致した場合にディレクトリコンテンツを戻り値として返信してくる可能性がない訳ではない。幸いなことに、Gnotellaはこのような引き上げ機能を構成設定(Configuration)において、オンかオフに設定できる。


ホームページに戻る