Peer to Peer
インデックス情報は、各ノードが少しずつ分散して持ち合う。 自分の知っているノードに、「データを持っているのは誰ですかね?」というメッセージを投げると、そのノードが知っていれば回答が返り、知らなければ又聞きをしてくれる(メッセージを転送する)仕組みになっている。インデックスが膨大になっても破綻しないため、スケーラビリティが高い。メッセージ転送の方式により、非構造化タイプと構造化タイプの2つに分類できる(後述)。
Gnutella、Freenet、OceanStore、Winny、Share は、この方式を採用している。
ピュアP2Pに参加する際には、既に参加しているノードのIP情報を何らかの形で知っている必要がある。このためには、常に活きているノード(コンタクトノード)を用意しておいて、参加時はいつもそこに接続するようにするか、あるいは、参加しているいくつかのノードの情報をサーバーに集めて、ここから知るように構成する。
P2Pに対置される用語としてクライアント・サーバー方式がある。クライアント・サーバー方式ではネットワークに接続されたコンピューターに対しクライアントとサーバーに立場・機能を分離しており、一般的には多数のクライアントに対してサーバーが一つである。クライアントはサーバーとだけ通信でき、あるクライアントが他のクライアントと通信するにはサーバーを介する必要がある。
P2Pではネットワークに接続されたコンピューター同士が対等の立場、機能で直接通信するものである。クライアント・サーバー方式ではクライアント数が非常に多くなると、サーバーおよびその回線に負荷が集中するのに対して、Peer to Peer方式はその構造上、コンピューター機器(以下機器)数が膨大になっても特定機器へのアクセス集中が発生しにくいという特徴がある。
P2P通信の一例としては、インターネットに接続した一般ユーザーの複数パソコン (PC) 同士が互いのIPアドレスを呼び合う直接通信が挙げられる。