P2Pネットワークにおける
経路長あるいは経路表サイズの最大値を
柔軟に設定可能な経路表構築方式
大阪市立大学大学院 創造都市研究科
呉 承彦 安倍 広多
石橋 勇人 松浦 敏雄
背景
 構造化P2Pネットワーク
• ネットワークでの構造(トポロジ)に制約を設けるこ
とで,ノードを高速に検索可能な方式
• 各ノードは他のノードへのポインタを格納した
経路表をもつ
 多くの構造化P2Pネットワークは
• ノード数Nに対して,
• 検索時の経路長 O(logk N) (k>1)
• 対数の底 k が固定されているもの
• Chordは k=2
• 対数の底 k を選択できるもの
• Pastry, Kademliaはk=2b (bは定数) 2
対数の底 kと
経路長・経路表サイズの関係
3ノード数(N)
経
路
表
サ
イ
ズ
経
路
長
k = 8
k = 4
k = 2
対数の底 kと
経路長・経路表サイズの関係
3ノード数(N)
経
路
表
サ
イ
ズ
経
路
長
k = 8
k = 4
k = 2
既存の構造化P2Pネットワークは
P2P運用中にkの値を動的に変更することはできない
本研究の目的
対数の底 k を動的に変更可能な
経路表構築手法を提案
4
経路長優先方式
最大経路長を制限する
定数オーダルーティング
経路表サイズ優先方式
経路表サイズ≥ノード数:
1ホップルーティング
経路表サイズ<ノード数:
対数オーダルーティング
定数オーダから対数オーダまでのルーティングを実現
本研究の目的
対数の底 k を動的に変更可能な
経路表構築手法を提案
4
経路長優先方式
最大経路長を制限する
定数オーダルーティング
経路表サイズ優先方式
経路表サイズ≥ノード数:
1ホップルーティング
経路表サイズ<ノード数:
対数オーダルーティング
定数オーダから対数オーダまでのルーティングを実現
今回省略
Chord#の構造|successor
5
N1
N4
N7
N6
N0
N5 N3
N2successor
Chord#の構造|predecessor
N1
N4
N7
N6
N0
N5 N3
N2predecessor
6
N220node
N1
Chord#の構造|finger table(経路表)
7N4
N7
N6
N0
N5 N3
N1のfinger table
i Node
0 N2
1 N3
2 N5
21nodes22nodes
N2
20node
N1
Chord#の構造|finger table(経路表)
N4
N7
N6
N0
N5 N3
N1のfinger table
i Node
0 N2
1 N3
2 N5
21nodes
22nodes
finger tableの高さ
7
 N2log
N2
20node
N1
Chord#の構造|finger table(経路表)
N4
N7
N6
N0
N5 N3
N1のfinger table
i Node
0 N2
1 N3
2 N5
21nodes
22nodes
ノード数の推定
finger tableの高さをxとすると
2x-1 < N ≤ 2x
finger tableの高さ
7
 N2log
提案手法|2次元finger table
8
j
i
0 1 2
0 N1 N2 N3
1 N4 N8 N12
 finger tableを2次元配列に拡張し,k分探索を可能にする
N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
N0 N4 N8
N0
N12 N13 N14 N15
N12
k-1個
提案手法|2次元finger table
j
i
0 1 2
0 N1 N2 N3
1 N4 N8 N12
N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
N0 N4 N8
N0
N12 N13 N14 N15
N12
k-1個
8
 finger tableを2次元配列に拡張し,k分探索を可能にする
提案手法|2次元finger table
j
i
0 1 2
0 N1 N2 N3
1 N4 N8 N12
N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
N0 N4 N8
N0
N12 N13 N14 N15
N12
8
k-1個
 finger tableを2次元配列に拡張し,k分探索を可能にする
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0
1
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1
1
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
successor
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1 N2
1
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1 N2 N3
1 N4
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1 N2 N3
1 N4 N8
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1 N2 N3
1 N4 N8 N12
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1 N2 N3
1 N4 N8 N12
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
提案手法|2次元finger tableの更新
9
j
i
0 1 2
0 N1 N2 N3
1 N4 N8 N12
N0のfinger table
j
i
0 1 2
0 N9 N10 N11
1 N12 N0 N4
N8のfinger table
j
i
0 1 2
0 N5 N6 N7
1 N8 N12 N16
N4のfinger table
j
i
0 1 2
0 N2 N3 N4
1 N5 N9 N13
N1のfinger table
j
i
0 1 2
0 N3 N4 N5
1 N6 N10 N14
N2のfinger table
N0
N13
N11
N15
N14
N10
N2
N3
N6
N4
N7N9
N12
N8
N1
N5
Chord#と同じ方法で
ノード数を推定できる
10ノード数(N)
最
大
経
路
長
提案手法|経路長優先方式の考え方
ノード数(N)
最
大
経
路
長
最大経路長を3に
制限したい
提案手法|経路長優先方式の考え方
10
ノード数(N)
最
大
経
路
長
提案手法|経路長優先方式の考え方
10
ノード数
kの値を
2 → 4
最
大
経
路
長
提案手法|経路長優先方式の考え方
10
ノード数
最
大
経
路
長
提案手法|経路長優先方式の考え方
10
ノード数
kの値を
4 → 8
最
大
経
路
長
提案手法|経路長優先方式の考え方
10
ノード数
最
大
経
路
長
経路長優先方式は
kの値を動的に変更することで
最大経路長を制限する
提案手法|経路長優先方式の考え方
10
11
N0のfinger table
0 1 2
0 N1 N2 N3
1 N4 N8 N12
2 N16 N32 N48
 各ノードは設定した最大経路長と推定ノード数に基づい
てkの値を動的に変更する(kは2の累乗の整数)
k=4
提案手法|kの変更
N0のfinger table
0 1 2
0 N1 N2 N3
1 N4 N8 N12
2 N16 N32 N48
3 N64
 各ノードは設定した最大経路長と推定ノード数に基づい
てkの値を動的に変更する(kは2の累乗の整数)
k=4
提案手法|kの変更
11
N0のfinger table
0 1 2
0 N1 N2 N3
1 N4 N8 N12
2 N16 N32 N48
3 N64
 各ノードは設定した最大経路長と推定ノード数に基づい
てkの値を動的に変更する(kは2の累乗の整数)
0 1 2 3 4 5 6
0 N1 N2 N3 N4 N5 N6 N7
1 N8 N16 N24 N32 N40 N48 N56
2 N64
k=4
k=8
提案手法|kの変更
11
N0のfinger table
0 1 2
0 N1 N2 N3
1 N4 N8 N12
2 N16 N32 N48
3 N64
 各ノードは設定した最大経路長と推定ノード数に基づい
てkの値を動的に変更する(kは2の累乗の整数)
0 1 2 3 4 5 6
0 N1 N2 N3 N4 N5 N6 N7
1 N8 N16 N24 N32 N40 N48 N56
2 N64
k=4
k=8
提案手法|kの変更
11
finger tableを更新するために
問い合わせを行ったノード数X
推定ノード数:
2x-1 < N ≤ 2x
N0のfinger table
0 1 2
0 N1 N2 N3
1 N4 N8 N12
2 N16 N32 N48
3 N64
 各ノードは設定した最大経路長と推定ノード数に基づい
てkの値を動的に変更する(kは2の累乗の整数)
0 1 2 3 4 5 6
0 N1 N2 N3 N4 N5 N6 N7
1 N8 N16 N24 N32 N40 N48 N56
2 N64
k=4
k=8
提案手法|kの変更
11
finger tableを更新するために
問い合わせを行ったノード数X
推定ノード数:
2x-1 < N ≤ 2x
推定ノード数:
32 < N ≤ 64
評価|経路長優先方式における経路長
の変化
 経路長の最大値を
3に設定
 各ノード数におい
て,ランダムに選
択した2つのノード
間の経路長の測定
を10000回試行
12
最大経路長を3に設定
k : 4 → 8
k : 8 → 16
k : 16 → 32
ノード数
経
路
長
最大経路長
平均経路長
まとめ
 対数の底を動的に変更可能な経路表構築方式を
提案した
• 経路長に上限がある定数オーダP2Pネットワークを
実現した(経路長優先方式)
• ノード数に応じて,1ホップから対数オーダルー
ティングに移行可能なP2Pネットワークを実現した
(経路表サイズ優先方式)→ 今回省略
• シミュレーションにより,提案手法の有効性を確認
した
 今後の課題
• ノードの参加離脱(Churn)による影響の解析
• 経路表の維持管理コストの削減
13

P2Pネットワークにおける経路長あるいは経路表サイズの最大値を柔軟に設定可能な経路表構築方式