その作者の金子勇氏が解説した技術解説本。使い方や法律論などは載っていない。技術」を発注』で購入しておいたのだが、読むのがだいぶ遅くなってしまった。ソースコードやプロトコルは非公開だった。設計や実装を学ぶためには、配布された実行ファイルをソースコードに逆変換したりするリバースエンジニアリングや、通信パケットを解析するのが一般的だったようだ。作者自身とユーザーが掲示板などに書き込んだ情報を元に推測するということもおこなわれていた。ネットワークは大規模といえるレベルまで成長しており、その設計と実装を作者自らが解説したこの本は、資料的価値がある。以下に参考になった部分を列挙する。ネットワークに参加するノードを対等な関係とするのではなく、上流と下流という概念を取り入れ、回線速度や処理性能で分類している。アプリケーションは参加するノードが入り交じり、全体の効率を落としていた。回線と処理性能に余裕があるノードは上流に位置づけ、大量のデータをやりとりさせる。ネットワーク内での流通速度を上げる。回線や処理性能に余裕のない下流ノードは上流のノードにぶら下がるようにし、相応の負荷に抑える。この仕組みであれば、上流は負荷が高いがその分大量のファイルを受信できるし、下流よりも広い範囲でファイルを探すことができる。下流は自分の身の丈にあった範囲でファイルを探すことができ、それぞれの住み分けができる。上流と下流の概念があることで、どんな参加ユーザーでも受け入れることができ、ネットワーク全体の受容能力が高まる。ネットワークの価値は、まず参加しているノードの数で決まる。各ノードの持っているリソースの質も重要だが、量は質に転換する。それを踏まえた設計になっているのが素晴らしい。クラスタという概念を取り入れ、ネットワークの規模が大きくなっても効率を落とさない仕組みを実現している。参加しているノードの数が増え、ファイルの流通量が爆発的に増えると、流通量全体に占める目当てのファイルの比率が下がる。これはネットワークが成長すると避けられない事態だ。この問題への対処は上流と下流だけでは難しい。形成するようになっている。これにより、目当てのファイルの検索ヒット率と、キャッシュヒット率が向上する。問題解決の基本は「分割して統治せよ」だ。ネットワークにクラスタという別の次元の軸を与えることで、大量のノードを分割して統治することができる。お互いのクラスタは明確に分割されるのではなく、ある程度のつながりを保持したままゆるく分割されていく。ネットワークとアプリケーションの信頼性を高める仕組みを導入している。自身が勝手にファイルを持っているノードを検索し、リクエストを発行してダウンロードし、ファイルの整合性のチェックまでしてくれる。この仕組みはユーザの手間を減らすという点で非常に強力だ。ハッシュのチェックをおこなうことで回避している点が良い。自体にエラーチェックの仕組みがあるが、アプリケーションが保証していることが重要だ。この仕組みがあることで、数百メガバイトを超えるファイルの共有も安心してできるようになる。チェックは自動でおこなわれるので、ユーザーに手間をかけさせない。安心して任せられるので、流通するファイルが増える。ネットワークはより大きくなる。ファイルの交換を促進する良い仕組みを持っている。トラフィックの増加に悩んでいたようだが、これだけの機能を備えていれば、それも頷ける。いうのはちょっと少ない。いう巨大ファイルは分割しなければならない。開発当時のネットワーク回線事情では、この程度のサイズのファイルを気軽に流通させることはできなかったのかもしれない。利用される形態が「グレーゾーン」だからかな?2ページ目の鍵の指紋が気になる。ネットワーク上で流通しているようだ。