Peer-to-Peerアーキテクチャー 正しい理解(?)と応用 ーLeading toNDN, Named Data Networking

最近の 技術動向を観察すると。
1. マルチプロセッサ型の計算機アーキテク
チャの導入
分散処理(機能分散、地理的分散)

2. キャッシュ(Proxy)技術の導入
CDN(Contents Delivery Network)、
P2P(peer-to-Peer） など

3. DMA(Direct Memory Access)技術の導入
4. 仮想化技術の導入
Virtualization、Overlayネットワーク

大きく変わった前提• 2つの 劇的な コスト低下– コピー(複製) 記録・保存 コスト– 計算コスト(*) {無線}通信コストは、下がらない。。。。。

• しかしながら、情報流通が、この変化を利用しきれていなかった。
– BitTorrentなどは、最初にこれに気づいたのかな ?
– 日本では、SoftBank YBBの BB-TV! が、、、、P2P とは言わずに、、、、こっそり。
– そして、今は、｛Mobile｝Edge Heavy Computing

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
2006/10/11 同時視聴者数と送出トラフィックの推移グラフ
B B B 同時視聴者数[単位：人]Ham Fighters versus Fukuoka Softbank Hawks.

セン ター トラ フ ィック[ 単位： Mbps](HMS x7 2 総計)

37.3Gbps

Number
同時視聴者数(=768Kbpsx48,454)

of clients

With legacy
Unicast-based
multicast

6.97Gbps(=37.3Gx18.7%)
Start
Program
中継配信開始⇒サーバーの送信トラフィック

Game-set? 中継配信終了

Bandwidth at server

17:01 17:17 17:33 17:49 18:05 18:21 18:37 18:53 19:09 19:25 19:41 19:57 20:13 20:29 20:45 21:01 21:17 21:33 21:49 22:05 22:21 22:37 22:53 23:09 23:25 23:41
時間TimeCS vs P2P(client-server) vs (Peer-to-Peer)• とちらも、”Transparent” な情報通信基盤• “Server” は、「点」 である必要はない。
– “Server” のネットワーク化– “Proxy/Cache”もネットワーク化の一種???

• Client-Server– “Server” での機能/処理の共有• コスト削減 、高品質サービス、サービスの継続性– ISPもIT部門設備(企業/大学)も “Server” の一つ• Peer-to-Peer– すべての機器が、サーバにもクライアントにもなる。

Peer-to-Peerシステムの役割
1. キャッシュ(Cache) と Proxy の導入
2. DMA (Direct Memory Access) の導入
3. 仮想記憶システムの導入 (by DHT)
コンテンツハンドラ(識別子) と 実アドレスの分離

4. コンテンツの抽象化 (by DHT)
{ファイル名、ファイル拡張子、等} を隠蔽し、単純な数値で表現。
(*) 仮想メモリ
仮想的なメモリ機構によって生成される、仮想的なメモリ 領域(とても大きな記憶空間)。仮想メモリは、最終的には適当な物理メモリにマップされる。 物理メモリ量を超える仮想メモリ 空間を作り出したり、複数の仮想空間を作り出したりする。

キャッシュメモリ
低速処理

高速処理
①データの読み出し要求

メモリ②データ転送(*) ②が遅い、、、➔ CPUのアイドル時間が発生。。。。
キャッシュメモリの導入<<高速>>①データA
読出要求②データA転送<<高速>><<低速>>
データA

データA

メモリ

(*)以前の命令実行時に既に転送済

メモリ

Peer-to-Peerシステムの役割
1. キャッシュ(Cache) と Proxy の導入
2. DMA (Direct Memory Access) の導入
3. 仮想記憶システムの導入 (by DHT)
コンテンツハンドラ(識別子) と 実アドレスの分離

4. コンテンツの抽象化 (by DHT)
{ファイル名、ファイル拡張子、等} を隠蔽し、単純な数値で表現。
(*) 仮想メモリ
仮想的なメモリ機構によって生成される、仮想的なメモリ 領域(とても大きな記憶空間)。仮想メモリは、最終的には適当な物理メモリにマップされる。 物理メモリ量を超える仮想メモリ 空間を作り出したり、複数の仮想空間を作り出したりする。

DMA方式①入出力の指令③完了通知(割込)

メインメモリDMAコントローラ②データの書き込み
DMA処理中、CPUはメインメモリにアクセスできない入出力装置

Peer-to-Peerシステムの役割
1. キャッシュ(Cache) と Proxy の導入
2. DMA (Direct Memory Access) の導入
3. 仮想記憶システムの導入 (by DHT)
コンテンツハンドラ(識別子) と 実アドレスの分離

4. コンテンツの抽象化 (by DHT)
{ファイル名、ファイル拡張子、等} を隠蔽し、単純な数値で表現。
(*) 仮想メモリ
仮想的なメモリ機構によって生成される、仮想的なメモリ 領域(とても大きな記憶空間)。仮想メモリは、最終的には適当な物理メモリにマップされる。 物理メモリ量を超える仮想メモリ 空間を作り出したり、複数の仮想空間を作り出したりする。

“H”以上の値を担当

ハッシュ値が“0”～”A”のファイルの保存を担当“G”～”H” を担当

0A

H“A”～”B” を担当

ハッシュ値

G
B
“F”～”G” を担当

F“B”～”C” を担当
C
E“E”～”F” を担当

D“C”～”D” を担当“D”～”E” を担当

図9-6 DHTにおける 分散ファイル保存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
12

P2P型ファイル分散共有• Napster– IndexとStorageを分離• Gnutella– Storageと帯域を分散した• Freenet– ファイルとLocationを分離– ファイル保有・送信・受信の匿名性を実現した
13

Napster
データのインデックス

ファイル名・user名

serverIPアドレス・ポート
番号・パス

コネクト要求PC
データ蓄積

ダウンロード開始

PC
データ蓄積

14

Gnutella

Network
自分のピア•ネットワーク内のノードはつながっているが、15
互いに何を保持しているかは検索するまでわからないGnutella：ディスカバリー
B
F
自分のピア
見つかった！

CA

dataG

D

E

求めるデータのあるピア

16

Gnutella： 転送
B
F

CA

自分のピア

dataG

DE

求めるデータのあるピア

17

Freenetの設計思想
••
•
••
•

情報を中央集権的な管理から解放する
情報の発信は、誰でも匿名で行える
情報の受信は、誰でも匿名で行える需要の多い情報は消えない
需要の無い情報は消えていく
情報は意図的に削除できない→ファイルとLocationを分離
ファイルを検閲・削除・改変しようとする第3者の圧力を回避
した分散ストレージ
18

Freenet ：ファイルの挿入
自分のピア

Network
Hash値

ソースデータ

Hash値
Hash値

情報保持者

•データのGUID keyをbroadcast※HTL（TTL）=2
19

Freenet ファイルの転送
B
F
data

C

A

data

data

G

自分のピア

D

E

求めるデータのあるピア

20

P2P型ファイル分散共有• Napster– IndexとStorageを分離• Gnutella– Storageと帯域を分散した• Freenet– ファイルとLocationを分離– ファイル保有・送信・受信の匿名性を実現した
21

スーパー・ノード
キャッシュ/リバースキャッシュ

図9-5 Winny/SKYPEにおける階層的トポロジー構造の概念図

Webサービスの構造上の問題 (負荷の集中)
通常のコンテンツ取得経路

負荷
Contents
Contents
Contents 集中
コンテンツプロバイダ

負荷
集中

ISP

Internet
IX

IX

負荷
集中

iDC
ISP

iDC
ISP

利用者

負荷
集中

ISP

CDN as scaling mechanism• Mooreの法則とCoffmanの観測のギャップを埋める– Reverse proxy– Mirroring• また、end-to-end delayを改善– End-to-edge へCDS・CDNによる負荷分散とエッジからのコンテンツ配信イメージ図
キャッシュした場合のコンテンツ取得経路

Contents
Contents
Contents

コンテンツキャッシュ

コンテンツプロバイダ

Internet

CDS・CDN
キャッシュ

ISP

IX
iDC

iDC

キャッシュ

キャッシュ

ISP
利用者

IX

ISP

ISP

CDS（キャッシュ同期技術）
GIF，JPEG等Rich Contents
をあらかじめＣａｃｈｅサーバにアップロード(リバースキャッシュ)USER

コンテンツキャッシュ／ミラー・サイト

Original
Contents
ServerSD

ENTERPRISE

450

V70
SD

Sun

ULTRA SPARC
DRIVENNetApp F210
PROFESSIONAL WORKSTATIONSDPROFESSIONAL WORKSTATION

Network Appliance

WSD

GIF,JPEG等Rich Contents
は複数のＣａｃｈｅの中から最適なサイトから配信(リクエストナビゲーション)

TextはOriginalから直接配信

DNS-based CDN
ISP Network

GSLB DNS
Cache

Request navigation
HeartbeatCache

DNS query
DNS response

Reverse proxy + URL rewriting
GET foo.gif
GET index.html

Akamaizer
Origin serverInternet
SLB with URLrewriting & DNSＨＴＴＰフォワードCache
Internet

上位回線

Peer-to-Peerシステムの役割
1. キャッシュ(Cache) と Proxy の導入
2. DMA (Direct Memory Access) の導入
3. 仮想記憶システムの導入 (by DHT)
コンテンツハンドラ(識別子) と 実アドレスの分離

4. コンテンツの抽象化 (by DHT)
{ファイル名、ファイル拡張子、等} を隠蔽し、単純な数値で表現。
(*) 仮想メモリ
仮想的なメモリ機構によって生成される、仮想的なメモリ 領域(とても大きな記憶空間)。仮想メモリは、最終的には適当な物理メモリにマップされる。 物理メモリ量を超える仮想メモリ 空間を作り出したり、複数の仮想空間を作り出したりする。

最近の 技術動向を観察すると。
1. P2P 技術の 焼き直し
✓ キャッシュ・リバースキャッシュ✓ コンテンツごとの 転送 ：◆ CCN(contents centric network)◆ NDN(named data network)✓ ハッシュ値 を用いた 抽象化◆ 固定長の数字列でのハンドリング