今日の概要 自律分散協調論 第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
© Copyright 2024 Paperzz