P2P ファイル共有

Takami Torao #P2P
  • このエントリーをはてなブックマークに追加

概要

P2P ファイル共有は P2P ネットワーク技術を使用したファイルの配布と共有を行うサービス、アプリケーションまたはネットワーク。ダウンロードのネットワーク負荷をユーザ側で分散することから低コストでサービスを運営することができるが、一方で、データの管理を行うことができず、著作権管理や情報漏えいと言った法的な問題に巻き込まれることも多い。

Table of Contents

  1. 概要
  2. Napster
  3. Gnutella
  4. WinMX
  5. FastTrack
  6. Freenet
  7. Winny
  8. BitTorrent
  9. IPFS
  10. 参考リンク

Napster

最初に世間に認知された P2P ファイル共有サービスは音楽ファイル共有の Napster (2999-2010) である。当時はハイエンドサーバでも Pentium III (550MHz)×4 に 1GB のメモリといった計算能力しかなく、またネットワークも LAN が 100BASE-TX、一般ユーザの WAN は ISDN 64kbps や電話回線 54kbsp と非常に低速だった。したがって大きなファイルのダウンロードをサーバに一極集中させないようにユーザ間で交換させる設計は非常に野心的な試みだった。

Napster は負荷の排除を目的とした設計であったためメタ情報や検索に中央サーバを使用するハイブリッド P2P であった。当初から著作権の違法性が指摘され悪名は高かったが非常に人気を集めた。そして公衆ネットワーク上で広く個人のファイルを共有することへの初の社会的なテストケースとなった。Napster は裁判に負けたあとサービスを終了したが、Napster が直面した法的な課題への対処として、後続のファイル共有サービスはピュア P2P 化することとなった。

Gnutella

Gnutella (2000-) は広く利用された P2P サービスの中で最初のピュア P2P 型ファイル共有サービスである。非構造化オーバーレイネットワークであり初期のバージョンでは Flooding による検索を行っていた。しかしネットワークが大きくなると Flooding による負荷で 100-300 程度のノードしかスケールできないことが大きな問題となったため ver 0.4 からはすべてのクエリーがスーパーピアを経由する設計となった。期間が長く Cabos, LimeWire といった多数のファイル共有クライアントがサポートした。

WinMX

WinMX (2001-2005) は Napster の互換プロトコルである OpenNap を使用したハイブリッド P2P 型ファイル共有サービス。Napster と同様に法的な問題によって閉鎖したが、ダークネットでは現在でも有志によって WinMX ネットワークは利用可能である。

FastTrack

FastTrack (2001-) はファイル交換アプリケーション KaZaA で使用されているスーパーピア型 P2P ファイル共有サービス (スーパーピアは運営が用意するのでハイブリッド P2P に分類されることも)。KaZaA の他に Grokster, Imesh といったサービスやクライアントで使われた。

Freenet

Freenet (2000-) は言論の自由が保証されていない地域において自由な言論を行うことを目的としたピュア P2P ファイル共有のフレームワーク。転送効率や利便性より通信の匿名性を重視して設計されている。

Freenet のファイル転送は、要求のあったファイルを暗号化してブロックに分割し P2P ネットワーク上に Flooding を行う。ファイル受信者は該当するファイルの断片が自分のノードに到着するのを待ってファイルを復元し復号化する。この仕組みにより、ファイルの送信者/受信者および中継するノードはファイルの送信者、受信者を判断することができず、断片化されたブロックの内容も知ることができない。

このような Flooding に基づく Freenet の方法はクエリーもファイル転送もネットワーク規模に対して全体の負荷が指数増加する非常に高負荷な方法だが、ネットワーク全体を監視する機構が存在しない限りクエリーの発行元、データの送信元を特定することが困難である。

Winny

BitTorrent

Kademlia を使ったハイブリッド DHT P2P ファイル共有 (ダウンロード時に index torrent ファイルを入手しなければいけないのでハイブリッド型)。Winny のように高性能なノードが多くの接続やキャッシュを持つように最適化する。高負荷なダウ専ユーザを排除するために、ダウンロードするにはなにかをアップロードしなければならない tit-for-tat (しっぺ返し) 戦略 (チョークアルゴリズム) を実装している。

IPFS

参考リンク

  1. 金子勇 (2005), Winnyの技術, アスキー