2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
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の対応をやっていました。
(次回に続く)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.04
いつも遅刻や自慢話…自分勝手な人にイラっとした時の切り返し 不平等な関係を打開する「相手の期待」を裏切る技
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.03
職場の同僚にイライラ…ストレスを最小限に抑える方法 臨床心理士が語る、「いい人でいなきゃ」と自分を追い込むタイプへの処方箋
2024.12.05
「今日こそやろう」と決めたのに…自己嫌悪でイライラする日々を変えるには
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み