1 / 71

自律分散協調システム論 第 12 回「 Peer-to-peer systems 」

自律分散協調システム論 第 12 回「 Peer-to-peer systems 」. 中村 修 osamu@sfc.wide.ad.jp. クライアントプログラム. サーバプログラム. クライアントサーバモデル. インターネット上の通信の基本モデル 2 種類のコンピュータ (明確な役割分担) サーバ : サービスを提供するコンピュータ クライアント : サービスを受けるコンピュータ. 必要なときにサーバプログラムと通信して要求を送るプログラム. クライアント. サーバ. あるポート番号でクライアントからの要求を常に 待ち受けているプログラム.

ratana
Download Presentation

自律分散協調システム論 第 12 回「 Peer-to-peer systems 」

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 自律分散協調システム論第12回「Peer-to-peer systems」 中村 修 osamu@sfc.wide.ad.jp

  2. クライアントプログラム サーバプログラム クライアントサーバモデル • インターネット上の通信の基本モデル • 2種類のコンピュータ (明確な役割分担) • サーバ : サービスを提供するコンピュータ • クライアント : サービスを受けるコンピュータ 必要なときにサーバプログラムと通信して要求を送るプログラム クライアント サーバ あるポート番号でクライアントからの要求を常に 待ち受けているプログラム データだよ クライアント データちょうだい

  3. クライアントサーバはSingle Point of Failure • ボトルネック • サーバの計算能力 • ネットワーク帯域 • ボトルネック解消のアプローチ • ロードバランサの利用 • キャッシュ/CDNの利用 • P2Pモデルの導入 アクセスの集中による 回線の飽和 Server サーバのダウン Clients

  4. 例(1/4) : IRCの負荷分散方法 • IRC(Internet Relay Chat) • サーバを分散し連携処理させる手法 • 一つサーバに処理が集中しない • RFC1459 Client 1 Server 1 Server 2 Hi! グループに1,2,3が 加わってる場合 Server 4 Client 2 Hi! Server 3 Hi! Client 4 Server 4にはグループに加 わったクライアントがない ためメッセージはこない Client 3

  5. コネクション要求 負荷分散装置 例(2/4) : ロードバランシング • 同じIPアドレスで複数のサーバが反応 • ラウンドロビン、URLで、重み付け、負荷、コネクション数、反応速度などで割り振る • 利点 • CPU負荷を軽減できる • 問題点 • 負荷分散装置が必要 • ログが分割される • メンテナンス負荷は高くなる

  6. www.asahi.comどこ? www.asahi.comどこ? Client 2 210.80.197.158だよ 209.249.129.20だよ Client 1 209.249.129.20 Wwwld2.asahi.com 210.80.197.158 Uunet3.asahi.com 例(3/4) : DNSラウンドロビン • 同じ名前で複数のサーバが登録されている • 物理的に別の場所で処理 • www.asahi.comなど • 利点 • 回線資源を分散利用できる • 問題点 • 均等に負荷が分散されない • 落ちているサーバにも振る • Cacheがあるためタイムラグがある

  7. Cache Servers キャッシュを拠点に置き アクセスを分散させる Server コンテンツの配置 Clients 例(4/4) : CDNを利用した負荷分散 • Accelia Durasitehttp://www.accelia.net/japanese/news/12.html • ファイルを広域に分散しネットワーク負荷を分散 • Akamaihttp://www.akamai.com/ • クライアントに一番近い、最適なキャッシュを探す • サーバのかわりにキャッシュがクライアントに応答 • 利点 • CPU資源の分散 • 回線資源の分散

  8. Peer-To-Peer Peerとは端末ノードのこと(中継ノードではない) Peer(端末)とPeer(端末)が1対1で直接対等な立場での通信形態 代表的なアプリケーション ファイル共有・交換・配信型 Napster コラボレーション型 Groove 分散コンピューティング型 SETI@home 特徴 耐故障性の実現 資源分散が可能 自由なランデブー P2Pとは?

  9. コミュニケーションとは? • コミュニケーションには主体がある。 • P2Pではこれらは対等のものとしてpeerと呼ぶ。 • 誰かとコミュニケーションをとるためには、まずその主体同士が、 • 相手を発見・識別する • コミュニケーションを開始する • コミュニケーションを終了する ……という手順が必要になる 相手の発見と識別 コミュニケーションの開始 コミュニケーションの終了

  10. クライアントサーバ、P2Pモデルの比較 クライアントサーバ ハイブリッドP2P ピュアP2P 中心 : Server 中心 : Server ピア ピア ピア ランデブーも通信も中心で行う ランデブーを中心で行い、通信をピア同士で行う ランデブーも通信もピア同士で行う WWWなどのインターネット上の大部分のアプリケーション Napster MSN Messengerなどの主要IM Gnutella ,Freenet, Winny

  11. ファイル共有 Napster Gnutella Morpheus WinMX Winny Share GNUnet BitTorrent ストリーミング PeerCast Joost (Skype) インスタントメッセンジャー MSNメッセンジャー ICQ、Jabber 3degrees、Skype Groove、Ariel AirOne 資源分散 OceanStore SETI@home HyperBee ネットワークゲーム Diablo Age of Empire 身近なP2Pアプリケーション

  12. ファイル共有: P2Pモデルの代名詞 • ファイル共有アプリケーション • ファイルの公開・検索・転送を実現する • WWWとの比較(登場人物と役割は?) • 公開:WWWサーバへのアップロード • 検索:検索エンジン • 転送:ブラウザによるページの取得 • 自律的なコミュニケーションとしてどう実現するか • オリジナル・ファイルは各Peerが分散して保有 • ネットワーク上に分散したファイルからの検索 • ファイルの転送 • 中継転送、キャッシュの利用 • 直接転送

  13. P2Pシステムの台頭 • 第1世代P2Pシステム (Hybrid P2P) • Index Server を利用した情報探索 • データの転送はノード間で実行される • 第2世代P2Pシステム (Pure P2P) • Index Serverを必要としない • 第3世代P2Pシステム • さらにキャッシュ機能を有する

  14. 第1世代P2P: Hybrid P2P model • 特徴 • ピアの管理・ファイルの管理をIndex Serverが行う • Index Serverは検索・発見のためのインデックスを管理 • 所持ファイルの一覧をサーバに送信 • 検索条件をサーバに送り、結果をもらう • 公開されているファイルをサーバが制御できる • データの送受信はピア間で行う インデックスサーバ ファイルの検索 自分の持つファイルを登録 ファイルを取得

  15. 利点 サーバ・クライアントモデルにおけるサーバへの負荷集中を分散により軽減できる 欠点 Index Serverが負荷集中点となる ハイブリッドP2P 中心にインデクッス・サーバが存在 ピア インデックスサーバに障害が発生すると、システム全体が停止する 第1世代P2Pの特徴

  16. サインイン時の通信 ファイルの送受信 メッセージの送受信 例: MSN Messenger サーバ ・セッションの開始 ・コンタクトリスト サインイン情報 メッセージ メッセージ ファイル転送

  17. 例: Napster • Napster • Napster社のファイル共有ソフト • 2000年7月に音楽関係団体に提訴をされ、サービス差し止め

  18. 第2世代P2P: Pure P2P model • Index Serverを用いないデータ共有 • Index Serverに対する負荷集中の分散 • 耐故障性 • 異常ノードの役割を他ノードが引き継ぎ可能 • 資源分散 • 計算機資源・ネットワーク資源の分散 • ただし,サービス管理が困難となる • Index Serverがあれば,ノード管理・データ管理が可能

  19. P2Pモデルとオーバーレイネットワーク • オーバーレイネットワーク(P2Pネットワーク) • Pure P2P modelを実現するためのネットワーク • 一般にアプリケーション・サービス毎に構築される • ピアが協調することにより自立的に管理・構築される サービスA サービスB

  20. トポロジを考慮しないデメリット • IPネットワークのトポロジとの分離 • 自分がピアを張る相手ノードの地理的(ネットワーク的)な接続関係は考慮しない • 実は相手は地球の裏側かも…… • 実際に転送できる帯域が細い! • 返事が返ってくるのが遅い!

  21. Pure P2P modelにおけるデータ検索 • インデックスサーバが存在しない • ノード情報を取得するための仕組みが必要 • IPアドレス、URI、ファイル情報 などなど • 情報の検索方式による分類 • Unstructured Overlay Network • Floodingによりデータを見つけ出すモデル • 例:Gnutella, Winny など • Structured Overlay Network • Index Serverの機能をOverlay Networkノードの協調で実現 • Distributed Hash Table

  22. Gnutella • 自律的に参加するPeerの集合体 • Index Serverに依存しない • P2Pネットワーク上で検索要求を転送(TTLは最大7) • 検索者が積極的にファイルを探しに行く • ファイルの所持者は受動的 持ってないよ! 持ってないよ! 持ってないよ! 持ってないよ! 持ってないよ! 持ってないよ! Bさん Aさん もってるよ! 送るね! あのファイルが欲しい…皆に聞いてみよう!

  23. Pure P2P model Index Serverに依存せず 堅牢性の実現 中継したキャッシュを再公開 高い匿名性 間接的な接続により、取得者には公開元が不明 暗号化により、中継者には通信内容が不明 Winnyを悪用した犯罪行為が多発 知的所有権を侵害 摘発されにくかったが… Winny

  24. Winny悪用による逮捕者とそのインパクト • 2003年11月27日に逮捕者がでた段階で日本中のトラフィックは2割減少した http://www.mfeed.co.jp/jpnap/fr-traffic.html http://www.zdnet.co.jp/news/0311/27/nj00_winny.html

  25. Winnyの悪用者が逮捕・製作者宅捜索 http://www.asahi.com/national/update/1127/035.html

  26. Winny: ネットワーク • ノードの持つネットワーク速度(自己申告)に応じて階層化 より高速 より低速

  27. オーバレイネットワーク どうやってオーバレイネットワークに参加? ピア ランデブーも通信もピア同士で行う P2Pの鶏と卵問題 • 何も知らないピアがP2Pネットワークに参加する • 1つでもP2Pネットワークのノードを知らないと参加できない • P2Pネットワークに参加していればピアについて認知できる • 中心のないシステムの宿命 • Winnyでは「初期ノード」の登録を手動で行うことで解決

  28. Winny: 広告と検索 • 公開者がより積極的に広告を行う • 公開者は、ファイルの情報をP2Pネットワークを通じて隣接するPeerに広告 • 広告された情報と検索要求を各Peerが比較 BさんのファイルをAさんが探してる!! Bさんがあのファイルを持ってる 持ってないよ! Bさんがあのファイルを持ってる 持ってないよ! 持ってないよ! Cさん Aさん Bさん 広告 あのファイルが欲しい…皆に聞いてみよう! このファイルを持ってることを皆に教えてあげよう!

  29. Winny: ファイルの公開 • オリジナルファイルからキーとボディを生成 • キーに含まれる情報 • ファイルサイズ • 更新時刻 • ハッシュ値 • ファイルの所在を表すIPアドレス・ポート番号 など • ファイルの公開と同時にキーがネットワーク上を拡散 upload folder キー(ファイルの要約情報) ファイルボディ(ファイルの本体) file.ppt

  30. Winny: ファイルの転送 • Winnyでは中継転送とキャッシュを採用 • 第三者を介在する • 匿名性を実現 • Napster、WinMX、Gnutellaは相手に直接接続 • 公開者と検索者だけ転送が完結

  31. Winny: 中継転送 • 中継転送 • P2Pネットワークでの中間のPeerが転送を中継 • 下の例では検索と広告を合致したCさんが中継転送 • 転送のパフォーマンスを犠牲にすることで、キャッシュを持つPeerを増やし冗長性を確保 Bさんのファイルを中継してあげよう! Cさん Aさん Bさん Cさんが持ってたんだね! 私のファイル人気があって配るのが大変……

  32. Winny: キャッシュ • キャッシュ • ファイルを取得したPeerや、中継転送したPeerがそのファイルの複製を第三者に自動的に再公開 • 耐故障性の実現(冗長性の確保) • 検索効率の向上 中継したファイルを他の人にも配って良いよね! Cさん Aさん Bさん このファイルを他の人にも配ってあげよう! 他の人も配ってくれると楽で良いね!

  33. Bさんのファイルを中継してあげるね! Aさん Bさん Cさん Cさんが持ってたんだね! 中継したファイルを他の人にも配って良いよね! Aさん Cさん Bさん このファイルを他の人にも配ってあげよう! 私が最初に公開したとわからなくなる! Winny: 中継転送とキャッシュによる匿名性 • 一度流れたデータを誰も消せないシステム • キャッシュとして多数のPeerに情報が残っている • ソフトの例:Freenet、Winny • 用途の例:P2P掲示板、ファイル共有 • 解決しなければならない問題 • 公開した元の人間の特定 • 法的に問題のあるコンテンツ   の転送を知らずに行えない   ようにする (ということが必要かもしれない)

  34. Winny: ネットワークの上流と下流 • 能力の高いノードにキーとキャッシュが集まる 高速なノードほど データの流量が多い (処理に負荷がかかるがデータは大漁) キャッシュ キャッシュ キー キー キー キャッシュ キャッシュ キー キャッシュ キー キャッシュ キャッシュ キャッシュ キー より高速 キー キー キー オリジナル ファイル より低速 キー キー オリジナル ファイル キャッシュ 低速なノードほど データの流量が少ない

  35. Winny: クラスタリング • 検索嗜好のより近いものでグルーピング • より効率のよい検索が可能となる 嗜好A 嗜好B 嗜好C 輪を絞って ファイルを探索 全体の輪の中 からファイルを探索 クラスタA クラスタB クラスタC

  36. Unstructured Overlay Networkの問題点と解決手法 • Unstructured Overlay Networkの問題点 • ネットワーク負荷の増加 • Floodingを利用するために通信量が増加 • 全てのデータを確実に見つけられない • 検索対象が発見できない可能性がある • いくつかの解決手法 • Structured Overlay Network を利用する • P2Pネットワークの階層化 • アプリケーションの動作を工夫(Winnyの例)

  37. Structured Overlay Network • Unstructuredに比べ検索効率が高い • だいたい発見できる(としている) • 検索時のトラフィックの抑制を実現 • Distributed Hash Table (分散ハッシュ表)を利用 • 検索対象の発見を効率化する仕組み • ルーティングによって対象のデータを探索 • 検索対象を複数のノードで分散管理する仕組み • ハッシュ値とハッシュ関数 • 提案されているDHTプロトコル • Chord, CAN, Pastry, Tapestry, Kademlia, etc.. • DHTを実装しているソフトウェア • BitTorrent, Warez P2P, eMule, etc..

  38. ハッシュ値とハッシュ関数 ハッシュ関数ではA≠Bの場合、F(A)≠F(B)が成り立つ Wikipedia, Hash Function, http://en.wikipedia.org/wiki/Hash_table

  39. ハッシュテーブルとは • キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造 Wikipedia, Hash Table, http://en.wikipedia.org/wiki/Hash_table

  40. DHTの特徴 • 利点 • flooding検索に対してのネットワーク的負荷軽減 • オブジェクトを漏れなく,かつ高速に探索することが可能 • 数10万ピアぐらいが限界だとされているが、DHTを使うと数10億ピアを探索範囲とすることが可能となる(Wikipedia: 分散ハッシュテーブル) • 欠点 • 実装が難解 • データの保持,データの分散,データの検索,とキーワードは様々 • データ検索の柔軟性がない • 完全一致探索しか行えない • 正規表現のような複雑な検索をDHTのみで実現することは困難 • これを解決するための研究は複数存在

  41. DHTのアルゴリズム(代表的な例) • Chord • 円状スキップリスト • CAN • N次元トーラス • Kademlia, P-Grid • Binary Tree • Tapestry, Pastry • Plaxton Tree Wikipedia, Hash Table, http://en.wikipedia.org/wiki/Hash_table

  42. N1 N56 N8 N51 N14 N48 N21 N42 N32 N38 Chord • Creating Chord Ring SHA-1によるHash結果に基づき m-bitsのハッシュ値をアサイン K54 K10 各担当ノードに配置 K24 K30 K38

  43. N1 N56 N8 N51 N14 N48 N21 N42 N32 N38 Chord • Lookup on Chord Ring(一番簡単なモデル) K54 Lookup(K54) 発見 Routing Table @ N8 K54を発見するまで 各ノードの経路表により 順番にノードを探索 Routing Table @ N14 この方法では データの発見に時間がかかりすぎる

  44. N1 N56 N8 N51 N14 N48 N21 N42 N32 N38 Chord • Lookup on Chord Ring(探索の効率化) Finger Table @ N8 Lookup(K54) K54 発見 K54を発見するまで 順番にノードを探索 近隣ノードについてのノードリスト (経路表とは別に持つ) Finger Tableに基づき N42から探索を開始

  45. Kademlia • Creating Kademlia Tree • ハッシュキーを160bitsのハッシュ空間に配置 160bitsのハッシュ空間 11..11 00..00 1 0 0 1001 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0

  46. Kademlia • Searching Kademlia Tree • ハッシュ空間からXORによりキーを探索 Lookup(1011) 11..11 1011 00..00 発見 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0

  47. Pastry • Example of Routing Table on node 83123456789abcdef0123456789abcdef ・・・ 一致長の桁数の数字がNodeXに従って変化 自身はself

  48. Pastry Lookup(d46a) • Searching with Pastry Algorithms 65a1 65a1とd46aのprefix一致長は0 d13dとd46aのprefix一致長は1 経路表にd13dがあったので、転送 d13d d461とd46aのprefix一致長は3 経路表にd421があったので、転送 d421 d421とd46aのprefix一致長は2 経路表にd462があったので、転送 経路表にd461があったので、転送 発見 d462 d461

  49. DHT関連の論文 • Ion Stoica, Robert morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek, and Hari Balakrishnan, Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Aplications, IEEE/ACM Trans. Networking, Vol.11, No.1, p. 17-32, Feb. 2003. • Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, and Scott Shenker, A Scalable Content-Addressable Network, In Proc. ACM SIGCOMM 2001, August 2001 • Antony Rowstron and Peter Druschel, Pastry: Scalable, decentraliszed object location and routing for large-scale peer-to-peer systems, Lecture Note in Computer Science, Vol.2218, pp. 329-350, 2001. • Ben Y. Zhao, John Kubiatowicz, and Anthony D. Joseph, Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing, Technical Report UCB/CSD-01-114, Computer Science Division, U. C. Berkeley April 2001, 55 • Petar Maymounkov and David Mazieres, Kademlia: A Peer-to-peer Information System Based on the XOR Metric, In Proceedings of IPTPS02, Cambridge, USA, March2002

  50. Skypeと自律分散協調

More Related