2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
リンクをコピー
記事をブックマーク
Aki@めもおきば氏(以下、Aki@めもおきば):では「Winnyのネットワークのおもしろさ」ということで話をしたいと思います。ふだん、技術系同人誌を「めもおきば」というサークルで出してるAkiと申します。15分ほどお時間いただきます。よろしくお願いします。
さて、今回の構成ですが、前半でWinnyのネットワークがどういうものだったかをおさらいをしながら、後半ではWinnyがたくさんのバージョンアップを重ねて最終的なかたちに至ったわけですが、そのバージョンアップのダイジェストみたいなものを振り返りながら、Winnyの開発史みたいな感じで振り返っていこうかなと思っています。
というわけでWinnyのネットワークがどういったものだったかをおさらいをしようと思うのですが、さらにその前に、WinnyはP2Pと言われる技術ですが、P2Pと(言っても)いろいろなものがあるので、その分類や基礎知識から入っていこうと思います。
P2Pには、いわゆる「ピュアP2P」と呼ばれるものと「ハイブリッドP2P」と呼ばれるものがあります。(スライドを示して)一番下にありますが、データの転送と通信先を探す、あるいはファイルを探すような検索の部分の2段階で、それぞれがいわゆるクライアントサーバーのサーバーでやるのか、あるいはいわゆるP2Pのネットワーク、どこかにサーバーがあるのではなくて、相互の通信だけで全体の機能を影響しようとするP2Pのモデルを使うものとの2種類に分けられて、それぞれがよくクライアントサーバー、ハイブリッドP2P、ピュアP2Pと呼ばれたりします。
当時はやはりPCの性能もインターネットの性能も正直あまりよくなかったので、「検索の部分はやはりサーバー使わないと厳しいよね」というところがあって。(それで)最初はハイブリッドP2Pから、(サーバーの)代替技術として入ってきた感じになります。
例えば、大元のファイル共有の最初に広まったNapsterとか、Winnyの前に流行していたWinMXだったりとか、BitTorrentなんかもそうですね。こういったものがあります。
それに対してWinnyをはじめとしたピュアP2Pとしては、GnutellaとかFreenetとか。BitTorrentのDHTのモードもそうだし、最近はEthereumとかIPFSとか、いわゆるブロックチェーン系のネットワークとか分散システムもピュアP2Pの仕組みでできています。
ピュアP2Pの検索ネットワークも大まかに2種類に分けられて、非構造化オーバーレイネットワークと構造化オーバーレイネットワークの2種類あります。Winnyは非構造化オーバーレイネットワークに属しますが、逆のほうから(説明を)言うと簡単で。
“構造化されている”というのは(つまり)何かと言うと、要はハッシュ値とかそういった数値がノードに割り当てられていて、そこからネットワークの構造が計算で定まるネットワーク(のこと)なんですね。
IPFSやEthereumっていうのは、Kademliaという分散ハッシュの仕組みをベースに一意にネットワークのかたちが決まるようになっていますが、WinnyやWinnyが元にしたと言われているFreenetやGnutellaはそういった構造化がされていないので、オーバーレイネットワークと呼ばれるアプリケーションのネットワークの中のネットワークでメッセージを投げて、「誰がこのリソース持ってるかな?」ということをどんどん順繰りに探していくような動作をします。
というわけで、WinnyはピュアP2Pの非構造化オーバーレイネットワークという分類になりますが、じゃあWinnyのネットワークがどういう仕組みで動いてるかというと、けっこうシンプルなんですね。
基本的には2種類の仕組みで動いています。1つはアプリケーションでネットワークが出来ていて。それぞれが動いてるPCのことをノードと言いますが、ノードの間でそれぞれが通信を張っていて。
Winnyでは検索リンクと呼んでますが、その検索リンクを介して「一番左下のノードAさんはどんなファイルを持ってますよ」という情報を、自分のIPアドレスとファイルの情報をセットにして、オーバーレイネットワークの上に流していきます。
点線で広まっていったとおりに検索リンクを通してファイル情報が広まっていきます。
今度は右側のBがポエムを探そうとして。そうすると、検索クエリを今度はオーバーレイネットワークの上に流していきます。そうすると、ノードCの上で左から来たファイルの情報と、右から来た検索クエリの結果がうまくマッチングされます。
その後、ノードBに返します。そこにはノードAのIPアドレスが書いてあるので、「じゃあそこに接続しにいきましょう」ということで転送リンクを別に張って、ファイル本体の転送をする。こういった仕組みが、Winnyのネットワークのすごくざっくりとしたあらましになります。要はこれだけのすごくシンプルな話なんです。
なので、やってることは左のほうからファイルの情報を広げていくのと、検索クエリを投げるとそれが数珠づたいに広まっていって、来た順に戻っていく。戻ってきた結果に書いてある内容から転送リンクを張って、ファイルを取りにいく仕組みになってるわけです。
Winnyのすごい特徴としてあげられるものに、自動ダウンロードという機能があります。これが何かと言うと、先ほどはファイルの情報がどんどん広まったと言いました。
こういったファイルの情報があっちこっちに広まっていった結果、自動ダウンロードを設定しているノードまでファイルの情報が届くと、それを自動的にダウンロードの対象として設定する。
いわゆる検索条件を指定していくと、地引き網のように手当たり次第にダウンロードをかけていくようなモードが、Winnyのすごく特徴的な動作の1つになっています。
もう1つのWinnyの特徴として、積極的にデータ中継を行う動作があります。これが何かって言うと、先ほど同じように左からファイルの情報が拡散されていきますが、その時に、Aさんから出た時はファイルの持ち主にはAのIPアドレスが書いてありますが、Cに届いた時にはその所有者、IPアドレスをCのものに書き換えます。そうすると、右の時に届いた時のファイルにはCのIPアドレスが書いてあるので、ノードBはノードCに接続しにきます。
ノードCは実はそのファイルの本体も持ってないけれど、Aが持っていることを知っているので、もう1回つなぎにいく動作をします。そうすると、Bから見た時にCを経由してAからファイルを取ってきているので、Cにはデータが全部中継されることになります。
その結果、ダウンロードが終わった時にはノードCのところにもそのキャッシュができるような仕組みになっています。
これも先ほど言ったとおり、ファイルの情報を拡散していく時に、そのキーの中身に書いてあるIPアドレスを書き換える動作で実現しています。
もう1つ。これだけだとやはり大規模は厳しいので、Winnyの検索ネットワーク全体が自己組織化するようになっています。1つは回線速度というものによって上流と下流が決まっていて、それぞれに対して「上流は何本まで」「下流は何本まで」といったように上下関係ができるようになっているのと、あと(もう1つは)検索キーワードという、先頭3つのキーワードを使うことによって、横方向でクラスタリングをしていくような構成になっています。
ここでは新規につながってきた検索キーワード1つに指定しますが、“ねこ”というキーワードをつないでWinnyのネットワークに参加しようとすると、いろいろなノードの情報を得ることができると思います。例えば、クラスタリングキーワードが“ポエム”というノードと“ねこ”というノードが両方が接続しようとしたら、“ねこ”のほうが優先されるような仕組みになっています。
こういった仕組みによって、ネットワークを自己組織化していきます。
こういったように、Winnyのネットワークはすごくシンプルなものの組み合わせでできています。
おさらいをすると、検索ネットワークによるファイル情報の拡散と検索。あとは回線速度とクラスタリングを使って、ネットワーク全体を自己組織化していく。ただ積極的にデータ中継をしていくことによって、キャッシュをバラ撒いていく。
これは細かくは説明しませんが、データ中継を使うことによって、いわゆるファイアウォール、ナットの裏にあるような外部から接続できないノード、WinnyではPort0と呼んでいましたが、Port0の対応をやっていました。
(次回に続く)
関連タグ:
2025.01.16
社内プレゼンは時間のムダ パワポ資料のプロが重視する、「ペライチ資料」で意見を通すこと
2025.01.15
若手がごろごろ辞める会社で「給料を5万円アップ」するも効果なし… 従業員のモチベーションを上げるために必要なことは何か
2025.01.20
組織で評価されない「自分でやったほうが早い病」の人 マネジメント層に求められる「部下を動かす力」の鍛え方
2025.01.14
目標がなく悩む若手、育成を放棄する管理職… 社員をやる気にさせる「等級制度」を作るための第一歩
2025.01.09
マッキンゼーのマネージャーが「資料を作る前」に準備する すべてのアウトプットを支える論理的なフレームワーク
2025.01.14
コンサルが「理由は3つあります」と前置きする理由 マッキンゼー流、プレゼンの質を向上させる具体的Tips
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.21
言われたことしかやらないタイプの6つの言動 やらされ感が強く他人任せなメンバーを見極めるチェックリスト
2017.03.05
地面からつららが伸びる? 氷がもたらす不思議な現象
2015.11.24
人は食事をしないとどうなるか 餓死に至る3つのステップ
チームの生産性を上げるマネジメント術
2024.12.11 - 2024.12.11
特別対談「伝える×伝える」 ~1on1で伝えること、伝わること~
2024.12.16 - 2024.12.16
安野たかひろ氏・AIプロジェクト「デジタル民主主義2030」立ち上げ会見
2025.01.16 - 2025.01.16
国際コーチング連盟認定のプロフェッショナルコーチ”あべき光司”先生新刊『リーダーのためのコーチングがイチからわかる本』発売記念【オンラインイベント】
2024.12.09 - 2024.12.09
NEXT Innovation Summit 2024 in Autumn特別提供コンテンツ
2024.12.24 - 2024.12.24