「Winnyの技術」 金子勇 著

Winnyの技術

Winnyの技術


たぶん、Winnyは日本のソフトウェアと著作権の歴史に名を残すソフトになるのだろう。NapsterGnutellaWinnyも、その影響力とは裏腹に、登場した時にはその凄さはぴんと来なかった。と言うか、未だにぴんと来ていない。情報の検索も、デジタル化した音楽や映像をコピーすることも、コンピュータ同士で接続することも、ソフトウェアをダウンロードする事も、以前からある機能だ。NapsterGnutellaが話題になった時に、まだ接続環境がISDNで「大したことねーな」と思ってしまったことも影響しているかもしれない。ところが、そのすでにある機能を組み合わせたP2Pソフトは、新しいネットワークの形を垣間見せた。


以下、ごくごく簡単に内容のまとめ。


1章 P2Pの基礎知識
P2P方式は、各ノードがサービスの提供者にも利用者にもなる。第1世代のP2Pソフトはノードとファイルの検索はクライアント/サーバ方式を使用する。第2世代はノードの発見にもP2P方式を使用する。第3世代はキャッシュ機構を備える。


2章 Winnyの紹介
Winnyはプロクシー技術を利用し、匿名機構とキャッシュ機構を実現する。Winny GUIの紹介。


3章 Winnyの仕組み
公開するファイルからキーと本体が作成され、キーを拡散させる。キーに書かれた情報を見てダウンロードを行うが、その情報が1次提供者の場合と中継者の場合がある。ネットワークには上流と下流があり、回線速度が速いノードは上流、遅いノードは下流に繋がる。クラスタリングにより、好みの似たノードを近づける。


4章 実装
ノード管理部では、ノード情報を元に他ノードとの接続を制御し、いくつかの接続形態に対応している。クエリ管理部では、キーの送受信を行う。キー管理部では、キーの生成、管理を行う。自動ダウンロード機構は、キーテーブルに条件にあうキーを見つけると、キー情報を元にダウンロードを開始する。Winnyでタスクになる作業には、ダウンロード、アップロード、キャッシュファイル変換、フォルダチェック、ハッシュチェック、クエリ処理等がある。


5章 P2Pソフトの開発手法
テストはシミュレーションで行うが限界がある。またバージョン管理も重要である。匿名性と効率にはトレードオフの関係がある。ネットワークへの攻撃に備える必要もある。ネットワークは一度動き出すと変更できない部分が出てくるため、最初の設計が重要である。


6章 残された課題と可能性
課題として残っている点はいくつかある。BBSスレッドを立てたノードの匿名性、一度流出したファイルの削除、ウィルス対策等。


付録
A.キャッシュファイルヘッダ
B.シミュレーション
C.Winnyプロトコル詳細