P2Pノードの一般的な機能
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/13 05:20 UTC 版)
「Peer to Peer」の記事における「P2Pノードの一般的な機能」の解説
P2Pに参加するノードには、以下のような機能が必要となる。ソフトウェアで、これらの機能は実現できる。 参加処理 オーバーレイネットワークに参加するためには、OLNに既に参加しているノードを知っている誰かと、通信を行う必要がある。このノードをコンタクトノードと呼ぶが、そのIPアドレスは、参加前になんらかの方法で知っておく必要がある。コンタクトノードは、常時稼働していることが望ましい。ハイブリッド型P2Pでは、インデックスサーバーが、コンタクトノードの役割も果たしている。参加処理では、コンタクトノードに参加の意志を伝える。すると、すでに参加している別のノードのIPアドレス情報が返送されるので、OLN上の他の誰かと通信ができるようになる。 脱退処理 行儀良く「抜けます」と言ってから抜ける場合と、何も言わずに抜ける場合がある。いきなり電源を切ったり、LANケーブルを抜いたりすると、後者となるので、これを想定した設計とする場合がほとんどである。しかし、脱退通知を行ってから抜けた方が、システムは安定するので、通知が可能な場合は脱退通知を行うように実装することが望ましい。ハイブリッドP2Pでは、インデックスサーバーに対して、脱退通知を行う。ピュアP2Pでは、自分が知っている他のノードに対して、脱退通知を行う。脱退通知を行わない場合(行えない場合)は、通常、周りのノードとKeep-Aliveメッセージを定期的に交換しておくという手法を採る。これがなくなることを周りのノードが判断することで、脱退が認識される。 冗長化 通信相手がいきなり居なくなることを想定して、通信相手の予備候補を常に用意しておくことが重要になる。 例えば、フラッディング方式の場合は、自分の知っているノードすべてにメッセージを重複して投げており、どこかで通信エラーが起きても、複数のメッセージのうちのどれかが通れば、後の処理が続くようになっている。DHTの場合は、メッセージのルーティング経路が複数あるように設計されている。コンテンツ配信の場合は、希望のコンテンツのレプリカを持つノードが常に複数存在するように、キャッシュフォルダー内にレプリカが配置されるように設計する。OLM/ALMの場合は、上流接続を複数持たせてメッシュ状のネットワークを構成しておくような設計が、多く見受けられる。 このように、P2Pの方式やアプリケーションごとに、様々な冗長化が工夫されている。 データの取得と提供(転送) 自分が他ノードからデータを受けると同時に、他のノードに対してデータを提供する、という機能を持たせることが重要である。サーバーにもなりクライアントにもなるということで、サーバント機能とも呼ばれる。 同時に複数の端末へデータを提供する機能を実装すると、システム全体でのデータ利用効率が向上する。この機能は、OLMでは必須となる。複数の端末から同時並行でデータを取得する機能を実装する(複数の端末から少しずつ部分データをもらって後で結合する)と、データ利用効率の向上、応答速度の向上、冗長性の向上などが期待できる。 その他 必要に応じて、以下の機能を実装する。データの公開機能 「私はこういうデータを持っています」と、P2P網に対して宣言する。オンデマンド型のアプリケーションでレプリカをキャッシュさせる場合には、必須機能となる。 NAT越え機能 一般家庭でのブロードバンドルーターを介して利用する場合は、NATにポートフォワード設定を行う必要があるが、これをP2Pアプリケーションが自動的に行うようにする。最近のほとんどのルーターには、UPnP機能が実装されているため、これを用いて、P2Pアプリがルーターにポートフォワードの指示を出すことができる。 データの暗号化、改竄防止機能 一般ユーザーのPC上で、データの改竄が行われる恐れがあるため、これを防止する。 データのリモート削除機能 商用システムの場合、著作権管理の点で、管理者側からリモートでデータ削除を行いたい場合がある。
※この「P2Pノードの一般的な機能」の解説は、「Peer to Peer」の解説の一部です。
「P2Pノードの一般的な機能」を含む「Peer to Peer」の記事については、「Peer to Peer」の概要を参照ください。
- P2Pノードの一般的な機能のページへのリンク