(Translated by https://www.hiragana.jp/)
Peer to Peer - Wikipedia コンテンツにスキップ

Peer to Peer

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
P2Pから転送てんそう
P2Pがたネットワーク(はピュアP2Pがた)。コンピューター同士どうし対等たいとう通信つうしんおこなうのが特徴とくちょうである。

Peer to Peer(ピア・トゥ・ピア または ピア・ツー・ピア)とは、複数ふくすうのコンピューターあいだ通信つうしんおこなさいアーキテクチャのひとつで、対等たいとうもの(Peer、ピア)同士どうし通信つうしんをすることを特徴とくちょうとする通信つうしん方式ほうしき通信つうしんモデル、あるいは通信つうしん技術ぎじゅついち分野ぶんやす。略記りゃっきは、P2P

概要がいよう

[編集へんしゅう]
クライアント・サーバーかたネットワーク。サーバー(中央ちゅうおう)とクライアントは一対一いちたいいち通信つうしんおこなうのが特徴とくちょうである。

P2Pに対置たいちされる用語ようごとしてクライアント・サーバー方式ほうしきがある。クライアント・サーバー方式ほうしきではネットワークに接続せつぞくされたコンピューターにたいしクライアントとサーバーに立場たちば機能きのう分離ぶんりしており、一般いっぱんてきには多数たすうのクライアントにたいしてサーバーがひとつである。クライアントはサーバーとだけ通信つうしんでき、あるクライアントがのクライアントと通信つうしんするにはサーバーをかいする必要ひつようがある。

P2Pではネットワークに接続せつぞくされたコンピューター同士どうし対等たいとう立場たちば機能きのう直接ちょくせつ通信つうしんするものである。クライアント・サーバー方式ほうしきではクライアントすう非常ひじょうおおくなると、サーバーおよびその回線かいせん負荷ふか集中しゅうちゅうするのにたいして、Peer to Peer方式ほうしきはその構造こうぞうじょう、コンピューター機器きき以下いか機器ききすう膨大ぼうだいになっても特定とくてい機器ききへのアクセス集中しゅうちゅう発生はっせいしにくいという特徴とくちょうがある。

P2P通信つうしんいちれいとしては、インターネットに接続せつぞくした一般いっぱんユーザーの複数ふくすうパソコン (PC) 同士どうしたがいのIPアドレスを直接ちょくせつ通信つうしんげられる。P2Pによるネットワークはオーバーレイ・ネットワークひとつにかぞえられる。

実用じつようされたシステムとしてはP2Pデータ配信はいしん、P2P電話でんわ、P2P掲示板けいじばん、P2P放送ほうそう(テレビ、ラジオ)、P2Pグループウェア、P2P分散ぶんさんファイルシステム、P2P-SIP[1]、P2P-DNS、P2P-仮想かそうネットワーク[2]P2P地震じしん情報じょうほうなどがある。またここすうねん[いつ?]商用しょうようてきにも注目ちゅうもくあつめており、とくIP電話でんわSkypeLINEなど)や動画どうが配信はいしんサービスVeohなど)といったおう用例ようれいえてきている。

しかしこれらの応用おうよう技術ぎじゅつ2000年代ねんだい初頭しょとうから実用じつようされはじめた技術ぎじゅつであり、歴史れきしてきにはまだあさく、成熟せいじゅく技術ぎじゅつとなるまでには解決かいけつしなければならない様々さまざま問題もんだいがある(後述こうじゅつ)。そのため現在げんざいでも学術がくじゅつてき研究けんきゅうさかんな分野ぶんやである。また無線むせん通信つうしん使つかわれるモバイルアドホックネットワークもP2Pの一種いっしゅであるが、無線むせんでの通信つうしん可能かのう距離きょりかせぐという特殊とくしゅ使つかかたであるので詳細しょうさい解説かいせつ別項べっこうゆずる。

P2Pの端末たんまつ装置そうち

[編集へんしゅう]

P2Pにおける通信つうしん端末たんまつはピア (peer) とばれるが、トポロジー理論りろんグラフ理論りろんなどでもちいる「ノード」(node: 節点せってん)という呼称こしょうもちいることもおおい。またクライアントの機能きのうとサーバーの機能きのうあわつという意味いみサーバントというかたをすることもある。

端末たんまつ装置そうち種類しゅるいとしてはPCやスマートフォンが使つかわれることがおおいが、セットトップボックス (STB) やHDDレコーダー、HDD内蔵ないぞうルーターといったものもピアになりうる。

インターネットにおけるP2P

[編集へんしゅう]

インターネットの基盤きばんであるIPネットワークIPアドレスさえかっていればどのコンピューター機器きき以下いか機器きき)にも到達とうたつできる。つまり機器きき同士どうし相手あいてのIPアドレスをっていればP2P通信つうしん可能かのうである。したがってインターネットじょうのP2P応用おうよう技術ぎじゅつはIPネットワークのオーバーレイ・ネットワーク(Overlay Network:以下いか、OLNと略記りゃっきする)とることができる。

たとえば放送ほうそうがたサービスにP2Pを応用おうようする場合ばあいマルチキャストかた通信つうしん形態けいたいとなる。そのためこれをオーバーレイマルチキャスト英語えいごばん (Overlay Multicast: OLM) あるいはアプリケーションそうマルチキャスト (Application Layer Multicast: ALM) とぶことがある[3]後者こうしゃかたIPマルチキャストがTCP/IPのレイヤーでのパケットの複製ふくせいによりマルチキャストをおこなうのにたいして、アプリケーションそうでデータのコピーをしてマルチキャストをおこなう、という意味合いみあいからている。

P2Pアプリケーションの分類ぶんるい

[編集へんしゅう]

ピアあいだなにおこなうか、という観点かんてんで、おおきく以下いかの4つのタイプのアプリケーションにけられる。

  1. 一対一いちたいいち通信つうしんがた
  2. 放送ほうそうがた
  3. オンデマンドがた
  4. 分散ぶんさんがたデータ管理かんり

複数ふくすう機能きのうあわったアプリケーションも存在そんざいする。

一対一いちたいいち通信つうしんがた

[編集へんしゅう]

IP電話でんわLINE電話でんわSkype代表だいひょうされるような、コンピューターあいだ一対一いちたいいちのコミュニケーションをおこな使つかかたである。相手あいてのIPアドレスを、電話でんわ番号ばんごうやニックネームなどからつけし(=IPアドレス解決かいけつぶ)、その、ピアとピアが対等たいとう立場たちば通信つうしんおこなう。音声おんせいデータであれば電話でんわとなり、映像えいぞうデータであればテレビ電話でんわとなる。インスタントメッセージやオンラインチャットもある。通常つうじょう、アプリケーションの背後はいご特定とくてい利用りようしゃがいることが想定そうていされており、その人物じんぶつたいして接続せつぞくおこなうような使つかかたおおい。このたねのアプリケーションのほとんどには、相手あいてがオンラインかどうかを認識にんしきする仕掛しかけ(プレゼンス機能きのう)がもうけられている。

このタイプのアプリケーションでは、データは通常つうじょう、リアルタイムでのストリーミングでやりとりされる。

P2P-SIPでは、SIP-URIからIPアドレスをるためにP2P技術ぎじゅつ利用りようしており、従来じゅうらいあったSIPサーバーを不要ふようにできる。アドレス解決かいけつ以外いがいの、接続せつぞく切断せつだんのシグナリング、音声おんせいデータのストリーミングにかんしては、従来じゅうらいSIPやRTP/RTCPの技術ぎじゅつをそのまま利用りようしている。任天堂にんてんどうやボードゲームの一部いちぶアプリでは、オンラインよう双方向そうほうこう通信つうしんにP2P通信つうしん採用さいようしている。

おう用例ようれいIP電話でんわSkypeLINEMSN メッセンジャーP2P-SIP、P2Pグループウェア、リアルタイムオンラインゲーム

放送ほうそうがた

[編集へんしゅう]

ノードあいだ接続せつぞくを、カスケードじょう多段ただん階層かいそうして、配信はいしんツリーを形成けいせいすることで、放送ほうそうがたのサービスが実現じつげんできる。ツリーの根元ねもとのノードが、放送ほうそうきょくとなり、上流じょうりゅうノードから下流かりゅうノードへ、データをバケツリレーさせることで、ぜん参加さんかノードに、ほぼ同時どうじおなじデータを配信はいしんすることが出来できる。これにより、リアルタイムのストリーミング中継ちゅうけい可能かのうとなる。

オーバーレイマルチキャストの配信はいしんツリーの概念がいねん

おおくのP2Pがた放送ほうそうシステムでは、アドレス解決かいけつにハイブリッドP2P方式ほうしき後述こうじゅつ)を採用さいようしており、通常つうじょう、チャンネルめいでインデックスサーバーにわせると、「あのノードの下流かりゅうにつながってストリームをもらいなさい」というようにノードを紹介しょうかいしてくれる。インデックスサーバーの役割やくわりかくノードに分散ぶんさんさせる(=ピュアP2PがたOLM)ことも可能かのうではあるが、そのような実装じっそうれいはまだ発表はっぴょうされていない。

上流じょうりゅうノードが脱退だったいしたときに、ストリームが途切とぎれるが、内部ないぶにバッファをつことで、一定いってい時間じかん再生さいせい途絶とだえないようにして、そのあいだに、べつ上流じょうりゅうノードをさがして、さい接続せつぞくおこなう。さい接続せつぞく処理しょりには時間じかんがかかるため、通常つうじょう予備よび上流じょうりゅうノードを用意よういしておく。さい接続せつぞくさき候補こうほのノードを、効率こうりつてき準備じゅんびしておくために、様々さまざま創意そうい工夫くふう考案こうあんされている(詳細しょうさいは、オーバーレイマルチキャストまたはアプリケーションそうマルチキャスト参照さんしょう)。

おう用例ようれい:P2P放送ほうそう映像えいぞう音声おんせい音声おんせいのみ); (PeerCast[4][5][6][7])

オンデマンドがた

[編集へんしゅう]

動画どうがコンテンツの配信はいしんなどでは、コンテンツをほっするノードが、当該とうがいコンテンツをっているノードをさがして、そこへデータを要求ようきゅうすることで、保持ほじノードがそれにおうじてデータを送信そうしんする(オンデマンド)、という一方向いちほうこうがた通信つうしんおこなわれる。いいかえると、っているものからほっするものへ、という通信つうしんである。送信そうしんもとは、使用しようしているコンピューターが複数ふくすうある場合ばあい、どれからでもくて、特定とくてい多数たすうなかからアプリケーションまかせでえらばれる。送信そうしんもとのIPアドレスは、コンテンツのタイトルなどをがかりに、インデックスを検索けんさくしてつけし、コンテンツ保持ほじノードにデータ送信そうしん要求ようきゅうすることで、データ転送てんそう開始かいしされる。

オンデマンドがたのP2Pアプリケーションでは、配信はいしん効率こうりつげるために、コンテンツのコピー(レプリカ)をつくることがおこなわれる。一度いちど取得しゅとくしたコンテンツのコピーを保持ほじして、のノードにたいして提供ていきょう可能かのう状態じょうたいにすることで、だれかが再度さいどおなじコンテンツをリクエストしたときに、負荷ふか分散ぶんさん効果こうか期待きたいできるからである。これはとくに、人気にんきのあるコンテンツにたいしてのアクセス集中しゅうちゅう緩和かんわ効果こうかてきである。レプリカをつくるアプリケーションでは、通常つうじょう、レプリカをキャッシュフォルダーないつくり、ふるいレプリカからすような実装じっそうになっていることがおおい。

オンデマンドがたのP2Pアプリケーションでは、データ全体ぜんたいを、一旦いったんリクエストしたはしまつまではってきてから利用りようする「ダウンロード方式ほうしき」の実装じっそうがほとんどである。

おう用例ようれい:P2Pコンテンツ配信はいしん、P2P掲示板けいじばん、P2Pグループウェア、P2P分散ぶんさんファイルシステム、無線むせんアドホックネットワーク、ゲームソフトのアップデート[8]

分散ぶんさんがたデータ管理かんり

[編集へんしゅう]

ビットコインRippleなどでは、通貨つうか取引とりひき履歴りれき情報じょうほうを、かくノードで分散ぶんさんしてつことによって、通常つうじょうはサーバーで管理かんりする台帳だいちょうデータの不正ふせい改竄かいざんふせぐことができるので、P2Pを利用りようしている。これにより自分じぶんのノードの台帳だいちょうデータをかいざんしたとしても、多数たすうのノードがただしいデータを保持ほじしていることにより、比較ひかくしたさい改竄かいざん検知けんちすることができる。

技術ぎじゅつてき分類ぶんるい

[編集へんしゅう]

インデックス情報じょうほうかたでの分類ぶんるい

[編集へんしゅう]

「こういうデータをっているのはだれですかね?」といういにこたえるためには、データを検索けんさくするための属性ぞくせいキーとデータのありかの対応たいおうひょう(インデックス)をっている必要ひつようがあるが、これをサーバーに集中しゅうちゅうしてたせる場合ばあいと、かくノードに分散ぶんさんしてたせる場合ばあいと、特定とくていえらばれたノードに分散ぶんさんしてたせる場合ばあい、の3種類しゅるい存在そんざいする。

ハイブリッドP2P

[編集へんしゅう]
ハイブリッドP2Pの仕組しくみ(はBitTorrentのもの)。
しい情報じょうほうとなるキーファイルをサーバーにつたえ、実際じっさいのデータはノード同士どうしでやりとりをおこな仕組しく

ハイブリッドP2Pにおいては、インデックス情報じょうほうを、中央ちゅうおうのインデックスサーバーで一括いっかつして管理かんりする。あたらしいデータを保持ほじしたノードは、自分じぶんっていることを、インデックスサーバーに申告しんこくしておく。データをほっするノードが、「このキーに対応たいおうする相手あいておしえてくださいな」とインデックスサーバーにわせると、対応たいおうする相手あいてのIPアドレスをおしえてくれる。インデックスが膨大ぼうだいになると、スケーラビリティがくなるてんが、後述こうじゅつのピュアP2Pとくらべておとるが、通常つうじょう規模きぼのシステムであれば、この方式ほうしき事足ことたりるケースがおおい。インデックスサーバーがダウンすると、システム全体ぜんたい停止ていしするため、たい障害しょうがいせいめんでは、ピュアP2Pにおとる。

BitTorrentNapsterWinMX放送ほうそうがたP2P (オーバーレイマルチキャスト英語えいごばん) のおおくは、この方式ほうしき採用さいようしている。

ピュアP2P

[編集へんしゅう]
ピュアP2Pの仕組しくみ。一切いっさい処理しょりをコンピューター同士どうし対等たいとう通信つうしんおこなうのが特徴とくちょうである。

インデックス情報じょうほうは、かくノードがすこしずつ分散ぶんさんしてう。 自分じぶんっているノードに、「データをっているのはだれですかね?」というメッセージをげると、そのノードがっていれば回答かいとうかえり、らなければ又聞またぎきをしてくれる(メッセージを転送てんそうする)仕組しくみになっている。インデックスが膨大ぼうだいになっても破綻はたんしないため、スケーラビリティがたかい。メッセージ転送てんそう方式ほうしきにより、構造こうぞうタイプと構造こうぞうタイプのふたつに分類ぶんるいできる(後述こうじゅつ)。

GnutellaFreenetOceanStoreWinnyShare は、この方式ほうしき採用さいようしている。

ピュアP2Pに参加さんかするさいには、すで参加さんかしているノードのIP情報じょうほうなんらかのかたちっている必要ひつようがある。このためには、つねきているノード(コンタクトノード)を用意よういしておいて、参加さんかはいつもそこに接続せつぞくするようにするか、あるいは、参加さんかしているいくつかのノードの情報じょうほうをサーバーにあつめて、ここからるように構成こうせいする。

スーパーノードがたP2P

[編集へんしゅう]

インデックス情報じょうほうは、特定とくていえらばれたノード(スーパーノード)が分担ぶんたんしてつ。スーパーノードには、できるだけ安定あんていはしまつ(ずっと電源でんげんはいっていて、通信つうしん回線かいせん安定あんていしていて、帯域たいいきはばふといようなノード)がえらばれる。スーパーノードは、一般いっぱんのエンドユーザーの端末たんまつから能力のうりょくおうじてえらばれるが、サービス提供ていきょうしゃがわ用意よういしたはしまつであることもおおい。

KaZaASkypeは、この方式ほうしき採用さいようしている。

ピュアP2Pの構造こうぞうによる分類ぶんるい

[編集へんしゅう]

ピュアP2Pにおいては、インデックス情報じょうほう分散ぶんさんされてたれるため、相手あいてさきIPアドレスの発見はっけん仕組しくみは、検索けんさくメッセージを転送てんそうすることでおこなわれる。転送てんそう方式ほうしきで、2種類しゅるい分類ぶんるいができる。

構造こうぞうオーバーレイ
わせもとのノードは、キーに対応たいおうする相手あいて発見はっけんするために、手当てあたり次第しだいに、自分じぶんっているノード(かつて通信つうしんをしたことがあるノードなど)にたいして、「データをっているのはだれですかね?」というメッセージをげつけ、ったノードは、っていれば返答へんとうし、っていなければ検索けんさくメッセージをコピーして、のノードに転送てんそうする方式ほうしき。メッセージがネズミ算式さんしきえるので、フラッディング方式ほうしき洪水こうずいという意味いみ)という別名べつめいいているが、メッセージがえすぎないように、転送てんそう回数かいすうやメッセージの生存せいぞん時間じかんなどで制限せいげんをかける必要ひつようがある。そのため、OLNじょうのどこかに相手あいて存在そんざいするにもかかわらず、発見はっけんできない場合ばあいがある。
GnutellaFreenetWinnyShare などで実装じっそうされている。
構造こうぞうオーバーレイ
「データをっているのはだれですかね?」というメッセージを転送てんそうするさいの、転送てんそうさきえら方法ほうほうをあらかじめ構造こうぞうてきめておいて、「キーに対応たいおうする相手あいて」が確実かくじつかるようにした方式ほうしきである。よくられている方式ほうしきとして、DHT(Distributed Hash Table)、SkipGraphなどがある。検索けんさくメッセージの転送てんそうさき範囲はんいが、キーにおうじてだんだんとしぼられていくように設計せっけいされている。概略がいりゃくイメージは、AけんなかのBなかのCまちなか田中たなかさん、というように範囲はんいしぼかたちで、メッセージが転送てんそうされる、とかんがえると理解りかいがしやすい。
DHTの実装じっそうれいとしては、ChordCANPastryTapestryKademliaOpenDHTOverlay Weaverなどがよくられている。

脚注きゃくちゅう

[編集へんしゅう]

出典しゅってん

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]

研究けんきゅう資料しりょう

[編集へんしゅう]

P2P関連かんれん情報じょうほうサイト

[編集へんしゅう]