ネットワークアーキテクチャ 第01回

ネットワークアーキテクチャ
第10回(2003/12/15)
「P2Pとオーバレイネットワーク」
村井 純
2003/12/15
Network Architecture 2003f
1
2003年度秋学期授業日程
09/29
10/06
10/13
10/20
10/27
11/03
11/10
11/17
11/24
11/26
12/01
12/08
12/15
12/22
~
01/08
01/12
01/19
2003/12/15
(最新情報はSoI*で確認してください)
(1)
講義概要/インターネットのアーキテクチャ
(2)
もうインターネットを分かっちゃおう
体育の日
(3)
DNSのアーキテクチャ
(4)
インターネット自動車のアーキテクチャ
文化の日
(5)
SOIのアーキテクチャ
(6)
メールのアーキテクチャ
勤労感謝の日の振替休日
(7)
WWWのアーキテクチャ
(8)
セキュリティーのアーキテクチャ
(9)
グローバルインターネットアーキテクチャ
(10)
P2Pとオーバレイネットワーク
(11)
これからのネットワークアーキテクチャ(1)
冬休み
(12)
これからのネットワークアーキテクチャ(2)
成人の日
(13)
最終試験
Network Architecture 2003f
<-(水曜日)
今日はここ
<-(木曜日)
2
今日の流れ
2003/12/15
Network Architecture 2003f
3
2003/12/15
Network Architecture 2003f
4
世の中全てIPで繋がった!
• どこのコンピュータともIPでお話しできる
– IPアドレスで識別
– TCP/UDPによる通信路
• それじゃ何をしようか?
2003/12/15
Network Architecture 2003f
5
とにかくあるファイルが欲しい!
• ネットワーク上のどこかのホスト上に存在する
ファイルを手に入れたい!
– 同じファイルなら誰からもらっても良い
• リソースと持ち主を分離
2003/12/15
Network Architecture 2003f
6
友達といつでも情報をやりとりしたい!
• 友達といつでも情報をやりとりしたい!
– IPアドレスが変わってしまうかもしれない
– インターネットには繋がらないけど、物理的に近くにい
るので直接つなぐことはできる。
• ネットワークトポロジ上のコミュニティーネットワー
クの独立
2003/12/15
Network Architecture 2003f
7
自分に足りない資源を拝借したい
• 人が余らせている資源を自分にも使わせて!
– CPU
– HDD
– 回線帯域
• 分散システム、GRIDコンピューティング
2003/12/15
Network Architecture 2003f
8
P2P: Peer to Peer
2003/12/15
Network Architecture 2003f
9
PeerとPeerが手をつなぐ
• クライアントサーバ
– サーバとクライアントが手をつなぐ
– 特定の存在(サーバ)にサービスを依存する形態。
• Peer to Peer
– Peer同士が直接手をつなぐ。
– お互いがサービスを提供し合う形態。
– Peerはサーバとクライアント両方の機能を持つので、
「サーバント」とも呼ばれる。
2003/12/15
Network Architecture 2003f
10
P2Pの背景
• 今までは資源がサーバに集中していた。
– 家庭の回線は細く、太い回線は高価
– サービスを提供するのに高い処理性能が必要
• 現在は資源は潤沢になった。
– 家庭の回線はADSLやFTTHで数Mbps
– CPUの処理性能は余ってる
• 今までサーバに集中させてた処理を分散させれ
ばいいじゃない!
2003/12/15
Network Architecture 2003f
11
身近なP2Pアプリケーション
• インスタントメッセンジャー(IM)
– MSNメッセンジャー
– ICQ
• ファイル共有
– Napster
2003/12/15
Network Architecture 2003f
12
インスタントメッセンジャー
• 以前はWebチャットだった
– 例:サーバ上のチャットプログラム
– 自分の書き込みをサーバに送信
– サーバから新しい内容を受信
メッセージ
新しい発言
2003/12/15
Network Architecture 2003f
13
インスタントメッセンジャー
• P2Pなら……
– サーバは、ユーザのIPアドレスだけを管理
– クライアントはメッセージ送信先のユーザのIPアドレス
をサーバから取得、メッセージ本文を直接送信
自分のIPアドレスを登録
相手の問い合わせ
新しい発言
2003/12/15
Network Architecture 2003f
14
ファイル共有
• それまではWWWやFTPだった
–
–
–
–
WWWやFTPサーバ上にファイルの複製を送信
HTTP/FTPによってファイルを取得
検索は外部の検索エンジンやリンクでたどる。
サーバはディスクを潤沢に必要とした。
ファイルの複製を送信
2003/12/15
ファイルを取得
Network Architecture 2003f
15
ファイル共有
• P2Pになったことで……
– サーバは利用者が保っているファイルの情報と、その
利用者のIPアドレスを管理
– サーバ上でファイルを検索し、求めるファイルを保っ
ている相手のIPアドレスを取得
– その相手に接続してファイルを要求・受信。
自分の持つファイルを登録
ファイルの検索
ファイルを取得
2003/12/15
Network Architecture 2003f
16
P2Pアプリケーション
• サーバの仕事が減った!
– サーバを用いて通信相手を検索
– データの内容は相手に直接接続して転送
• ファイルや相手の検索はサーバを利用している。
– この部分もサーバなしでできないのか?
– インターネット上に分散してうじゃうじゃ居るPeerから
どうやって目的の相手を見つけるのか。
2003/12/15
Network Architecture 2003f
17
P2Pネットワーク
2003/12/15
Network Architecture 2003f
18
P2Pネットワーク
• Peer同士が接続してネットワークを構成
– ネットワーク上でデータをやりとり
• 全てのPeerは対等にネットワークに参加
2003/12/15
Network Architecture 2003f
19
P2Pネットワーク
• 対故障性の実現
– 一部のPeerが故障しても他のPeerが引き継げる
• 資源分散
– Peerはネットワークを介して接続
– 地理的・ネットワーク的に分散できる
• 自由なランデブー
2003/12/15
Network Architecture 2003f
20
IPネットワークとの比較
• IPネットワーク
• P2Pネットワーク
– 管理者・組織毎に構成した
ネットワークの相互接続
– 階層的な構造
– ただ宛先のIPアドレスのホ
ストにデータを送信する単
純な機能
2003/12/15
– 管理者なし
– 全参加者が対等な関係
– それぞれのアプリケーショ
ンの目的に応じた多様な
転送方法
Network Architecture 2003f
21
実例
2003/12/15
Network Architecture 2003f
22
ファイル共有のアーキテクチャ
2003/12/15
Network Architecture 2003f
23
ファイル共有
• 目的:どこかのコンピュータが持っているファイル
を取得したい
• 必要な機能
– 検索:P2Pネットワークに参加するホストから、目的の
ファイルを持つ相手を探し出す。
– 転送:ファイルを持つ相手から転送してもらう。
2003/12/15
Network Architecture 2003f
24
ファイルの検索
• ファイル共有アプリケーションの利用者から、目
的のファイルを持つノードを探し出す。
• 大きく分けて二通り
– インデックスサーバに検索機能を依存
– P2Pネットワークを利用して検索
2003/12/15
Network Architecture 2003f
25
Napster
• Napster社が運営するインデックスサーバ
– インデックスサーバに所持ファイルの一覧を送信
– 検索条件をサーバに送り、結果をもらう。
–
ファイルの検索
絵
自分の持つファイルを登録
• 問題点:
ファイルを取得
– インデックスサーバはNapster社が運営
– Napster社に運営差し止め請求
→ サービス停止
– 現在は著作権者と提携し、Napster2へ……
2003/12/15
Network Architecture 2003f
26
WinMX
• Napster社以外のサーバにも接続
– Napster社以外の複数の組織が、Napsterのプロトコ
ルを利用したインデックスサーバを運営
• 限られた参加者だけのサーバを自由に立ちあげられる。
– 複数のサーバを選択できるようになった。
サーバA
サーバB
ファイルの検索
自分の持つファイルを登録
2003/12/15
ファイルを取得
Network Architecture 2003f
27
Gnutella
• P2Pネットワーク上で検索要求を転送
–
–
–
–
インデックスサーバに依存しない
検索者が積極的にファイルを探しに行く。
あらかじめ設定したノード数(TTL)まで探す。
ファイルの所持者は受動的
持ってない
よ!
持ってない
よ!
持ってない
よ!
持ってない
よ!
持ってない
よ!
Bさん
Aさん
2003/12/15
持ってない
よ!
あのファイルが欲しい…
皆に聞いてみよう!
Network Architecture 2003f
もってるよ!
送るね!
28
Winny
• 所持者からのファイルの広告と検索要求
– 所持者は、ファイルの情報をP2Pネットワークを通じて
隣接するノードに広告
– 広告されているファイルの情報に検索要求が合致
持ってない
よ!
持ってない
よ!
持ってない
よ!
Bさんのファイ
ルをAさんが
探してる!!
Bさんがあの
ファイルを持ってる
Cさん
Aさん
Bさん
あのファイルが欲しい…
皆に聞いてみよう!
2003/12/15
Bさんがあの
ファイルを持ってる
このファイルを持ってることを
皆に教えてあげよう!
Network Architecture 2003f
広告
29
ファイルの転送
• 検索によって見つかったファイルを実際に転送
• Napster、WinMX、Gnutellaは相手に直接接続して
転送
• Winnyでは中継転送とキャッシュを採用
2003/12/15
Network Architecture 2003f
30
Winnyにおける中継転送
• 中継転送とキャッシュの利用
– 中継転送
• P2Pネットワークで中間のノードが転送を中継する。
• 保持者を匿名化
• 下の例では検索と広告を合致したCさんが中継転送する。
Bさんのファイルを
Aさんが探して
る!!
Cさん
Aさん
Bさん
あのファイルが欲しい…
皆に聞いてみよう!
2003/12/15
このファイルを持ってることを
皆に教えてあげよう!
Network Architecture 2003f
31
Winnyにおけるキャッシュ
– キャッシュ
• ファイルを取得したノードや、中継転送したノードがそのファ
イルの複製を第三者に自動的に再公開
• 公開者の匿名化
• 効率の向上
中継したファイルを他の人
にも配って良いよね!
Cさん
Aさん
Bさん
このファイルを他の人にも
配ってあげよう!
2003/12/15
最初に配ったのが
私だとわからなくなるね!
Network Architecture 2003f
32
ストリーミングのアーキテクチャ
2003/12/15
Network Architecture 2003f
33
ストリーミング
• リアルタイムなデータを送信
– 今までは、ストリーミングサーバに対して全ての閲覧
者が接続していた。
– ストリーミング放送をするには太い帯域幅が必要
→ 気軽にストリーミング放送ができない。
♪
♪
Bさんのラジオ
聞いてます!
Cさん
Bさん
Aさん
Bさんのラジオ
聞いてるよ!
2003/12/15
ラジオのDJやりたいけど、
回線がすぐ埋まっちゃう……
Network Architecture 2003f
34
PeerCast
• P2Pによる解決
– ストリーミングを聞いてる人が、他の人にも送ってあげたら?
• PeerCast
– Gnutellaと同様に、聞きたい放送を聞いている人を探す。
– その人に接続して、放送内容を中継(リレー)してもらう。
– つまり、他の人の上り帯域を再利用!
そうだ!
Cさんに中継してもらおう!
♪
♪
Bさんのラジオ
聞いてます!
Cさん
Bさん
Aさん
Bさんのラジオ、
私も聞きたいな…
2003/12/15
Network Architecture 2003f
回線は太くないけど、
ラジオのDJ頑張ってるよ♪
35
P2Pによる資源分散
2003/12/15
Network Architecture 2003f
36
資源分散
• 他人の余っている資源をぶんどる
– 暇をもてあましてる人を見つける。
– その人にやって欲しい仕事を送りつける。
– 仕事の成果を持ってこさせる。
2003/12/15
Network Architecture 2003f
37
OceanStore
• 大規模分散ファイルシステム
2003/12/15
Network Architecture 2003f
38
処理分散
• 計算機資源を共有
2003/12/15
Network Architecture 2003f
39
HyperBee
• 分散型検索エンジンロボット
2003/12/15
Network Architecture 2003f
40
メッセンジャーとグループウェア
2003/12/15
Network Architecture 2003f
41
メッセンジャーとグループウェア
• メッセンジャー
– 特定の相手にメッセージやファイルを送信
• グループウェア
– グループ内での情報共有
– スケジュール・ToDoの共有
– ファイルの共有
2003/12/15
Network Architecture 2003f
42
3degrees
2003/12/15
Network Architecture 2003f
43
Skype
• P2Pベースの音声チャット
2003/12/15
Network Architecture 2003f
44
グループウェア
• グループウェア
– Groove
– Ariel AirOne
2003/12/15
Network Architecture 2003f
45
P2P技術の発展
2003/12/15
Network Architecture 2003f
46
検索性の向上
2003/12/15
Network Architecture 2003f
47
Winnyにおけるクラスタ化
• P2Pネットワークを動的に最適化
– クラスタ化キーワード
– 転送の成功可否
• 絵
2003/12/15
Network Architecture 2003f
48
Chord
• 仮想的なリングを作ってみんな載せてみよう
– 各Peerはリング上に分散
– ファイルはハッシュ値を元にリング上に分散
– 一番近いノードにそのファイルを保存する。
• わっかの絵
2003/12/15
Network Architecture 2003f
49
Chord
• かなり先、だいぶ先、少し先へのリンク
• Finger Tableの絵
2003/12/15
Network Architecture 2003f
50
匿名性の実現
• Winnyのような中途半端ではない匿名性の実現
• 匿名性の定義
2003/12/15
Network Architecture 2003f
51
Freenet
2003/12/15
Network Architecture 2003f
52
Freenet
• 検索:ファイル内容の広告と、検索要求
– 所持者はファイルの内容ごと隣接するノードに送信
– 検索要求によってファイルの内容(の複製)を持つノー
ドを探す
2003/12/15
Network Architecture 2003f
53
Freenet 検索ネットワークの最適化
• 検索ネットワークの最適化
– ハッシュ値(第08回セキュリティのアーキテクチャ参照)
の大小に基づいてネットワークの構成を変更
2003/12/15
Network Architecture 2003f
54
Freenet
• 中継転送とキャッシュの利用
– 中継転送
• P2Pネットワーク上の保持者と、検索者の間のノードが延々
と中継を行う
– キャッシュ
• Winnyと同様に中継したノードがファイルの複製を公開
2003/12/15
Network Architecture 2003f
55
P2Pにおけるセキュリティ
2003/12/15
Network Architecture 2003f
56
通信相手の信頼性
• 相手が嘘を言っているかもしれない。
• 悪いデータを送られてしまうかもしれない。
2003/12/15
Network Architecture 2003f
57
Authorityの不在
• P2Pネットワーク上の情報の信頼性を誰が担保し
てくれるのか
2003/12/15
Network Architecture 2003f
58
P2Pネットワーク上での信頼
• ファイル共有の例:
– ファイルをアップロードしたら信頼が上がる
– ファイルをダウンロードしたら信頼が下がる
2003/12/15
Network Architecture 2003f
59
ネットワークとの乖離
2003/12/15
Network Architecture 2003f
60
• IPネットワークのトポロジとの分離
– IPネットワークの管理者やその他気にすることなく、
自由に参加・離脱できるネットワーク
2003/12/15
Network Architecture 2003f
61
トポロジを考慮しないデメリット
• IPネットワークのトポロジによる影響
– RTTとか帯域とかそこらへん
– でもある程度うまくいってる。
• ISP間トラフィックとか話してみる?
– ISPにやさしくないよねー
2003/12/15
Network Architecture 2003f
62
P2Pネットワークによるモビリティ
• モビリティの実現
• mipとの対比?
2003/12/15
Network Architecture 2003f
63
マルチキャスト
2003/12/15
Network Architecture 2003f
64
P2Pと著作権
2003/12/15
Network Architecture 2003f
65
Winnyの利用者から逮捕
• どっかのニュースサイトのスクリーンショット
2003/12/15
Network Architecture 2003f
66
何が著作権侵害になるのか
• 送信可能化状態
• Winnyのキャッシュの合法性
2003/12/15
Network Architecture 2003f
67
アプリケーションの違法性
• 「もっぱら」
• DCMAとの関係
2003/12/15
Network Architecture 2003f
68
BBS
• 管理権限のおはなし
• 2ちゃんねるとかにつなげる?
2003/12/15
Network Architecture 2003f
69
今後の潮流
2003/12/15
Network Architecture 2003f
70
他のシステムに載るP2P
• TrackBack
– WWW上にかぶさるP2Pネットワーク
2003/12/15
Network Architecture 2003f
71
TrackBackによる相互言及支援
• 自分がリンクを張った相手に、そのことを通知
– AさんがBさんの記事Cにリンクを張り、記事Dを追加
– BさんのウェブサイトにTrackBack Ping(言及通知)を送信
– Bさんの記事Cから記事Dにリンクを張り返す
記事の追加
記事D
Bさんご飯食べれば?
↑
Bさんの記事Cへのリンク
Aさん
リンクの張り返し
記事C
おなかすいたー!!!!
TrackBack to 記事D
Bさんご飯食べれ
ば?
TrackBack Ping
(言及通知)
Aさんのウェブサイト
2003/12/15
Bさんのウェブサイト
Network Architecture 2003f
72
TrackBackによるネットワーク
• 図
2003/12/15
Network Architecture 2003f
73
相互の信頼
• PGP
2003/12/15
Network Architecture 2003f
74
移動するプログラム
• モバイルコード
• モバイルエージェント
2003/12/15
Network Architecture 2003f
75
まとめ
2003/12/15
Network Architecture 2003f
76
まとめ
2003/12/15
Network Architecture 2003f
77
おわり
2003/12/15
Network Architecture 2003f
78