1 自律分散協調論 第6回 P2Pとskype クライアントサーバモデルと P2P

今日の概要
自律分散協調論
第6回 P2Pとskype
{
P2P
z
z
{
P2Pモデルとクライアントサーバモデル
P2Pのアプリケーション
Skype
z
村井純
z
z
z
各ノードの自律性はどのようになっているか?
何を分散し、何を分散していないか?
分散しないことによって担保されているのは何か?
Loginプロセスを中心に考察
Winny悪用による逮捕者とそのインパクト
クライアントサーバモデルと
P2Pモデル
{
2003年11月27日に逮捕者がでた段階で日本中の
トラフィックは2割減少した
http://www.mfeed.co.jp/jpnap/fr-traffic.html
http://www.zdnet.co.jp/news/0311/27/nj00_winny.html
Winnyの悪用者が逮捕・製作者宅捜索
P2Pのインパクト – trafficの推移
出典: WIDE報告書(1994-1999)
2000-2005はdaily sampling
トラフィックの推移
100%
90%
ポート番号からサービス
特定がしにくい時代
80%
70%
データ量(%)
60%
Others
Napster
SMTP
HTTP/HTTPS
FTP
P2P登場
50%
40%
WWW全盛
30%
20%
10%
0%
http://www.asahi.com/national/update/1127/035.html
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
年
1
クライアントサーバモデル
{
{
クライアントサーバはSingle Point of Failure
インターネット上の通信の基本モデル
2種類のコンピュータ
z
z
{
ボトルネック
z
z
サーバ : サービスを提供するコンピュータ
クライアント : サービスを受けるコンピュータ
アクセスの集中による
回線の飽和
{
クライアント
サーバ
ボトルネック解消のアプ
ローチ
z
z
あるポート番号でクライアン
トからの要求を常に
待ち受けているプログラム
デ
ー
デ
サーバプログラム
ー
タだ
よ
タち
ょう
クライアント
サーバの計算能力
ネットワーク帯域
z
必要なときにサー
バプログラムと通
信して要求を送る
プログラム
ロードバランサの利用
キャッシュ/CDNの利用
P2Pモデルの導入
Server
サーバのダウン
だ
い
Clients
クライアントプログラム
例(1/4) : IRCの負荷分散方法
{
例(2/4) : ロードバランシング
IRC(Internet Relay Chat)
z
z
{
同じIPアドレスで複数のサーバが反応
ラウンドロビン、URLで、重み付け、負荷、コネクショ
ン数、反応速度などで割り振る
{
利点
{
問題点
{
一つサーバに処理が集中しない
RFC1459
Client 1
Server 1
Server 2
Hi!
z
グループに1,2,3が
加わってる場合
Hi!
Server 4
Client 2
z
Server 3
z
コネクション要求
CPU負荷を軽減できる
ログが分割される
メンテナンス負荷は高くなる
負荷分散装置
Hi!
Client 3
Server 4にはグループに加
わったクライアントがない
ためメッセージはこない
Client 4
例(3/4) : DNSを利用した負荷分
{
{
{
{
同じ名前で複数のサーバが登録されている
物理的に別の場所で処理
www.asahi.comなど
回線資源を
分散利用できる
問題点
z
z
z
均等に負荷が
分散されない
落ちている
サーバにも振る
Cacheがあるため
タイムラグがある
{
www.asahi.comどこ?
www.asahi.comどこ?
209.249.129.20だよ
Client 2
210.80.197.158だよ
z
{
210.80.197.158
Uunet3.asahi.com
ファイルを広域に分散しネットワーク負荷を分散
Akamai
http://www.akamai.com/
z
Client 1
209.249.129.20
Wwwld2.asahi.com
Accelia Durasite
http://www.accelia.net/japanese/news/12.html
z
{
利点
z
{
例(4/4) : キャッシュを利用した負荷分散
クライアントに一番近い、最
適なキャッシュを探す
サーバのかわりにキャッシュ
がクライアントに応答
z
CPU資源の分散
回線資源の分散
キャッシュを拠点に置き
アクセスを分散させる
Server
利点
z
Cache
Servers
コンテンツの配置
Clients
2
コミュニケーションとは?
P2Pとは?
{
Peer-To-Peer
z
z
z
{
Peerとは端末ノードのこと
(中継ノードではない)
Peer(端末)とPeer(端末)が
1対1で直接対等な立場での
通信形態
代表的なアプリケーション
{ ファイル共有・交換・配信
型
z
コラボレーション型
{
分散コンピューティング型
z
z
z
z
コミュニケーションには主体がある。
P2Pではこれらは対等のものとしてpeerと呼ぶ。
誰かとコミュニケーションをとるためには、まずその主体同士が、
{
耐故障性の実現
資源分散が可能
自由なランデブー
{
{
相手を発見・識別する
コミュニケーションを開始する
3.
コミュニケーションを終了する
……という手順が必要になる
1.
2.
相手の発見と識別
Napster
{
z
特徴
コミュニケーションの開始
Groove
SETI@home
コミュニケーションの終了
クライアントサーバ、P2Pモデルの比較
クライアントサーバ
ハイブリッドP2P
身近なP2Pアプリケーション
ピュアP2P
{
ファイル共有
z
z
中心
: Server
z
中心
: Server
{
ストリーミング
{
インスタントメッセンジャー
z
ピア
ピア
ピア
z
ランデブーも通信も中心で
行う
ランデブーを中心で行い、
通信をピア同士で行う
WWWなどのインターネッ
ト上の大部分のアプリ
ケーション
Napster
MSN Messengerなどの
主要IM
ランデブーも通信もピア同
士で行う
z
z
z
{
Napster
Gnutella
Winny
PeerCast
資源分散
z
z
z
{
OceanStore
SETI@home
HyperBee
ネットワークゲーム
z
z
Diablo
Age of Empire
MSNメッセンジャー
ICQ、Jabber
3degrees、Skype
Groove、Ariel AirOne
Gnutella ,Freenet,
Winny
P2Pを考察する際のメトリック
{
{
{
{
{
性能
匿名性
可用性
堅牢性
Open性
ファイル共有の変遷
WWW、FTP
Napster、WinMX
Gnutella
Winny
3
ファイル共有: P2Pモデルの代名詞
{
ファイル共有
ファイル共有アプリケーション
z
z
{
ファイルの公開・検索・転送を実現する
WWWとの比較(登場人物と役割は?)
z
z
公開:WWWサーバへのアップロード
検索:検索エンジン
{ 転送:ブラウザによるページの取得
{
z
{
{
z
WWWやFTPサーバ上にファイルの複製を送信
HTTP/FTPによってファイルを取得
検索は外部の検索エンジンやサーバ内で実現
サーバはディスクを潤沢に必要とした。
自律的なコミュニケーションとしてどう実現するか
z
z
z
{
ファイルの複製を送信
Napsterの問題
インデックスサーバの利用
z
z
ファイルを取得
中継転送、キャッシュの利用
直接転送
Napster
z
WWW/FTPサーバ
オリジナル・ファイルは各Peerが分散して保有
ネットワーク上に分散したファイルからの検索
ファイルの転送
{
{
以前はWWWやFTPを利用
{
所持ファイルの一覧をサーバに送信
検索条件をサーバに送り、結果をもらう。
公開されているファイルをサーバが制御できる。
インデックス・サーバの運営
者が責任を持つ
z
z
インデックスサーバ
Napsterは
ハイブリッドP2P
Napster社に運営差し止め
請求
→ サービス停止
現在は著作権者と提携し、
Napster2へ……
中心にインデクッス・
サーバが存在
ファイルの検索
{
自分の持つファイルを登録
中央集権的なサーバ無しで
やるにはどうすればいい?
ピア
インデックスサーバに障害が発
生すると、システム全体が停止
する
ファイルを取得
Gnutella
{
Winny
自律的に参加するPeerの集合体
z
z
z
z
{
インデックス・サーバに依存しない
P2Pネットワーク上で検索要求を転送(TTLは最大7)
検索者が積極的にファイルを探しに行く
ファイルの所持者は受動的
持ってない
よ!
持ってない
よ!
持ってない
よ!
持ってない
よ!
あのファイルが欲しい…
皆に聞いてみよう!
z
持ってない
よ!
堅牢性の実現
{
高い匿名性
z
z
{
Winnyを悪用した犯罪行
為が多発
z
z
知的所有権を侵害
摘発されにくかったが…
インデクッス・サーバに依存
せず
{
z
持ってない
よ!
Bさん
Aさん
{
http://www.geocities.c
o.jp/SiliconValley/294
9/
ピュアP2P
中継したキャッシュを再公開
間接的な接続により、取得者
には公開元が不明
暗号化により、中継者には通
信内容が不明
もってるよ!
送るね!
4
Winny: 広告と検索
{
Winny: ファイルの転送
公開者がより積極的に広告を行う
z
z
{
公開者は、ファイルの情報をP2Pネットワークを通じて隣
接するPeerに広告
広告された情報と検索要求を各Peerが比較
持ってない
よ!
持ってない
よ!
持ってない
よ!
Bさんのファイ
ルをAさんが
探してる!!
Napster、WinMX、Gnutellaは相手に直接接続
z
公開者と検索者だけ転送が完結
広告
広告
このファイルを持ってることを
皆に教えてあげよう!
Winny: キャッシュ
中継転送
z
{
第三者を介在する
匿名性を実現
Bさん
Winny: 中継転送
z
z
Cさん
あのファイルが欲しい…
皆に聞いてみよう!
z
z
Bさんがあの
ファイルを持ってる
Bさんがあの
ファイルを持ってる
Aさん
{
Winnyでは中継転送とキャッシュを採用
{
P2Pネットワークでの中間のPeerが転送を中継
下の例では検索と広告を合致したCさんが中継転送
転送のパフォーマンスを犠牲にすることで、キャッシュを
持つPeerを増やし冗長性を確保
キャッシュ
z
z
z
ファイルを取得したPeerや、中継転送したPeerがその
ファイルの複製を第三者に自動的に再公開
耐故障性の実現(冗長性の確保)
検索効率の向上
中継したファイルを他の人
にも配って良いよね!
Bさんのファイルを
中継してあげよう!
Cさん
Cさん
Aさん
Aさん
Bさん
Cさんが持ってたんだ
ね!
Bさん
このファイルを他の人に
も配ってあげよう!
私のファイル人気があって
配るのが大変……
他の人も配ってくれると
楽で良いね!
Winny: 中継転送とキャッシュによる匿名性
{
一度流れたデータを誰も消せないシステム
z
z
z
{
キャッシュとして多数のPeerに情報が残っている
ソフトの例:Freenet、Winny
用途の例:P2P掲示板、ファイル共有
Skypeと自律分散協調
解決しなければならない問題
Bさんのファイルを
中継してあげるね!
公開した元の人間の特定
法的に問題のあるコンテンツ Aさん
Cさん
の転送を知らずに行えない
Cさんが持ってたんだね!
ようにする
(ということが必要かもしれない)
中継したファイルを他の人
z
z
Bさん
にも配って良いよね!
Aさん
Cさん
このファイルを他の人に
も配ってあげよう!
Bさん
私が最初に公開したと
わからなくなる!
5
ファイル交換でないP2Pソフトウェアの例:
Skype
{
{
{
{
各ノードの自律性はどのようになっているか?
何を分散し、何を分散していないか?
分散しないことによって担保されているのは何か?
Loginプロセスを中心に考察
Skypeとは?
{
{
{
KaZaaによって開発されたVoIPクライアント
音声通話とテキストメッセージングが可能
MSN/Yahoo IMアプリケーションと以下の点で類
似する
z
z
z
z
{
SkypeのLook and Feelとできること
{
できること
z
z
z
{
z
z
z
z
{
{
Skypeの利用するオーバーレイネットワーク
2種類のノード
z
Skypeアプリケーションが導入され、音声通話とテキストメッ
セージングに利用
{ 普通はこれ
z
Skypeネットワークにordinary hostsが収容される端点
Global IP addressが利用できる
{ 十分なCPU、メモリ、帯域を備える
{ 自動的に選択される
{
Host Cache (HC)
{
オーバレイネットワークを構成するためにSkype
Client (SC)内に記録更新される情報
z
z
z
{
{
Skypeノードではないものの、
Skypeネットワークの重要なエン
ティティである
ordinary hostsはログインの際、
super nodeに接続するだけで
なく、Skype login serverへも
接続
Super Nodes (SN)
{
通話
チャット
ファイル送信
User namesおよびpassword
を管理し、ユーザの認証を行う
User nameがSkype名前空間
内で一意であること保証
Ordinary Hosts
{
Skype ID
一意性のあるID
バディリストに登録できる
Skype Login Server
{
Skype Network
バディリストから選んで
z
{
基本となるプロトコル、技術はまったく異なる
ユーザ識別子
z
{
音声通話
テキスト・メッセージング
ファイル送信
音声通話ができる
テキストメッセージングができる
カンファレンスができる
バディリストを備える
z
Super Node の IP address / port number
少なくとも1つは利用できるエントリが無いと、動作しない
SCとして2日間動作すると、HCとして最大200エントリま
で増えることが観測されている
Skype Node内のWindows registryに記録される
{host/peer
cacheは目新しい
ものではなく、Chordでは、
Finger tableとしてノード発見に
利用されている
6
(参考) Skypeでlistenしているport
{
{
{
{
connectionダイアログボックスで設定された
TCP/UDPポート
これはインストール時にランダムに設定される
通常のインターネット上のプロトコルのように一定し
ない
それ以外に80/TCP (HTTP)および443/TCP
(HTTPS)を利用する
(参考)Skypeで利用しているCodec
{
iLBC
iSAC
未知のコーデックがあるかもしれない
{
GlobalIPSound
{
{
z
z
z
z
{
{
{
{
Buddy ListをWindows
registry内に保存
電子証明および暗号化され
ている
SCにローカルに保存され
ているだけで中央には一切
おかれない
ユーザがSCとして異なるマ
シンを利用した場合、バ
ディリストを再構築する必
要がある
Skypeの暗号化
{
{
{
通話とインスタントメッセージングを暗号化
AES(Advanced Encryption Standard,
Rijndel)を使用と明言
256-bit暗号化
1.1 x 10^77の鍵を使用可能
また、AES共通鍵のネゴシエーションに1536 2048 bitのRSAを使用
ユーザの公開鍵がログイン時に使用されている
Skypeの動作は以下に分類できる
{
{
{
{
{
UDP Hole punchingとは?
133.27.4.20
203.178.141.25
パケット
(1)
133.27.4.20:1234
宛にパケットを送ると到達
{
{
STUNを利用NAT/Firewallの種類特定し、UDP Hole punchingを
使って通信していると推測
UDP Hole punchingが使用出来ない場合はスーパーノード越しに通
信
NAT/Firewall通過のためのサーバは存在しないと推測される
SCは定期的にNAT/Firewallについて調査し、結果をWindows
Registry内に保存
(2)
{
{
iLBCおよびiSACを実装し、Skypeがパートナーであると
彼らのWEBで明言している
SkypeはGlobalIPSoundのcodecを使用しているもの
と推測される
測定の結果50-8,000 Hz がSkypeのcodecで利用可
能であった
これはwideband codecの特徴として認められる
192.168.0.15
{
{
NAT/Firewall通過
{
Buddy Listの利用
{
{
startup
login
user search
call establishment
tear down
media transfer
presence messages
パケット
P2P-friendly
NAT
パケットのsourceを見ると
133.27.4.20:1234
7
(参考) Startup
{
SCのソフトウェアが導入され、初めて動作する際に
Skype server (skype.com)にHTTP 1.1 GET
リクエストを送る
z
{
このリクエストには‘installed’というキーワードが含まれ
る
次に、新しいバージョンのSkypeが利用可能かを判
断するためにHTTP 1.1 GETリクエストを送る
z
このリクエストには‘getlatestversion’というキーワード
が含まれる
Loginプロセスとは?
{
{
{
{
{
Skype Loginの2つの意味
{
Skypeネットワークへの参加
z
z
{
オーバレイネットワークにピアとして参加する
場合によってはSuper Nodeにもなりうる
SkypeID認証
z
z
Skype IDが一意であることを保証している基盤
認証を行う
{
{
{
{
{
{
{
{
{
SNにSCが接続すると、SCはUser Name / passwordを
用いてLogin Serverに認証される
Skype User Nameの一意性を保証する役割
Login Serverは、Skype Networkにおける唯一の中央
集権的なエンティティ
観測によると
z
z
z
SCはいつも80.160.91.11というIP addressのノードとTCPで通
信していた
これがlogin serverではないかと思われる
DNS(NSレコード)の逆引き
{ ns14.inet.tele.dk
{ ns15.inet.tele.dk
オーバレイ
ネットワーク
どうやってオーバレイ
ネットワークに参加?
ピア
ランデブーも通信もピア同
士で行う
オーバレイネットワークへの参加
{
Login ServerによるSkype ID認証
何もし知らないピアがオー
バレイネットワークに参加
する
1つでもオーバレイネット
ワークのノードを知らないと
参加できない
オーバレイネットワークに参
加していればピアについて
認知できる
鶏と卵
中心のないシステムの宿命
自分以外のピアおよびバディに対してオンラインに
なったことを広告する
NAT/Firewallの背後にいるかどうか、型の判定
Global IP AddressのSkypeピアを発見する
Host Cache (HC)は1つ以上の有効なエントリが
なければいけない
HCに有効なエントリがない場合、Skypeネットワー
クに参加できない
このばあい、login failureとなる
実際のLogin Processの流れ
{
HCを空にしてみる
z
z
z
z
z
z
{
大体5秒くらい返答がない場合、SCは
TCPコネクションを先ほどのエントリに張
ろうとする
z
z
z
{
SC内のキャッシュをクリアした
1つのエントリを記録させた
このエントリのマシンはSkypeが動作し
ていない
SCはログインを試みた
HCに無効なエントリしかないので、
Skypeネットワークに到達できないが、
UDPパケットをエントリのマシンに向けて
送ることがわかった
これは、HCのIP Addressへ80(HTTP)
での通信を試みる
さらに失敗すると、HCのIP Addressへ
443 (HTTPS port)での通信を試みる
その後大体6秒くらい待つ
login failureとなった後、それら全ての
プロセスをさらに4回行った
8
Bootstrap Super Nodes
{
ソフトウェアのインストール後に初めてログインした場合
z
z
z
z
{
7つのエントリを持っているらしい
まれに違うこともあるが大体ここへつなげに行く
Bootstrap Super Nodesと呼ぶ
7つ以上のHCで初期化される場合も、この7つは必ず含まれている
逆引きにより4つのISPにあることが分かる
z
z
z
z
z
z
z
z
IP address:port
66.235.180.9:33033
66.235.181.9:33033
80.161.91.25:33033
dhcp.tele.dk
80.160.91.12:33033
dhcp.tele.dk
64.246.49.60:33033
64.246.49.61:33033
64.246.48.23:33033
rs-64-246-49-60.ev1.net
rs-64-246-49-61.ev1.net
ns2.ev1.net
z
z
z
{
回答例: アイザック・アシモフ「われはロボット」他
{
1.
2.
3.
{
z
z
{
アシモフによる、あるいはアシモフに影響を受けた
一連の作品には、以下のようなロボット工学三原
則 (Three Laws of Robotics) が登場する。
ロボットは人間に危害を加えてはならない。また、
危険を見過ごすことによって、人間に危害を及ぼし
てはならない。
ロボットは人間に与えられた命令に服従しなけれ
ばならない。ただし、与えられた命令が第1条に反
する場合は、この限りでない。
ロボットは、第1条および第2条に反するおそれの
ないかぎり、自己を守らなければならない。
まずは、 Bootstrap Super Nodesをハードコーディン
グしておき、Super Nodeのリストをどんどん追加・更新
SkypeID認証
z
Skype IDが一意であることを保証している基盤
認証を行うエンティティは世界で1つのLogin Server
唯一、分散できていない部分
議論
z
z
DNSSECのような信頼の伝播ができているわけではない
DOS攻撃があったら?
課題:フィクションにおける自律分散協調システム
{
Salman A. Baset and Henning Schulzrinne
Department of Computer Science Columbia
University, New York NY 10027
{salman,hgs}@cs.columbia.edu
September 15, 2004
http://www1.cs.columbia.edu/~library/TRrepository/reports/reports-2004/cucs-03904.pdf
Skypeネットワークへの参加
z
0x50a15b0c.albnxx9.adsl-
An Analysis of the Skype Peer-to-Peer
Internet Telephony Protocol
z
{
Reverse lookup result
sls-cb10p6.dca2.superb.net
ip9.181.susc.suscom.net
0x50a15b19.boanxx15.adsl-
参考文献
{
まとめ:Skypeにおける鶏と卵の解決方法
自律分散協調システムが登場する未来的なフィク
ション (映画、小説等) をひとつ紹介せよ。
1.
2.
3.
{
{
そのシステムが自律分散協調的である根拠は何か。
そのシステムをノンフィクションの世界に移し換える際の
困難は何か。
その困難を克服するコストを支払ってさえも、そのシステ
ムの導入にはメリットがあるとの前提に立ち、実際の導入
に向けた、未来へのロードマップを描け。
提出はSOIから
締め切り:〆切: 2005/5/27 23:59
回答例の続き
{
このシステムにおいて、ロボットは、三原則に基づい
た自律的な判断により行動する。また、ロボットは
各々、形を持ち、人間に役立つべく分散して配置さ
れる。三原則は人間と協調的であるし、三原則に忠
実に行動するためには、時としてロボット間の協調
が必要とされる。従って、このシステムは自律分散
協調的であると言える。
9
回答例の続き
{
このシステムを現実の世界に移し換えるためには、以下のよ
うな困難が存在する。
z
z
z
論理的矛盾
{ 複数の人間に危険がおよび、その全員を同時に助けられないような
場合、第1条を遵守することはできないといったように、三原則自体
が矛盾をはらんでいる。
技術的課題
{ 三原則は人間の言葉で書かれているが、ロボットが処理するために
は、「人間とは誰のことを指すか」「発生しうる危害にはどんなものが
あるか」といった枠組をその都度形成し、その範囲で判断を行うとい
う、いわゆるフレーム問題を解決する必要がある。
社会制度上の課題
{ ロボットが労働することにより失業する者への保障など、ロボットが
原因で発生する社会的な諸問題に対処する制度を考えていかなけ
ればならない。
回答例の続き
{
{
問題点や困難はあるが、ロボットと人間からなる協
調的な社会を築くことは、これからの社会をデザイン
する上で重要である。とりあえず 2050年には人間
とロボットの間でサッカーの試合ができるように頑張
る
実際のレポートでは年表などでロードマップを描いて
みてください。
10