はじめに
コンピュータネットワークにおいて、P2Pはファイル共有技術であり、ユーザーは主にビデオ、音楽、電子書籍、ゲームなどのマルチメディアファイルにアクセスすることができます。 このネットワーク内の個々のユーザーはピアと呼ばれます。
P2Pの仕組み(概要)
ピア・ツー・ピア・ネットワークは、サーバーを必要とせずにコンピュータのハードウェアとソフトウェアが通信できる仕組みです。 クライアント・サーバー・アーキテクチャとは異なり、P2Pアーキテクチャではリクエストを処理する中央サーバーは存在しません。
さて、あるピアがリクエストをしたとき、複数のピアがそのリクエストされたオブジェクトのコピーを持っている可能性があります。 問題は、それらすべてのピアのIPアドレスをどうやって取得するかです。 これは、P2Pシステムがサポートする基本的なアーキテクチャによって決まります。
このようなアーキテクチャーは次の3つがあります。
- Centralized Directory
- Query Flooding
- Exploiting Heterogeneity
1.
動作
- さて、リクエストしているピアが来るたびに、ピアはそのクエリをサーバーに送信します。
このようなアーキテクチャの大きな問題点は、単一の障害点があるということです。 サーバーがクラッシュすると、P2Pネットワーク全体がクラッシュしてしまいます。 また、すべての処理を1台のサーバーで行うため、膨大な量のデータベースを維持し、定期的に更新しなければなりません。
2.
2.クエリフラッディング
- 中央集権的なアプローチとは異なり、この方法は分散システムを利用しています。
- このオーバーレイ ネットワークでは、ピアはノードと呼ばれ、ピア間の接続はノード間のエッジと呼ばれるため、グラフのような構造になります。
仕組み
- さて、あるピアがあるファイルを要求すると、この要求はすべての隣接するノード、つまり、このノードに接続されているすべてのノードに送信されます。 もし、これらのノードが必要なファイルを持っていない場合、そのノードは自分の隣人にクエリを渡し、それを繰り返します。
- 要求されたファイルを持つピアが見つかると(クエリヒットと呼ばれる)、クエリフラッディングが停止し、ファイル名とファイルサイズをクライアントに送り返します。
Gnutellaは、最初の分散型P2Pネットワークです。
この方法にもいくつかの欠点があります。例えば、クエリは、一致するものが見つからない限り、隣接するすべてのピアに送信しなければなりません。
この方法にもいくつかの欠点があります。
3.異質性を利用する
- このP2Pアーキテクチャは、上述の両方のシステムを利用しています。
- クエリ処理のための中央サーバーがないため、Gnutellaのような分散システムに似ています。
- ただし、Gnutellaとは異なり、すべてのピアを平等に扱うわけではありません。より高い帯域幅とネットワーク接続性を持つピアは高い優先順位を持ち、グループリーダー/スーパーノードと呼ばれます。
KaZaAテクノロジーは、NapsterとGnutellaの両方を利用した例です。
つまり、個々のグループリーダーとその子供のピアがNapsterのような構造を形成します。この技術は、NapsterとGnutellaの両方を利用しています。
機能
- この構造は2つの方法でクエリを処理することができます。
- 1つ目は、スーパーノードが他のスーパーノードに連絡して、そのデータベースを自分のデータベースにマージすることです。
- もう 1 つの方法は、クエリが入ってくると、Gnutella のように、一致するものが見つかるまで近隣のスーパーノードに転送されることです。 このようにクエリフラッディングは存在しますが、各スーパーノードには多くの子ピアがあるため、範囲は限られています。
参考文献-Computer Networking:A Top down Approach By James F. Kurose
この記事はArushi Dhamijaが執筆しました。 GeeksforGeeksを気に入ってくださり、寄稿したいと思われる方は、contribute.geeksforgeeks.orgを使って記事を書いていただくか、 [email protected] までメールでお送りください。 あなたの記事がGeeksforGeeksのメインページに掲載されるのを見て、他のGeeksを助けてください。