構造化オーバレイと P2Pアーキテクチャの研究動向1

Slides:



Advertisements
Similar presentations
演習3 米澤研究室 発表2 山崎孝裕. 主な内容  分散動的サーバモデル(復習)  掲示板システムの問題点と仮定  掲示板システムの大まかな動き(細かい エラー処理は考慮しない)
Advertisements

到着時刻と燃料消費量を同時に最適化する船速・航路計画
  スケジュール管理手法PERT-Time      解 説    “最早開始時間計算のアルゴリズム”
最新ファイルの提供を保証する代理FTPサーバの開発
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
第11回 整列 ~ シェルソート,クイックソート ~
情報科指導法Ⅰ 第11回 年間授業計画表.
JavaによるCAI学習ソフトウェアの開発
IPv6 エニーキャスト ルーティングプロトコル PIA-SM の設計および実装
神奈川大学大学院工学研究科 電気電子情報工学専攻
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
先端論文紹介ゼミ Role-based Context-specific Multiagent Q-learning
小型デバイスからのデータアクセス 情報処理系論 第5回.
モバイルエージェントの応用 概要 モーバイルエージェントの応用分野 AgentSpaceシステム エージェント移動 応用:ソフトウェアの配信
センサノード 時刻同期と位置測定 浅川 和久 2008/11/16 センサノード 時刻同期と位置測定.
共同ローカリゼーション フレームワーク 井上 謙次.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
講義日程予定 第 1 回 「ガイダンス」 第 2 回 「ユビキタスシティ検討ワーキング中間とりまとめ」
大きな仮想マシンの 複数ホストへのマイグレーション
PlanetLab における 効率的な近隣サーバ選択法
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
ノードの情報を動的に反映したオーバレイネットワークの構築
ノードの情報を動的に反映したオーバレイネットワークの構築
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
P2P型ウェブ閲覧者間コミュニケーションに関する研究
第11回 整列 ~ シェルソート,クイックソート ~
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
IPv6アドレスによる RFIDシステム利用方式
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
修士研究計画 P2Pネットワークの最適化 kuro must: Survey ○テクニカルにチャレンジング
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
オーバレイ構築ツールキットOverlay Weaver
クローンセットに対する主要編集者の分析法の提案と調査
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
WWW上の効率的な ハブ探索法の提案と実装
ランダムグラフ エルデシュとレーニイによって研究された.→ER-model p:辺連結確率 N:ノード総数 分布:
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
Internet広域分散協調サーチロボット の研究開発
私の立場 OSカーネルを手がけるエンジニア 大阪市立大学 創造都市研究科の学生
早わかりアントコロニー最適化 (Ant Colony Optimization)
ロボットの協調動作の研究: マップ作成とマップ情報を利用した行動計画
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第2回 FM10019 種田研究室 古江和栄
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
P2P型アプリケーション用ライブラリ SUNET
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
「マイグレーションを支援する分散集合オブジェクト」
常設チャット トピック フィードを作成してアクティビティをフォローする Lync 2013 クイック リファレンス
Amicus: A Group Abstraction for Mobile Group Communications
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
黒宮 佑介(学籍番号: ) 政策・メディア研究科 修士課程2年 主査:村井 純、副査:斉藤 賢爾・中村 修・江崎 浩
慶應義塾大学 政策・メディア研究科 修士課程 2年 間 博人
Gnutellaの図 ファイルを探す人 query hit Loop検出 ファイル取得 ファイル
JXTA総まとめ P2P特論 最終回 /
P2P & JXTA Memo For Beginners
黒宮 佑介(学籍番号: ) 政策・メディア研究科 修士課程2年 主査:村井 純、副査:斉藤 賢爾・中村 修・江崎 浩
P2Pによる協調学習システム 唐澤 信介   北海道工業大学 電気工学専攻.
DHCPv6 on zebraの設計 miyu(SING) B2 親:yasu.
Presentation transcript:

構造化オーバレイと P2Pアーキテクチャの研究動向1 情報工学専攻 FM10005 尾上達彦

アウトライン 構造化オーバレイの実例 5.1 5.2 5.3 5.4 構造化オーバレイの事例 5.5 Chord(コード) Pastry(パストリー) 5.2 Kademlia(カデムリア) 5.3 Skip Graph(スキップ・グラフ) 5.4 構造化オーバレイの事例 BitTorrent(ビットトレント) 5.5

5.1 Chord 分散ハッシュテーブル(DHT)を代表するアルゴリズムの一つ 2001年にMITのPDOSグループ※が発表 K7 ノードN8が ファイルK7を格納 N43 N1 N8 時計回りで最初にいるノード(プレデセッサ・ノード) 反時計回りで最初にいるノード(サクセッサ・ノード)を決定 N30 N16 ノードN24が ファイルK18を格納 K18 N24 ※Parallel & Distributed Operating Systems Group(並列分散OSグループ)

Chordのルーティング例 ノード アクセス 探索に時間がかかる ファイルの所有者(P) ルックアップ 時計周りで最初に存在するノードがファイルを格納する ルックアップ Pの位置を得る ファイルを欲しい人 ファイル位置を格納しているノードから

フィンガー・テーブルと動作 名称 説明 ルックアップでの役割 維持コスト サクセッサ・リスト 識別子距離が最も近いノードへの経路 サクセッサ・リストにルックアップを順々に伝播させてもルックアップ可能 低い フィンガー・テーブル 2kずつ遠い識別子距離のノードへの経路 全て正しければ、ノード総数に対して対数オーダーでルックアップ可能 高い N1 N8 + 2k リンクするリスト N8+1(k=0) N16 N8+2(k=1) N8+4(k=2) N8+8(k=3) N20 N8+16(k=4) N32 N8+32(k=5) N40 ルックアップ N52 N8 N45 k = 3 k = 5 N40 N16 N8のフィンガー・テーブル N20 N32 N24

ノードの参加・離脱が発生する場合 ノードの離脱 ノードの参加 N1 N8 N43 N16 N32 ファイルを格納 K18 各フィンガー・テーブルリストを更新 N20のサクセッサ・リストにN32を追加 N32のプレデセッサ・リストにN20を追加 ノードの離脱が起きたので N16 N32 ファイルを格納 K18 各フィンガー・テーブルリストを更新 N16のサクセッサ・リストに追加 N28のプレデセッサ・リストに追加 N20 N28 K25 ノードの参加 ノードの離脱

5.2 Pastry マイクロソフト社とライス大学が開発されたDHTの実装を目的とし たP2Pシステム 目的のIDを探索する為にPlaxton(プラクストン)アルゴリズムを 採用しているのが特徴 オープンな実装としてはFreePastryとBambooが有名 Plaxtonアルゴリズム ノードIDとして、決まった基数と桁数を持つ整数を使う 例えばノードID = 123456というノードのルーティングテーブルは、1桁目が1以外であるノードの集合、1桁目が1だが2桁目が2以外であるノードの集合…という具合で構成されており、上から最長一致(プレフィックス一致長)したノードへ検索が転送される

Plaxton構造とルーティング例 ノード302を検索する場合、まず目的ノードとの桁数が一致する近接ノード を選び出し、上位から1桁ずつ数字を揃える 233 230 出発点 321 123 323 302 133 301

Pastryのルーティング手順 目的キーがリーフセット(自分の近くのノードの場所を記憶してい る表)内に含まれているとき、最もIDが近いノードにメッセージを 転送 ①でない場合、ルーティング・テーブルから次に転送すべきノー ドを探し、そのノードにメッセージを転送 ルーティング・テーブルにエントリーがない場合、リーフセットから 自ノードよりIDの近い候補を探し、そのノードにメッセージを転送 リーフセットにIDの近い候補がない場合は、自ノードが目的ノー ドになる

Pastryのノード状態とルーティング例 10223220が目的のキーの時 10222302から探索…を繰り返す ノードID 10233102 ①探索 リーフセット 小さな値 大きな値 ③最も近いノードIDを探索 10233033 10233020 10233001 10233000 10233120 10233122 10233230 10233232 ルーティングテーブル -0-2212102 1 -2-2301203 -3-1203203 1-1-301233 1-2-230203 1-3-021022 10-0-31203 10-1-32102 2 10-3-23302 102-0-0230 102-1-1302 102-2-2302 3 1023-0-322 1023-1-000 1023-2-120 10233-0-01 102331-2-0 ②探索

5.3 Kademlia 発表された際の内容が実用性を重視しており、XOR (排他的論 理和)を使ったシンプルなプログラムであったことから人気になった Cordと同等の機能を有するが、Cordがリング状にノードを配置し ているのに対し、Kademliaでは二分木のような構造上にノードを 配置する ノード管理 あるキーとバリューの組をどのノードが管理するかは、そのキーとノードのプレフィックス一致長で決まり、一番長いノードが管理ノードとなる。実際にはXORをID空間の距離関数とすることで実現できる プレフィックス一致長が一番大きいノード=XOR距離が一番小さいノード

k-bucket 4ビットのID空間を想定し、あるノードIDが0101だとするとルー ティングテーブルは となる(*は0か1) これらルーティングテーブル内のノードの集合をk-bucket(ケー・ バケット)と呼び、最大kノード格納できる 4ビットの場合、約4kノードが格納される プレフィックス一致長 XOR距離 ノードID 3 1 0100 2 2~3 011* 4~7 00** 8~15 1***

k-bucket例とルーティング例 0101のk-bucket 0101から1110へのルーティング ノードID = 1*** プレフィックス長 = 0 (XOR距離 = 8~15) ノードID = 00** プレフィックス長 = 1 (XOR距離 = 4~7) ノードID = 011* プレフィックス長 = 2 (XOR距離 = 2~3) ノードID = 0100 プレフィックス長 = 3 (XOR距離 = 1) 0000  0001  0010  0011  0100  0101  0110  0111  1000  1001  1010  1011   1100  1101   1110  1111    

Kademliaの特徴・採用しているシステム ルーティングテーブルが対称性を持っているので、ルーティングテーブルの更新をメッセージの受信によって行うことができ、効率がよい メッセージを受信するたびにk-bucketを更新し、古いノードから消していく機構があり、これによって常にルーティングテーブルを新鮮に保つことができる Kademliaを採用しているシステム システム名 特徴 Overnet 最古のシステム、その後eDonkeyに吸収 eMule Kadネットワークと呼ばれる Khashmir BitTorrentにより採用された Kenosis P2P RPC(Remote Procedure Call)システム BitTorrent トラッカーレスで使われる Azureus 同じくトラッカーレスで使われるがBitTorrentと互換性なし

5.4 Skip Graph DHTアルゴリズムとは異なる機能を持つ ノードIDを割り当てる際に別にキーが割り当てられる キーを探索する為にSkip Listを用いる Skip Listは1990年にW.プフが提案したバランス木を構成する ためのデータ構造 ヘッド テール n3 level2 level1 level0 n1 n4 n2 n5 n6 Skip listのデータ構造

Skip Graphの例 Skip Listの拡張版のようなもので、探索する際はどのノードから始めても よい 最初のノードが決まったら、Skip Listと同じように上位のレベルから下位 のレベルに向かって探したいノードに向かって移動する n1 n2 n3 n4 n5 n6 level2 level1 level0 Skip List Skip Graphのデータ構造

5.5 BitTorrent P2Pファイル配信アプリケーション 大容量のファイルを素早く、低コストで配信することを目的に、2001 年に開発された 特徴 ピアの状態を管理する為のサーバ(トラッカー)が存在する ファイルを持つピアの検索は行わず、代わりに各ピアがトラッカーにファイルを持っているピアを問い合わせる ファイルをピースと呼ばれる単位に分割して、ピース単位でダウンロードする トレントファイルを取得してからでないと、 P2Pから本体ファイルをダウンロードできない 「相手(ピア)からピースを受け取るには、自分もピースを渡さなければならない」という規則を導入したため、貧弱な帯域を持つユーザでも、全体のファイル配布に協力できるようにした

BitTorrentの動作 サーバはそれぞれ異なる断片を、常にピアの一部だけに配布し、各ピア は、ピアやサーバから断片をダウンロードすると同時に自分の持つ部分を 持っていないピアにアップロードする DHT検索 DHTネットワーク ピアのリスト取得 torrentファイルのダウンロード サーバ

BitTorrentのアルゴリズム:1 ピース選択アルゴリズム ダウンロードするファイル・ピースの順番は、ダウンロード効率に大きく影響する    ダウンロードするファイル・ピースの順番は、ダウンロード効率に大きく影響する 取得中のピースのダウンロードに集中戦略     現在ダウンロードしようとしているピースに集中。BitTorrentでは1つのピースを複数のサブピースに分割してダウンロードし、完全なピースが確認できたら完全性をチェックする。その後、他ピアからのダウンロード対象となる 希少ピースを優先戦略     1つのピースのダウンロードが完了すると、各ピアがもっているピースのうち、最も少ないピースをダウンロードする。ピアの離脱時、そのピアしか特定のピースを持っていなかった場合にピースを取得できなくなる可能性があるので 最初はランダム戦略     2が採用されない例外がBitTorrentクライアントの起動直後 EndGameモデル     ファイルのダウンロードの最終段階では、最後のサブピースは一斉に複数のピアからダウンロードする

BitTorrentのアルゴリズム:2 チョーク・アルゴリズム(アップロードするピアを決める方法)    ファイル共有を目的とした多くのP2Pでは、ファイルの需要と供給のバランスの上 に成り立っており、BitTorrentではこれを「囚人のジレンマ」の「しっぺ返し戦略」 をもとに調整している 基本的なチョーク・アルゴリズム     各ピアは、一定数のピアに対してアップロードを許可(アンチョーク状態)する。アンチョーク状態にするピアの選択はダウンロード速度によって決める 楽天的なアンチョーク戦略     30秒ごとにピアのリストから順々にアンチョーク状態にする。 反冷遇主義戦略     1分以上、アンチョーク状態のピアからピースを全く取得できなかった場合は、そのピアをチョーク状態にする。この時、(2)が働き代わりを見つける。また、一度冷遇されたピアに対しては、アンチョーク状態にしないようにする。 アップロード・オンリー     全ピースのダウンロードが終了すると、(1)をする必要がないので、アップロード速度が速いピアをアンチョーク状態にする戦略に変更