検証
ネットワーク管理者のためのGnutella入門

2.Gnutellaのインストールと実行(1)

井口圭一/デジタルアドバンテージ
2000/09/15

 それでは、まずはユーザー レベルで見たGnutellaの機能などについて駆け足で見ていくことにしよう。すでに述べたとおり、Gnutellaソフトウェアはインターネットで無償公開されており、誰でもダウンロードして使うことができる(Gnutellaのホームページ)。原稿執筆時点(2000年9月上旬)で公開されていたのは、Ver.0.56(98.6Kbytes)であった。以後、本稿で行う検証や掲載画面などは、すべてこのVer.0.56を元にしている。

 なお、Gnutellaのソース コードはGPL(General Public License。ソフトウェアの改変や再配布の自由を妨げないというプログラムライセンス形態)に従って公開されており、誰でもオリジナルのソースを改変することができる。オリジナルのGnutellaは32bit Windows環境で作成されたが、このソース コードを基にしてさまざまなプラットフォーム向けのGnutellaや(Windows/Linux/UNIX/Webサイト(WebサイトとしてGnutellaサービスを提供可能にするもの)/Macintosh/BeOS)、独自のユーザー インターフェイスを実装したGnutellaなどが公開されている。なおWindows版のオリジナルのGnutellaはWindows 9xおよびWindows 2000の日本語環境で利用可能である。

Gnutellaのインストール

 インストール モジュールを適当なフォルダにダウンロードしたら、ファイル アイコンをダブル クリックしてGnutellaをインストールする。インストール途中では、[スタート]メニューへのアイコン追加の有無、デスクトップへのショートカット追加の有無、Gnutellaプログラムのインストール フォルダ(デフォルトではC:\Program Files\gnutellaフォルダ)が問い合わせられるが、通常はすべてデフォルト設定のままインストールを実施すればよいだろう。インストールが完了すると、自動的にインストールされたGnutellaが起動する。

 なお、Gnutellaにはアンインストーラが用意されていないので、アンインストールを行うには、Gnutellaをインストールしたフォルダをマニュアルで削除する必要がある。デフォルト以外のフォルダにインストールしたときには、その場所を忘れないようにしよう(忘れてしまったときには、[スタート]メニューなどのプログラム アイコンのプロパティでパスを確認すればよい)。

GnutellaNetに参加する

 Gnutellaを起動しただけでは、ファイルを検索したり、交換したりはできない。実際にGnutellaを使い始めるには、どこかのGnutellaNetに参加しなければならない。具体的には、すでにGnutellaNetに参加している誰かを探し出し、その相手のIPアドレスを指定する。

 すでに述べたように、GnutellaNetのモデルは、クライアントとサーバの機能を同時に併せ持つコンピュータからなる完全な水平分散型なので、どこにどんなコミュニティ(GnutellaNet)が存在しているのか見当もつかない。友人がGnutellaを利用しているなら、その友人のIPアドレスを指定してみればよい。あるいは、そのような友人がいなければ、最初はGnutellaのホームページで紹介されている相手を指定すればよいだろう。このGnutellaのホームページでも説明されているが、さまざまなWebサイトやチャット、掲示板などで、GnutellaNetコミュニティに関する情報が得られるようだ。ただし「チャットで直接IPアドレスを聞いてはいけない」と説明されている。チャットで意気投合したら、電子メールなどの個人的な通信手段でIPアドレスをもらう、ということらしい。GnutellaNetでは、ネットワーク内に存在する他のクライントのIPアドレスなどがやり取りされており、接続相手を1人見つければ、その情報などから接続相手を芋づる式に見つけられるようになっている。デフォルト設定では、常に4カ所(4ホスト)への直接的な接続を維持するように設定されている。

Gnutellaの起動画面([gnutellaNet]画面)
Gnutellaを起動すると表示される初期画面(画面はVer.0.56のもの)。左上にあるリスト ボックスの各項目は、一般的なWindowsアプリケーションにおける「タブ」に相当するもの。起動時にはここで[gnutellaNet]が選択された状態になる。このダイアログでは、現在のGnutellaNetネットワークとの接続状態などを確認できる。GnutellaNetに最初に接続するには、すでにGnutellaNetに参加しているユーザーを見つけて、そのIPアドレスを接続先として追加する。
  Gnutellaのメニュー。一般的なWindowsアプリケーションでは、「タブ」によるダイアログ切り替えに相当する機能を持つ。起動時には、このうち[gnutellaNet]が選択される。
  自分と直接接続されているGnutellaNetホスト一覧。初めてGnutellaを起動したときには、ここには何も表示されない(誰にも接続していないため)。接続先を1人でも指定すれば、そのGnutellaNetでやり取りされているホスト情報から、自動的に他のホストとの直接接続が行われる。この画面では、4個のホストと直接接続していることが分かる。
  直接接続されているGnutellaNetホストのIPアドレス。
  相手先との接続タイプ。自分から相手に接続した場合には[Outgoing](「出発」の意味)、相手からの接続を受けた場合には[Incoming](「到来」の意味)になる。
  各相手先との送受信パケット情報。[S、R、D]はそれぞれ、S(送信パケット数。Sentの略)、R(受信パケット数。Receivedの略)、D(喪失パケット数。Lost/Droppedの略)を表す。[OK]は正常な接続、[Connecting]は接続処理を実行中であることを示す。
  接続統計情報。現在接続しているホストの数([gnutellaNet])、現在実行中のファイル アップロード処理(自分から相手へのファイル転送)の数([Uploads])、現在実行中のファイル ダウンロード処理(相手から自分へのファイル転送)の数([Downloads])。
  接続先を指定するエディット コントロール。ここに接続したい相手のIPアドレス(またはホスト名)を指定し、左の[Add]ボタン()をクリックすると接続処理が開始される。
  右のエディット コントロールで指定した相手への接続処理を開始する。
  すでに接続している相手との接続を終了したければ、上のリスト ボックスからその相手を選択し(複数選択可能)、このボタンをクリックする。
  Gnutellaが維持しようとする他のコンピュータとの直接接続数。接続先をマニュアルで1つ指定すれば、後述するhost catcherのリストから自動的に接続先を決定し、ここで指定した数だけ自動的な直接接続を行う。デフォルト値は4。
  GnutellaNetの状態。[hosts]は、自分が直接接続しているホスト数と、その先に存在するホストの数を加えたもの。
  送受信パケット、交換済みファイル情報。[gnutellaNet messages]は受信したパケットの総数、[Searches to local DB]は受信した検索要求パケットの数、[Routing error]はルーティング エラーのパケット数、[Dropped messages]は喪失パケット数、[Download count]はこれまでにダウンロードしたファイルの数(自分が取得したファイルの数)、[Upload count]はこれまでにアップロードしたファイルの数(自分が提供したファイルの数)。
  GnutellaNetで交換されているホスト情報から得られた、ネットワーク内の他のホストのIPアドレス。の自動接続は、このリストから適当な相手を選択して実行される。
  上のhost catcherリストに対する処理。[Connect]はhost catcherリストから選択した相手への接続開始、[Get More]はさらなるhost catcherリストの取得、[Remove]はリストから選択した相手をhost catcherリストから削除、[Clear]はすべてのhost catcherリストを削除する。

 すでに述べたとおり、GnutellaNetではすべてのコンピュータがサーバであると同時にクライアントでもある。しかしこのダイアログでは、GnutellaNet内に参加している各コンピュータのことを「host」と呼んでいる。

 初めてGnutellaを起動したときには、どこにも接続されないので、上の[gnutellaNet connections]は真っ白な状態になる。ここで、入手した情報を基にして、接続相手(ホスト)のIPアドレス(またはDNSによって名前解決が可能なホスト名)と接続ポートを中央のリスト ボックスに指定して、左の[Add]ボタンをクリックする。Gnutellaのデフォルトの接続ポートは6346である。接続先ポートが6346なら、指定を省略することが可能だ。

 こうして指定した接続先がその時点でGnutellaNetに参加していれば、接続が確立され、GnutellaNetに関する情報が続々とやってくる。Gnutellaは、GnutellaNet内でやり取りされるパケットをモニタしており、この中にIPアドレス情報を見つけると、それをhost catcherリスト()に追加する。そして現時点で確立された直接接続がで指定された値(デフォルトは4)よりも少なければ、Gnutellaはこのhost catcherリストから適当なホストを選択し、の値に等しくなるまで自動的に他のホストへの直接接続を確立する。

 直接接続しているホストとの間では、GnutellaNet内の他のユーザーによる検索要求パケットなどが大量にやり取りされることになるので、モデムなどの遅い回線を使ってインターネット接続を行っているユーザーは、の同時接続数を減らしたほうがよいだろう。ドキュメントによれば、1つの接続あたり、500〜1000bytes/sのバンド幅が消費されるとしている。このためダイヤルアップ ユーザーなら1または2に、他の高速な手段で接続しているユーザーも10以下にすべきとされている。

 前述したように、GnutellaNetには中央のサーバが存在せず、ネットワーク内でやり取りされたデータや、ホスト情報などは一元的に管理されたりはしていない。しかしhost catcherリストを見ると分かるように、GnutellaNetにひとたび参加すれば、他のホストのIPアドレスなどは丸見えになってしまう。試しにここに表示されたIPアドレスで、HTTPポート(Webサーバのポート)を表示したところ、いくつかのホストでWebページが表示された。IPアドレスの開示は、ハッキングの引き金になる場合もあるので、ネットワーク管理者は特にこの点に注意すべきだろう(自分がファイアウォールの内側にいる場合、デフォルト設定のままなら、現在使っているプライベートIPアドレスが他人に表示される)。

関連記事(Windows Server Insider)
  検証:ネットワーク管理者のためのNapster入門
 
  関連リンク
  Gnutellaのホームページ(Gnutella)
     

 INDEX
  [検証]ネットワーク管理者のためのGnutella入門
    1.Gnutellaとは何か?
  2.Gnutellaのインストールと実行 (1)
    3.Gnutellaのインストールと実行 (2)
    4.Gnutellaの通信メカニズム (1)
    5.Gnutellaの通信メカニズム (2)
 
 検証


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間