blog.fuktommy.com

P2Pを定義する

はじめに

以前P2Pという言葉を考えるという文を書いた。 今回は一歩進めて、自分なりにP2Pを定義してみたいと思う。

P2Pはクライアントサーバ(C/S)との比較で語られることが多いが、 この文章ではC/Sの一形態としてP2Pを定義する。

この記事はP2Pの定義を考えてみるの影響を受けて書かれた。

C/Sの定義

C/Sには色々な意味があることは 「P2Pという言葉を考える」で書いた。 ここでは辞書的な意味でのC/Sを採用する。

接続を受け付ける機能をサーバと呼び、 接続する機能をクライアントと呼ぶ。

ノードの定義

1つのまとまりをノードと呼ぶ。 典型的には1台のコンピュータだが、 1台のPCの中に複数のノードを作ることもできるし、 複数のPCで1つのノードを作ることもできる。

1つのノードの中にクライアントとサーバがあるものをサーバントノードと呼ぶ。 クライアントだけを持つノードをクライアントノード、 サーバだけを持つノードをサーバノードと呼ぶ。

P2Pの定義

サーバントノードを必要とするネットワークをP2Pと呼ぶ。

P2Pに当て嵌まる例

電子メール(SMTP)
MTU(メールサーバ)はメールを中継する。 受け付ける機能はサーバであり、別のサーバに送る機能はクライアントである。 中継機能がなければ電子メールは成り立たない。
新月
ノードの自己組織化には互いの通信が必要である。 発信側がクライアント、応答側がサーバである。 記事の中継もするが、これは電子メールと同じである。
Skype
スーパーノードは自己組織化をしていると思われ、 中継ノードが中継を行っていると思われる。 これらは新月と同じである。 またノード同士が直接通信して会話をすることもある。

P2Pに当て嵌まらない例

WWW(ただしDNSを含まない)
サーバノードとクライアントノードだけでも成立する。

まとめ

P2Pを定義した。 この定義は「1つのPCでWebサーバを動かしながら、 別のウェブサイトを見ていたとしたら、それはP2Pなのか」という頓知のような問いに 「それはP2Pではない」という判断を下せる。 またWinMXやWinnyでいうところのポート0のノードが存在しても、 そのネットワークをP2Pと呼ぶことができる。

ノードの定義に曖昧性が残るが、 実装に依ってしまうのでうまくいかない。

Copyright© 1998-2014 Fuktommy. All Rights Reserved.
webmaster@fuktommy.com (Legal Notices)