Peer-to-Peer アーキテクチャ ー正しい理解 (?) と新しい応用ー
最近の技術動向を観察すると 1. マルチプロセッサ型の計算機アーキテクチャの導入 分散処理 ( 機能分散 地理的分散 ) 2. キャッシュ (Proxy) 技術の導入 CDN(Contents Delivery Network) P2P(peer-to-Peer) など 3. 仮想化技術の導入 Virtulization Overlayネットワーク
大きく変わった前提 2 つの劇的なコスト低下 コピー ( 複製 ) コスト 記録 保存コスト しかしながら 情報流通が この変化を利用しきれていない BitTorrent や Joost は これに気づいたのかな? 日本では SoftBank YBB の BB-TV! がこっそり
Peer-to-Peer overlay multicasting service by professional ISP, BB-TV! by SoftBank over ADSL network October 11, 2006. Play-off game of professional baseball, Hokkaido Nihon Ham Fighters versus Fukuoka Softbank Hawks. Start Program 6.97Gbps (=37.3Gx18.7%) Number of clients Bandwidth at server Game-set 37.3Gbps (=768Kbpsx48,454) With legacy Unicast-based multicast Time
CS vs P2P (client-server) vs (Peer-to-Peer) とちらも Transparent な情報通信基盤 Server は 点 である必要はない Server のネットワーク化 Proxy/Cache もネットワーク化の一種??? Client-Server Server での機能 / 処理の共有 コスト削減 高品質サービス サービスの継続性 ISP も IT 部門設備 ( 企業 / 大学 ) も Server の一つ Peer-to-Peer すべての機器が サーバにもクライアントにもなる
クライアント サーバ or ピア ツー ピア エンド ツー エンド or ゲートウェイ 放送 電話 インターネットの技術比較 放送インターネット電話 クライアント サーバ ピア ツー ピア ピア ツー ピア ゲートウェイエンド ツー エンドゲートウェイ オーバレイ or ピアピアオーバレイピア 保証型 or ベストエフォート型 保証型ベストエフォート型保証型 シグナリングなしインバンドアウトバンド ハードステート or ソフトステート なしソフトステートハードステート
Peer-to-Peer システムの役割 1. キャッシュ (Cache) と Proxy の導入 2. DMA (Direct Memory Access) の導入 3. 仮想記憶システムの導入 (by DHT) コンテンツハンドラ ( 識別子 ) と実アドレスの分離 4. コンテンツの抽象化 (by DHT) { ファイル名 ファイル拡張子 等 } を隠蔽し 単純な数値で表現 (*) 仮想メモリ仮想的なメモリ機構によって生成される 仮想的なメモリ領域 ( とても大きな記憶空間 ) 仮想メモリは 最終的には適当な物理メモリにマップされる 物理メモリ量を超える仮想メモリ空間を作り出したり 複数の仮想空間を作り出したりする
キャッシュメモリ 高速処理低速処理 1データの読み出し要求メモリ 2データ転送 (*) 2が遅い CPUのアイドル時間が発生 キャッシュメモリの導入 << 高速 >> << 高速 >> << 低速 >> 1 データ A 読出要求 2 データ A 転送 データ A メモリ (*) 以前の命令実行時に既に転送済 データ A メモリ
Peer-to-Peer システムの役割 1. キャッシュ (Cache) と Proxy の導入 2. DMA (Direct Memory Access) の導入 3. 仮想記憶システムの導入 (by DHT) コンテンツハンドラ ( 識別子 ) と実アドレスの分離 4. コンテンツの抽象化 (by DHT) { ファイル名 ファイル拡張子 等 } を隠蔽し 単純な数値で表現 (*) 仮想メモリ仮想的なメモリ機構によって生成される 仮想的なメモリ領域 ( とても大きな記憶空間 ) 仮想メモリは 最終的には適当な物メモリにマップされる 物理メモリ量を超える仮想メモリ空間
DMA 方式 1 入出力の指令 3 完了通知 ( 割込 ) メインメモリ DMA コントローラ DMA 処理中 CPU はメインメモリにアクセスできない 2 データの書き込み 入出力装置
Peer-to-Peer システムの役割 1. キャッシュ (Cache) と Proxy の導入 2. DMA (Direct Memory Access) の導入 3. 仮想記憶システムの導入 (by DHT) コンテンツハンドラ ( 識別子 ) と実アドレスの分離 4. コンテンツの抽象化 (by DHT) { ファイル名 ファイル拡張子 等 } を隠蔽し 単純な数値で表現 (*) 仮想メモリ仮想的なメモリ機構によって生成される 仮想的なメモリ領域 ( とても大きな記憶空間 ) 仮想メモリは 最終的には適当な物理メモリにマップされる 物理メモリ量を超える仮想メモリ空間を作り出したり 複数の仮想空間を作り出したりする
H 以上の値を担当 G ~ H を担当 0 ハッシュ値が 0 ~ A のファイルの保存を担当 G H ハッシュ値 A B A ~ B を担当 F ~ G を担当 F E E ~ F を担当 D ~ E を担当 D C C ~ D を担当 B ~ C を担当 図 9-6 DHT における分散ファイル保存
コミュニケーションツール サーバクライアント型 BBS (Bulletin Board System) News IRC(Internet Relay Chat) インターネットファックス 動画転送 (Real WMT) Peer-to-Peer 型 Gnutella/Jutella Freenet ( 回転すしモデル ) talk DVTS Hybrid 型 VoIP (Voice over IP) Napstar Instant Messenger (AOL MS) 13
位置付け Freenet 匿名性を重視したファイル分散 ファイル検索系 Napster ーハイブリット型接続 Napster.com のサーバ群のみ Gnutella ー Pure P2P 型接続 Gnutella Net WinMX ー NapsterとGnutellaのイイトコ取り接続 Napsterサーバ OpenNapサーバ WinMX 独自のP2P その他 Crypttobox, Espera, Winny, imesh, Scour Exchange, Aimster, KaZaA 14
Peer-to-Peer Overlay Networking First generation Napstar, WinMX directory server + Pee-to-Peer connection (*) similar to SIP and NGN Second generation Gnutella Server-less pure peer-to-peer (*) Third generation Freenet, Winny introduction of network cache for scalability 15
P2P 型ファイル分散共有 Gnutella Storage と帯域を分散した Napster Index と Storage を分離 Freenet ファイルとLocationを分離 ファイル保有 送信 受信の匿名性を実現した 16
Napster データのインデックス ファイル名 user 名 server PC データ蓄積 IP アドレス ポート番号 パス コネクト要求 ダウンロード開始 PC データ蓄積 17
Gnutella 自分のピア Network ネットワーク内のノードはつながっているが 18 互いに何を保持しているかは検索するまでわからない
A 自分のピア Gnutella: ディスカバリー B F C 見つかった! G data D E 求めるデータのあるピア 19
B Gnutella: 転送 F A 自分のピア C data G D E 求めるデータのあるピア 20
Freenet の設計思想 情報を中央集権的な管理から解放する 情報の発信は 誰でも匿名で行える 情報の受信は 誰でも匿名で行える 需要の多い情報は消えない 需要の無い情報は消えていく 情報は意図的に削除できない ファイルと Location を分離 ファイルを検閲 削除 改変しようとする第 3 者の圧力を回避した分散ストレージ 21
Freenet : ファイルの挿入 自分のピア Network Hash 値 ソースデータ Hash 値 Hash 値 情報保持者 データの GUID key を broadcast HTL(TTL)=2 22
Freenet ファイルの転送 B F data A C 自分のピア data G data D E 求めるデータのあるピア 23
P2P 型ファイル分散共有 Gnutella Storage と帯域を分散した Napster Index と Storage を分離 Freenet ファイルとLocationを分離 ファイル保有 送信 受信の匿名性を実現した 24
キャッシュ / スーパー ノードリバースキャッシュ 図 9-5 Winny/SKYPE における階層的トポロジー構造の概念図
Web サービスの構造上の問題 ( 負荷の集中 ) Contents 負荷集中 通常のコンテンツ取得経路 コンテンツプロバイダ 負荷集中 IX Internet 負荷集中 IX 負荷集中 idc ISP idc ISP ISP ISP 利用者
CDN as scaling mechanism Moore の法則と Coffman の観測のギャップを埋める Reverse proxy Mirroring また end-to-end delay を改善 End-to-edge へ
CDS CDN による負荷分散とエッジからのコンテンツ配信イメージ図 Contents キャッシュした場合のコンテンツ取得経路 コンテンツキャッシュ コンテンツプロバイダ CDS CDN キャッシュ ISP IX idc Internet キャッシュ ISP IX ISP idc キャッシュ ISP 利用者
P ROF ES SIO NAL WOR KS TA TION PROFESSIONAL WORKSTATION Ω V70 SD SD SD 450 ENTERPRISE SD UL TRA SPARC DRIVEN CDS( キャッシュ同期技術 ) GIF,JPEG 等 Rich Contents をあらかじめ Cache サーバにアップロード ( リバースキャッシュ ) USER コンテンツキャッシュ / ミラー サイト Original Contents Server Sun NetApp F210 Network Appliance GIF,JPEG 等 Rich Contents は複数の Cache の中から最適なサイトから配信 ( リクエストナビゲーション ) Text は Original から直接配信
DNS-based CDN ISP Network GSLB DNS Cache Cache Request navigation Heartbeat DNS query DNS response
Reverse proxy + URL rewriting GET index.html GET foo.gif Akamaizer Origin server Internet SLB with URLrewriting & DNS
HTTP フォワード Cache Internet 上位回線
Peer-to-Peer システムの役割 1. キャッシュ (Cache) と Proxy の導入 2. DMA (Direct Memory Access) の導入 3. 仮想記憶システムの導入 (by DHT) コンテンツハンドラ ( 識別子 ) と実アドレスの分離 4. コンテンツの抽象化 (by DHT) { ファイル名 ファイル拡張子 等 } を隠蔽し 単純な数値で表現 (*) 仮想メモリ仮想的なメモリ機構によって生成される 仮想的なメモリ領域 ( とても大きな記憶空間 ) 仮想メモリは 最終的には適当な物理メモリにマップされる 物理メモリ量を超える仮想メモリ空間を作り出したり 複数の仮想空間を作り出したりする
最近の技術動向を観察すると 1. マルチプロセッサ型の計算機アーキテクチャの導入 分散処理 ( 機能分散 地理的分散 ) 2. キャッシュ (Proxy) 技術の導入 CDN(Contents Delivery Network) P2P(peer-to-Peer) など 3. 仮想化技術の導入 Virtulization Overlayネットワーク