P2Pの過去・現在・未来 数理情報  能一貢士         松本慎佑 これからの糸長ゼミの発表を始めます。 よろしくお願いします。

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

電子社会設計論 第12回 Electronic social design theory 中 貴俊.
3班 岩村雅大 橋爪彩 宮沢彩. 画像: / /?rt=nocnt ( PConline) Facebook ・ Twitter ・ LINE は便利で多くの人が 利用しているアプリケーションです。
NetAgent P2P検知技術 NetAgent.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
情報基礎A 情報科学研究科 徳山 豪.
第一回 プロキシサーバーを駆使したセキュリティシステムの構築
ブラウザの基本操作 前のページに戻る ブラウザの左上にある 「戻る」ボタンで、自分がたどってきた一つ前のページに戻ることができます。
第1回.
情報技術演習Ⅰ 人文学研究のための情報技術入門 2015/07/02
Ibaraki Univ. Dept of Electrical & Electronic Eng.
休講掲示板の電子化 鵜川研究室 菊地洲人 (あらかじめチラシを配る) 情報数理4年の菊地です。 これから私の研究内容の発表を始めます。
Lync 会議 Lync 会議に参加する Lync 2013 クイック リファレンス Lync 会議のスケジュール
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
安全・安心なネット生活を送るためのネットワークセキュリティ
IM、プレゼンス、連絡先 IM 要求に応答する プレゼンスを設定または変更する ユーザーを検索する
メールの使い方・・・・・・内容 メール送受信のしくみ メールの利点 注意事項 メール実習.
ネット時代のセキュリティ2(脅威の例) 2SK 情報機器工学.
クイズ 「インターネットを使う前に」 ネチケット(情報モラル)について学ぼう.
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
「コンピュータと情報システム」 07章 インターネットとセキュリティ
ネットワークコミュニケーション よく使われるアプリケーション DNS 7/5/07.
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
IM、プレゼンス、連絡先 IM 要求を受け入れる Lync 2013 クイック リファレンス プレゼンスを設定または変更する ユーザーの検索
セキュリティ・チェックリスト解説 【5~10分】
tracert(トレースルート)コマンドによるルーティング表示
一歩進んだインターネットの利用 ~Firefox と qwikWeb~
オンライン説明会に関する調査 上杉裕也.
ノードの情報を動的に反映したオーバレイネットワークの構築
ノードの情報を動的に反映したオーバレイネットワークの構築
ま と め と 補 足 ネットワークシステムⅠ 第15回.
第2章 第1節 情報通信の仕組み 1 ネットワークの仕組み 2 通信プロトコル 3 認証と情報の保護
公開鍵認証方式の実習 TeraTermの場合
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
IPv6アドレスによる RFIDシステム利用方式
大規模アドホックネットワークにおける 階層的な名前解決法
第8章 Web技術とセキュリティ   岡本 好未.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
数学のかたち 暗号を作ろう Masashi Sanae.
共通暗号方式 共通のキーで暗号化/復号化する方法 例) パスワードつきのZIPを送信して、後からパスワードを送る方法 A さん B さん
第二章 インターネットで やり取りする情報を守る
インターネットにおける真に プライベートなネットワークの構築
セキュリティ 05A2013 大川内 斉.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
学内環境におけるP2Pアプリケーションの構築
各種ルータに対応する P2P通信環境に関する研究
P2P概説 P2P概説 第2回 /
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報通信ネットワークの 仕組み.
公開鍵認証方式の実習 MacOS Xの場合.
受講日:   月  日 暗黙知の見える化ワーク 第1回 コミュニケーションとは.
暗号技術 ~暗号技術の基本原理~ (1週目) 情報工学科  04A1004 石川 真悟.
インターネット             サーバーの種類 チーム 俺 春.
個人の動画配信のためのWebサーバ構築 06A1058 古江 和栄.
コンピュータにログイン 第1章 コンピュータにログイン 啓林館 情報A最新版 (p.6-13)
コミュニケーションと ネットワークを探索する
P2P型アプリケーション用ライブラリ SUNET
ISO23950による分散検索の課題と その解決案に関する検討
修士研究計画 CGM作成・共有支援基盤(仮)の構築
本当は消去できていない!? ~データを完全消去する方法~
本当は消去できていない!? ~データを完全消去する方法~
Microsoft® Office® 2010 トレーニング
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
  情報に関する技術       情報モラル授業   .
中等情報科教育Ⅱ 情報セキュリティの確保.
情報処理の概念 #0 概説 / 2002 (秋) 一般教育研究センター 安田豊.
P2P & JXTA Memo For Beginners
TCP/IPの通信手順 (tcpdump)
Presentation transcript:

P2Pの過去・現在・未来 数理情報  能一貢士         松本慎佑 これからの糸長ゼミの発表を始めます。 よろしくお願いします。

これからの説明 P2Pについての説明 Winnyについて Skypeについて P2Pのこれから そしてWinnyの技術基盤となっているP2Pを研究するに至りました。 これからP2Pについて以下の順で説明していきたいと思います。

P2Pとは・・・ Peer to Peer の略 意味は「対等なもの同士が対等な立場で相互にデータなどのやり取りを行う方式」 分かりやすく説明するために、クライアント・サーバ型と比較してみたいと思います。

クライアント・サーバ型との比較 クライアント・サーバ型 P2P型 サーバ ノード クライアント クライアント・サーバ型のシステムでは、各コンピュータの役割がサーバとクライアントに分かれています。 サーバはデータ配信、蓄積、検索といったサービスを一手に引き受け、システムの中心に位置しています。 一方、クライアントは、サーバに対してサービスを要求します。 P2P型のシステムでは、各コンピュータの役割は固定されず、状況に応じてサーバの役割もクライアントの立場も演じます。 P2Pでは、各コンピュータのことをノードと呼びます。 このように、クライアント・サーバ型には、中心といったサーバが存在し、P2P型には、中心のないネットワークを構成していることが大きな違いです。

第一世代 ハイブリッドP2P 代表的なソフト:Napster、WinMX ・・・ダイナミックP2Pアクセス ・・・基本ネットワーク インデックスサーバ ・・・ダイナミックP2Pアクセス ・・・基本ネットワーク クライアント・サーバ型とP2P型のハイブリッド(混合)。 サーバがデータ検索を担当して、実際のデータのやり取りはノード同士で行う。 それでは次にP2Pの分類について説明します。P2Pは世代別に分類できます。 第一世代は、ハイブリッドP2Pです。 ハイブリッドP2Pの説明に入る前に、まずは、P2Pシステムの基本構成について説明します。 図を、見てください。 P2Pシステムは、黒色の実線で表している「基本ネットワーク」と緑色の点線で表している「ダイナミックP2Pアクセス」の2種類の接続で構成されています。 基本ネットワークとは、常時張っている接続のことで、ダイナミックP2Pアクセスは実際にデータのやり取りをするとき、当事者のノード同士で張られる接続です。 それでは、ハイブリッドP2Pについて説明します。 ハイブリッドP2Pとは、クライアント・サーバ型とP2P型のハイブリッド(混合・合成)という意味です。 システム内にはデータの所在情報を持つ、探索用の「インデックスサーバ」と呼ばれるサーバが存在し、各ノードはデータが必要になるとインデックスサーバにその所在情報を問い合わせます。 クライアントサーバ型における「サーバ」と、このインデックスサーバの違いは、インデックスサーバがデータの探索だけを担当し、実際のデータを扱わない点です。これにより、サーバの負荷が軽くなります。 実際のデータ移動は、データを要求しているノードとデータを所有するノード間のみで行われます。 代表的なソフトとしてはNapster、WinMXなどがあります。 代表的なソフト:Napster、WinMX

第二世代 ピュアP2P 代表的なソフト:Gnutella、Winny ・・・ダイナミックP2Pアクセス ・・・基本ネットワーク データ検索はノード同士で教えあい、助け合うことによって実現。 データのやり取りもノード同士で行う。 第二世代は、ピュアP2Pです。 データの所在情報の探索を行うインデックスサーバすら持たないP2Pシステムが「ピュアP2P」です。 ピュアP2Pのデータ探索は、ノード同士の教えあい、助け合うことによって実現しています。ピュアP2Pシステムのノードは、他の複数のノードと常時、接続を張るのが基本です。 実際のデータのやり取りは、ノード同士の直接接続が行われます。 その点は、ハイブリッドP2Pの場合と同様です。 代表的なソフトには、Gnutella、Winnyなどがあります。 代表的なソフト:Gnutella、Winny

第三世代 スーパーノード型ハイブリッドP2P スーパーノード群 ・・・ダイナミックP2Pアクセス ・・・基本ネットワーク ハイブリッドP2Pのサーバの代わりに、スーパーノードに選ばれたノードが検索を行う方式。データのやり取りはノード同士が行う。 第三世代が、スーパーノード型ハイブリッドP2Pです。 これまでの2種類のP2Pシステムの欠点を補い、かつ利点を生かしたのが「スーパーノード型ハイブリッドP2P」です。 スーパーノード型ハイブリッドP2Pは、文字通りハイブリッドP2Pの一種なのですが、インデックスサーバのような「固定的な」サーバを持たないのが大きな違いです。 代わりに、インデックスサーバのような役割を果たすのは「スーパーノード」と呼ばれる特別なノードです。 データのやり取りは、ハイブリッドP2P、ピュアP2Pと同じように、ノード同士で行います。 代表的なソフトにはSkype、KaZaAなどがあります。 このように、P2Pには、大きく分けて3つの種類があります。 代表的なソフト:Skype、KaZaA

P2Pのメリット スケーラビリティ(拡張性) 冗長性 オフライン利用 サーバなど、中心になるものがないので、無限のスケーラビリティを持っている。 一部のノードがダウンして障害が起きても、システム上影響が出ない。 次に、P2Pのメリットについて説明します。 P2Pのメリットは、スケーラビリティと冗長性とオフライン利用の3つのメリットがあります。 まずは、スケーラビリティです。 P2Pシステムにはアクセスの集中が起きるサーバのような中心がありません。 その意味でP2Pシステムは理論上、無限のスケーラビリティを持っていると言えます。 次に冗長性です。 P2Pシステムは、お互いがデータの複製を持ち合っているので、障害に備えてわざわざデータの冗長化を設計する必要がありません。 最後が、オフライン利用です。 データとその処理機構を各コンピュータ、つまりローカルに持つP2Pシステムであれば、取得済のデータはオフライン時にもデータの編集、閲覧が可能です。 この3つがP2Pのメリットです。 データが各コンピュータ上に存在するので、オフライン状態でもデータ編集・閲覧が可能。

Winnyの説明の流れ Winnyネットワークの概観 ファイル公開から転送まで Winnyの特徴的なシステム Winnyのまとめ ここからは、P2Pの第二世代である、Winnyについて説明していきます。

Winnyネットワークの概観 検索リンク・・・・・・ノードの情報、キーの交換、ファイルの検索 転送リンク・・・・・・ファイルの転送 Winnyでは、各ノードがWinny起動時にWinnyネットワークに接続し、 終了するまで常に接続を維持します。 Winnyではこのノード間の接続を通じて、 他のノードの情報やファイルのキーを交換したりファイルを検索したりするので、 この接続のことを「検索リンク」と呼びます。 ファイルを転送するときには、ファイルの転送元ノードと転送先ノードとの間で 検索リンクとは別の接続を開きます。この接続のことを「転送リンク」と呼びます。 検索リンク・・・・・・ノードの情報、キーの交換、ファイルの検索 転送リンク・・・・・・ファイルの転送

Winnyネットワークの概観 高速・・・上流 低速・・・下流 まずは、ファイルの公開です。

ファイルの公開 アップロードフォルダ オリジナルファイル ファイルボディ(本体) キー ・ファイルの名前 ・ファイルの大きさ ・更新時刻 ユーザーが、公開するファイルをアップロードフォルダに置くと、 <<>>winnyはそのファイルから <<>>本体と <<>>キーを作成します。 キーには、 <<>> ファイルの名前や大きさ、更新時刻、ファイルの識別に使うファイルID(ハッシュ値)、 ファイル本体の位置情報を示すIPアドレスとポート番号などが含まれています。 ファイルの本体のほうは、ファイルの内容そのものです。 ・ファイルの名前 ・ファイルの大きさ ・更新時刻 ・ファイルの識別に使う    ファイルID(ハッシュ値) ・ファイル本体の位置情報    IPアドレスとポート番号 ・ファイル本体の内容

キーの拡散 キー キー 拡散 キー キー A B オリジナルファイル ファイル公開 検索元 Winnyは、検索リンクでつながっている隣接ノードとのあいだで、 持っているキーを定期的に交換するので、アップロードフォルダのファイルのキーはしだいにWinnyネットワークに拡散していきます。 たとえば、ノードAがファイルを公開すると <<>> このようにして上流に向かってキーが拡散していきます。 このように、Winnyの各ノードにはキーが集まってきますが、キーには寿命があり、 ある一定の時間がたつと有効期限が切れ、キーのリストから削除されます。 キー オリジナルファイル A B ファイル公開 検索元

ファイルの検索 キー キー 検索クエリ キー 検索クエリ キー 検索クエリ キー キー A B オリジナルファイル ファイル公開 検索元 次にファイルの検索について説明します。 公開ファイルのキーが拡散したところで、ノードBがこのファイルに関連するキーワードを指定して検索したとします。 Winnyは、検索用のクエリパケットに検索条件の文字列を詰め、上流のノードに送り出します。 <<>> クエリは、転送先のノードで条件に合うキーがあるとそれを詰め込まれ、さらに隣接するノードへと転送されます。 キー キー A B オリジナルファイル ファイル公開 検索元

ファイルの検索 キー キー キー 応答 応答 キー キー キー 応答 キー キー A キー B オリジナルファイル ファイル公開 検索元 6つのノードを通るか、キーを30個集めた所で、往路を逆にたどって検索元に送り返されます。 <<>> 検索元のノードは、経由したノードで見つけたキーのリストを受け取ります。 また、検索にはもうひとつ、クエリの通り道となったノードにも収集したキーが複製されるという効果があります。すなわち、キーの拡散は、先ほど説明した隣接ノードとの定期的なキー交換と検索との二つのタイミングで行われます。 これにより、よりキーが拡散して、ファイルの検索が容易になります。 では、キーを見つけたところで、いよいよファイルの転送を行います。 キー キー A キー B オリジナルファイル ファイル公開 検索元

ファイルの転送 B A キー オリジナルファイル 検索元 ファイル公開 キー 転送リンク キャッシュフォルダ 複製ファイル 定期的なキーの受信と検索操作でノードに集まったキーは、Winnyの検索画面に一覧表示されます。ユーザーがそのなかから適当なものを選んでダウンロードを指示すると、ファイルの転送が始まります。 例えば、検索元Bが検索画面からAを選ぶと、キーからAのIPアドレスとポート番号をしらべ、Winnyはそのノードと接続し、ファイルの転送を行います。 <<>> このコネクションを 転送リンクと呼び、ファイルを1つ転送するごとに開き、転送が終わると 閉じます。 <<>> ここまでがファイルのアップロード、ダウンロードの一連の流れです。 Winnyには、アップロード・ダウンロードを助けるために様々な独自の仕組みがあります。 その中でも特徴的なのは中継です。 中継について説明する前にキーの書き換えについて説明します。 転送リンク キャッシュフォルダ 複製ファイル

キーの拡散と書き換え キー Y キー キー X 応答 キー 拡散 キー キー 応答 A キー オリジナルファイル ファイル公開 B 検索元 ファイルのキーは検索リンクを通して上流に拡散していきますが、 キーに含まれているファイル本体の位置情報は、拡散の途中に一定の確率で書き換えられます。 例えば、ノードAがファイルを公開すると、ノードAの位置情報を含むキーが拡散しています。 <<>> ノードAの位置情報を含むキーがノードXに送られると、 キーの位置情報がノードXの物に書き換えられます。 それ以降は、ノードXの位置情報を含むキーが拡散していきます。 これがキーの書き換えです。 それでは、ノードYが持つキーをノードBが入手し、 このキーを使ってファイルをダウンロードすると何が起きるでしょうか? このときに起きるのが中継です。 A キー オリジナルファイル ファイル公開 B 検索元

中継が発生されるたびにファイルの共有効率があがる Y キー X キー キー 複製ファイル 転送リンク 転送リンク Xのキャッシュフォルダ キー B ノードYのキーはファイルの位置情報がノードXになっています。 このため、ノードXはファイルを持ってないのに、ノードBから転送リンクが接続されてダウンロードを要求されます。 <<>> ノードXは、ファイルを持っていないので、自分の持っているキーを使ってノードAからファイルをダウンロードします。 Winnyには、ダウンロード中のファイルをそのまま同時にアップロードする仕組みがあるので、 それを利用してファイルをノードBに転送します。 これが中継です。 キーのIPアドレス書き換えは定期的なキー拡散時だけでなく、検索時のクエリパケットの転送でも行われるので、頻繁にダウンロード要求されるファイルには、どんどん中継が発生します。 その結果、人気のあるファイルほどあちこちのノードにファイルがキャッシュされることになり、Winnyネットワークのファイルの共有効率がアップします。 それと同時にダウンロード要求者には一次発信者のノードと中継のノードの区別はできないので、匿名性も実現しています。 A キー オリジナルファイル 複製ファイル ファイル公開 Bのキャッシュフォルダ 中継が発生されるたびにファイルの共有効率があがる 中継により匿名性も実現

Winnyのまとめ Winnyによる情報漏洩の問題 究極のファイル共有効率と匿名性の実現 著作権の問題 「上流と下流」の概念や中継によりファイル共有効率を追求。 中継の機能によって第一発信者の特定が困難。 著作権の問題 世間では、Winnyについての情報漏えいの問題で注目を集めていましたが、 情報漏えいの問題は、Winnyの製作者が、途中でソフトウェアの改善できなくなったため、その部分を狙ったウイルスによって起きた問題であり、Winnyそのものがもたらしたものではありません。 そもそも、Winnyは、ファイルの共有効率がよいことと、匿名性をコンセプトに作っていました。 ファイルの共有効率と匿名性だけをみれば、様々な工夫により目標を実現しています。 しかし、匿名性を実現したため、著作権を侵害するファイルが多数流通しました。 Winnyそのものは、開発自体が途中で止まってしまったため、これらの問題は残されたままです。 P2Pソフト=違法コピーと捉えがちですが、P2Pソフトの中には実際にビジネス分野で成功を収めているのもあります。 それが、第三世代のSkypeです。

Skypeについて スカイプ・テクノロジーズという会社が作った、スーパーノード型P2Pシステムを用いた電話ソフト。 特徴 固定電話やIP電話との通話も可能。 メッセンジャーよりも高い接続状態、高音性を実現し、また無料で利用できる。(固定電話との通話など、一部サービスは有料) 面倒な設定をせずに、ほとんどのネットワーク環境で使用可能。 スカイプとは、スカイプ・テクノロジーズというヨーロッパの会社が作ったP2Pシステムを用いた電話ソフトです。メッセンジャーソフトのように、キーボードを使った筆談もできますし、もちろん音声通話もできます。ではまず、スカイプの特徴について説明したいと思います。 先程メッセンジャーの話をしましたが、メッセンジャーとの大きな違いは、固定電話やIP電話との通話が可能という点です。 それでいてメッセンジャーよりも接続状態がよく、高音質を実現しており、また無料もしくは低コストで利用できます。 さらにほとんどのネットワーク環境で面倒な設定なしに使用できます。これらの特徴はP2Pネットワークを用いることで実現しており、近年急激に普及しています。

Skype説明の流れ 電話帳の管理 電話帳への登録方法 電話をかける セキュリティについて Skypeの問題点 スカイプについては、このような流れで説明していきたいと思います。

Skypeの電話帳について それぞれのグループのリーダー(スーパーノード)がグループの電話帳を持ち、それぞれは繋がっている。 グループ分けの方法は、ハッシュ関数によって振り分けられる。 (ハッシュ関数とは、文字列を数値に変換する関数のこと) Aグループ スカイプは、ユーザーをいくつかのグループに分けて、そのグループごとに電話帳のページを分けて持つという方法をとります。電話帳には、電話番号の代わりとなるID、それに対応するIPアドレスが登録されます。こうすれば、ユーザーのIPアドレスが変わっても、所属するグループの電話帳のみを変更するだけですみます。グループのリーダーであるスーパーノードが電話帳を持ち、スーパーノード同士は常にネットワークが繋がっています。 <<>> では、どのようにグループ分けするかということになりますが、グループ分けはハッシュ関数という、文字列を数値に変換する関数を使い、IDを変換した値で分けています。 ちなみにこのハッシュ関数は企業秘密になっていて、どのように変換するのかは明らかになっていません。 Cグループ Bグループ

所属グループを見つける方法 グループBのスーパーノードにグループAのスーパーノードを問い合わせる。 Akira Bill グループBのスーパーノードにグループAのスーパーノードを問い合わせる。 スーパーノードに自分のIPアドレスを通知。電話帳に登録。 グループAのスーパーノードはAkira(IPアドレス)と回答。 次に、所属グループをどのように見つけるか説明します。例えば、AliceさんがSkypeを起動すると、自分が所属するべき「グループA」のスーパーノードに、自分の情報を報告しなければなりません。じゃあもし自分の所属するグループAのスーパーノードを知らなかったらどうするのか?ここで、例えばAliceさんがBobさんを知っていたとしましょう。 <<>> まず最初にBobさんに連絡を取ります。 すると、Bobさんは自分のグループBのスーパーノードのBillさんに連絡を取って、グループAのスーパーノードを教えてもらいます。 先程も説明したとおり、スーパーノード同士は常に繋がっているので、BillさんならばグループAのスーパーノードが分かるわけです。 Bobさんから要求を受けたBillさんは、BobさんにグループAのスーパーノードはAkiraさんで、IPアドレスはここだと回答します。 そして、BobさんはAliceさんにそれらの情報を回答します。 Aliceさんはその情報を基に、スーパーノードに自分の情報を通知して電話帳に登録するというわけです。 こういった流れで電話帳に自分の情報を登録するのですが、どうしても知り合いに連絡がつかないという場合は、スカイプのサーバーにアクセスしてスーパーノードの情報を教えてもらいます。 所属するグループAのスーパーノードを知らない。知り合いのBobさんに問い合わせ。 Alice Bob グループAのスーパーノードはAkira(IPアドレス)と回答。

電話をかける①(同じグループ内) AikoさんのIPアドレスを教えて 電話帳を見て、AikoさんのIPアドレスを通知 グループAの電話帳 Akira (グループAの スーパーノード) AikoさんのIPアドレスを教えて 電話帳を見て、AikoさんのIPアドレスを通知 電話帳に登録したということで、次は電話のかけ方について説明します。まずは、同じグループの人に電話をかける場合について説明します。ここでは、グループAのAliceさんが、同じグループのAikoさんに電話をかけようとしています。Aliceさんは、何とかしてAikoさんのIPアドレスを調べないと電話できません。 そこでまずは、 <<>> グループAのスーパーノードのAkiraさんにAikoさんのIPアドレスを教えてと要求します。 するとAkiraさんは自分の持っている電話帳を見て、AikoさんのIPアドレスをAliceさんに通知します。 そして、スーパーノードから聞いたIPアドレスを使ってAikoさんに電話をかけるという手順になっています。 ちなみに、既に電話したことがあったりしてIPアドレスを知っている場合はこの手順は要りません。 Alice Aiko スーパーノードから聞いたIPアドレスを利用し、Aikoさんに電話をかける

電話をかける②(違うグループ同士) Aiko Becky Alice グループAのスーパーノードに、通信相手のIPアドレスを問い合わせ グループB グループA Aiko Alice Akira Bill Becky 次は違うグループの人同士で電話をかけるばあいについて説明します。Aliceさんは、別のグループのBeckyさんに電話をかけたいが、IPアドレスを知りません。 <<>> まずは先程と同じように、自分のグループのスーパーノードのAkiraさんに問い合わせをします。 するとスーパーノードのAkiraさんは、Beckyさんがどのグループに所属するのかを調べます。先程も説明しましたが、グループ分けはIDをハッシュ関数で変換させた数値で行っているので、IDのハッシュ関数値を調べればどのグループに所属しているかはすぐ分かります。 BeckyさんのIDのハッシュ関数値を調べると、BeckyさんはグループBに所属していて、スーパーノードはBillさんということが分かりました。 そうしたら今度は、BillさんにBeckyさんのIPアドレスを問い合わせます。 Billさんの電話帳にはBeckyさんのIPアドレスが登録されているので、IPアドレスをAkiraさんに通知します。 そしてAkiraさんはAliceさんにBeckyさんのIPアドレスを回答し、Aliceさんは直接電話をかける事ができるようになります。 このように、スーパーノード同士が連携することで、異なるグループのユーザーでも相手を探し出して、電話を掛けられる仕組みになっています。 グループAの電話帳 グループBの電話帳 BeckyさんのIPアドレスをAグループのスーパーノードに回答 BeckyさんのIPアドレスを回答

証明書の発行 ログイン(SkypeID、パスワードを送信) サーバ IDとパスワードが正しければ、サーバが証明書を発行して送る。 A IDとパスワードが正しければ、サーバが証明書を発行して送る。 Winnyは、匿名性を追求したため、誰がどのファイルをダウンロードしたか、誰がどのファイルをアップロードしたかが全く分かりませんでした。ですが、スカイプはそうはいきません。電話する相手が偽者でないかをはっきりさせる必要があります。 <<>> まず、Aさんがスカイプを起動すると、スカイプテクノロジーズのサーバにIDとパスワードを送信する。するとサーバがIDとパスワードが正しいかを確認します。 正しいものだったら、「この人は本物」という証明書を送信します。 証明書を受け取ったAさんは、他の人に電話をかけるときに、証明書を送って本人であることを証明します。 この証明書を使うことで、なりすましを防ぎます。 この証明書で使うのがRSAと呼ばれる暗号方式です。次はこのRSAについて説明します。 通信時に証明書を送って、本人であることを証明する。

セキュリティ①(RSA暗号) 暗号化 復号 秘密鍵 公開鍵 インター ネット B A 公開鍵で復号できた →秘密鍵を持っている アイウエオ 暗号化 復号 暗号化データ 秘密鍵 ○△?× ○△?× 公開鍵 アイウエオ インター ネット B A RSA暗号では、「公開鍵」「秘密鍵」という二つの暗号鍵を利用します。公開鍵は多くの人に公開している鍵のこと、秘密鍵は持ち主のユーザーだけが持っている鍵のことです。この秘密鍵が、サーバから発行された証明書となります。 では具体的に、どのように本人証明をするのか。Bさんから電話をかけたいといわれたAさんは、 <<>> まず始めに適当に決めたデータをBさんに送ります。このデータは、一回ごとに変えています。ここでは「アイウエオ」とデータを送ったとしましょう。 BさんはこのデータをBさんの秘密鍵で暗号化して、Aさんに送り返します。 そして暗号を受信したAさんは、Bさんの公開鍵で複合してみます。 もし正しく「アイウエオ」と読むことができたら、相手はBさんの秘密鍵を持っていると分かります。つまり相手はBさんであると分かるわけです。 この方法ならば、仮に他人が通信を盗み見たとしても、「アイウエオ」の文字と、それを暗号化された文字しか分からないため、Bさんの秘密鍵は分からず、Bさんに成りすますことはできないのです。 公開鍵で復号できた →秘密鍵を持っている この人は確かにBさんだ

セキュリティ②(AES暗号) RSAの公開鍵(Aさんの)で 暗号化した共通鍵 通話 複合 共通鍵 共通鍵 もしもし もしもし B A 相手が本物と分かったら、実際に通話で音声データをやり取りするようになります。Skypeでは、電話を誰かに盗聴されないように、音声データを暗号化してやり取りしますが、RSA方式ではデータが大きすぎて通話に支障をきたしてしまいます。そこで、RSA方式の変わりにAESと呼ばれる暗号方式を使います。 AESは、「共通鍵」と呼ぶ1つの鍵で暗号化と復号ができる方式です。 <<>> 共通鍵は、通話の直前に「通話したい」というメッセージと一緒に渡すことになります。ここで重要なのはこの鍵を盗まれてしまってはいけないということです。盗まれてしまっては音声を暗号化する意味がなくなります。そこで、この鍵の受け渡しには まずRSA方式を使ってAさんの公開鍵で、共通鍵を暗号化して送り、 それを送り先でAさんの秘密鍵を使って複合することで安全に、確実に鍵が届くようにしてあります。 その後二人で同じ鍵を使って音声を暗号化したり複合したりして通話します。また、AESの共通鍵は、通話ごとに変えることで、セキュリティを高く保っています。 インター ネット ○△?× ○△?× 通話

Skypeの問題点 固定電話との接続を行うゲートウェイサーバーがない地域がある。 日本内では、まだ固定電話との通話ができない。 ここでは、スカイプの問題点についていくつか挙げます。まず、 固定電話との接続を行うゲートウェイサーバーがない地域があるという点です。そういった地域との通話は割高となってしまいます。 また、日本国内ではスカイプと固定電話との通話がまだできないという問題もあります。 さらに、スカイプがあまりに便利で、他の電話会社の経営が立ちゆかなくなるという理由で、スカイプの利用を禁止する国や、電話会社もあります。 ですが、スカイプが非常に優れたソフトウェアであることに変わりはなく、これからさらに改良を重ね、利用法を考えることで、今後の新しい可能性が期待されます。 最後に、こうしたP2Pソフトを応用した可能性について考察してみました。

P2Pのこれから まだまだこれからのP2Pソフト Skypeを利用した企業などもでてきている。 Skypeを教育現場で有効活用できないか。 これから、様々な機能やサービスの提供が増えると考えられます。 私たちはこのSkypeを教育現場で有効に利用することはできないかと考えました。

私たちの実体験から・・・ Skypeを利用すれば、 この問題を解消できないか? 生の授業を見る機会が少ない。 いざ実習に入ってもどう授業をすればいいのか分からない。 私たちも教育実習に行きましたが、講義で模擬授業をやる機会も少なく、現役の先生の生の授業を見る機会も少ないです。そのため、いざ実習で授業を行おうとしてもどのようにすればいいのかが分かりませんでした。 ならば、どうにかして授業参観をできる機会を増やせないか?私たちはSkypeを利用すれば解消できるのではないかと考えました。 Skypeを利用すれば、        この問題を解消できないか?

Skypeの有効活用 P2Pネットワークを通じて授業参観 参観と同時に授業資料を配布 学生 授業の資料 学生 学生 学生 学生 まず、配信する授業を行う場所にカメラとコンピュータを用意します。 そして、授業を参観したい学生は、大学のコンピュータからSkypeを使ってアクセスします。 そしてSkypeを通じて、各学生に配信して参観するという形です。 学生 学生 P2Pネットワークを通じて授業参観

問題点と改善の見込み 映像を複数人に配信できない。 7人以上で通話ができない。 今後の見込み Skype自体の改良の可能性 SkypeはAPIというものを公開しており、これを利用すれば、他のソフトとの連携が可能 ただし、このシステムをスカイプで行うには、足りない機能がいくつかあります。 一つ目は映像配信は複数人に行えないという点です。一対一なら音声と同時に映像配信もできますが、今のスカイプでは複数人では使えません。 二つ目は7人以上で同時に通話ができないという点です。今のスカイプでは、8人まで同時に通話が可能です。一つは授業側に必要なので、残りの7人しか授業参観ができないということになります。 今後の見込みとして、スカイプ自体が改良される可能性があります。また、スカイプはAPIというものを公開していて、これを利用すれば、足りない機能を別のソフトウェアで補うことが可能となります。 Skypeに足りない機能を別のソフトウェアで補う。

まとめ P2P=ファイル共有ソフト=「悪」ではない! 使いようによってはとても便利なネットワークシステムになる。 悪用されるのはユーザー側の問題で、使いようによってはとても便利なシステムとなります。 (間をおいて) 私たちはP2Pのこれからの未来に期待したいと思います。

参考文献 金子勇、Winnyの技術、アスキー、2005 池嶋俊、入門 Skypeの仕組み、日経BP社、2005 岩田真一、なるほどナットク!P2Pがわかる本                         オーム社、2005 徳力基彦、図解P2Pビジネス、翔泳社、2005 Skypeやろうぜ http://ikejisoft.com/skype/ P2PWiki     http://p2pwiki.ikejisoft.com/                   参考文献です。以上で発表を終わります。

下流のノードは上流のノードにさえ、検索クエリを投げかければよい 検索をスムーズに行い、帯域の圧迫も少ない 上流と下流 キー ファイル 高速・・・上流 キーの拡散で述べたように、キーは上流に向かって拡散するので、 能力の高い上流のノードにキーやファイルがたくさん集まります。 <<>> 上流のノードでは、大量のキーが流入する一方で、受け取ったキーがすぐに溢れて消えていくので、 絶えず新鮮なキーが流れることになり、ファイルを検索したときのヒット率が高くなります。 一方下流のノードが持つキーは、自分自身でキャッシュを持っているものか、検索の結果を受け取ったキーが多くを占めます。 このようなわけで、上流のノードにはキーが大量に流れているので、上流のノードは検索する必要がなく、 下流のノードは上流のノードにさえ、検索クエリを投げかければ、目当てのキーを見つけることができます。 このように、上流と下流という概念があることで、 検索をスムーズに行い、また、帯域の圧迫も少なくなります。 低速・・・下流 上流のノードは検索する必要がない 下流のノードは上流のノードにさえ、検索クエリを投げかければよい 検索をスムーズに行い、帯域の圧迫も少ない

無料化の秘密 P2Pシステムを使用している部分は、会社が整備する必要がないので無料!! サービス内容 接続形態 通信料 Skypeボイスチャット Skypeユーザー同士の通話 P2P 無料 Skypeテキストチャット Skypeユーザー同士のチャット SkypeOut 固定電話などへの発信 サーバー経由 有料 SkypeIn 固定電話などからの着信 Skype Voicemail 留守番電話 次の表を見てください。この表はどういったサービスが無料か、もしくは有料かを示したものです。表からわかるように、スカイプ同士の通話など接続形態がP2Pなら無料、固定電話との通話などサーバー経由なら有料となっています。なぜこうなるのかというと、 <<>> 通常の通話だけならば、P2Pシステムを利用しているため会社が機器を用意する必要もないし、管理のために社員を雇う必要もありません。そのため、無料で提供されているのです。ですが、サーバー経由のサービスの場合、サーバーなどの機器のメンテナンスなどにお金がかかるために有料となっているわけです。 P2Pシステムを使用している部分は、会社が整備する必要がないので無料!! サーバーを経由するサービスはサーバーなどの整備がいるため有料となる。 (他の電話サービスと比べれば格安!!)

中継① AさんがBさんと電話したいと言ってるよ Bさんに電話したいと伝えて BからAに電話をかける Aから始める通信は不可能 スーパーノード インターネット ファイアウォール またはNAT機器 これまで電話のかけ方について説明してきましたが、実際のインターネット環境では、こうした通話を妨げる障害があります。その主なものが、ファイアウォール、そしてNATという機器です。ファイアウォールは内部のコンピュータのセキュリティを守るものです。そしてNATは同じ場所でいくつものコンピュータがインターネットを接続できるようにする機器です。どちらにも共通していることは、外からの通信が不可能だという点です。 図を見てください。AさんがBさんに電話を掛けようとしますがBさんがファイアウォールまたはNAT機器を使っている場合、外からの通信が不可能なため、Aさんからの通信はできません。そこでAさんは別の方法で電話を掛ける意思を伝えます。 <<>> ここで活躍するのがスーパーノードです。以前説明したとおり、Skypeユーザーは常にスーパーノードと通信しています。つまりスーパーノードなら誰とでも通信できるわけです。 そこで、Aさんはスーパーノードに、Bさんに電話したいと伝えてとお願いします。 するとスーパーノードは、Bさんに「Aさんが電話したいと言ってるよ」と伝えます。 そしてスーパーノードから伝言を聞いたBさんは、Aさんに電話を掛けます。 つまり、Aさんから電話をかけるはずが、実際はBさんから電話をかける格好になるわけです。 BからAに電話をかける Aから始める通信は不可能

中継② UDPホールパンチング スーパーノードの掛け声とともに、同時にパケットを送る。ファイアウォールやNAT機器が記録。 相手から届いたパケットを返事だと勘違いして、ファイアウォールが許可。電話がつながる。 先程の場合、ファイアウォールやNATを使っているのはBさんだけですが、AさんとBさんの双方が使用している場合は使えません。なぜなら、Bさんから掛ける形にしても今度はAさん側で通信を止めてしまうからです。そこで今度は別の方法を使います。 <<>> まずは、スーパーノードが「いっせいのせ」で掛け声を出して合図を出します。 するとAさん、Bさんは同時に相手に対してパケットを送ります。ここで、AさんのファイアウォールやNATは「Bさんに通信を始めた。Bさんから通信が来たら通してよい」と覚えておきます。 そこへちょうどいいタイミングで相手からパケットが届いて、ファイアウォールやNATがさっきの通信の返事だと勘違いして、パケットを通します。Bさん側でも同じ手順でファイアウォールやNATが勘違いをして、両方でパケットが通り、通話が開始できるようになります。 ここで重要なのは、通信のタイミングを取ることですが、この音頭をとるのがスーパーノードの役目となります。この方法を、 「UDPホールパンチング」といいます。 ですが、このUDPホールパンチングが通用しない場合もあります。その時のために、スカイプは別の方法も用意してあります。 OK        OK B A ファイアウォール またはNAT機器 ファイアウォール またはNAT機器

中継③(TCP) ファイアウォール/NAT内部のSkypeとも通信できるスーパーノードが、電話を中継する。 B A 直接は通信できない 常時通信中 B A それが、これから説明するTCPと呼ばれる通信方法です。TCPは先程のUDPよりも音質は劣ります。なので、スカイプはまずUDPの通信を優先し、UDPが使えない場合は自動的にTCPの通信に切り替わるようになっています。 何度も繰り返すようですが、スカイプユーザーはスーパーノードとなら常に通信が可能です。 <<>> TCPの場合、直接AさんとBさんが通信できなくてもスーパーノードに中継してもらうことで通話を可能にしています。このように、中継するスーパーノードは「リレーノード」と呼ばれます。 スカイプでは、複数代のスーパーノードを中継役の候補に選びます。リレーノードの電源が切れたり、通信回線が急に混雑したりすると、すぐ別のスーパーノードに中継役を切り替えるためです。このように、常に複数の通信経路を確保しておき、最適な経路を自動選択する仕組みによって、安定性と高品質を確保しています。 これまで説明してきたように、常に良い状況で通話ができる様に様々な仕組みがなされています。 ファイアウォール またはNAT機器 ファイアウォール またはNAT機器 × × 直接は通信できない

音質を決める要素 遅延:声が相手に届くまでにかかる時間。 自分が話した後に、相手の声がなかなか返ってこないと通話しにくくなる。  自分が話した後に、相手の声がなかなか返ってこないと通話しにくくなる。 ゆらぎ:音声パケットの遅延がばらつく状況。  ゆらぎが大きいと音が欠けてしまい、会話が成り立たなくなる。 コーデック:音声をデジタル信号に変換する方式。  データ量が大きいと、データが届かなかったり遅延、ゆらぎが大きくなる。

遅延、ゆらぎ、コーデックの対策 ゆらぎ吸収バッファ 中継を行う場合、4ルートを用意 3種類のコーデックを使用 いったん音声データをバッファに貯めて、順番に並び替えてから再生する。 中継を行う場合、4ルートを用意 中継ノード(リレーノード)を4台選び、その中で一番ゆらぎの少ないルートを選ぶ。 3種類のコーデックを使用 どのコーデックを使えば一番通話しやすいかを自動的に採用して使用する。