サーバ・クライアント

サーバやクライアントって何?

サーバ(sever)とは、クライアントからの要求に対して、情報やサービスを提供する役割を担います。
逆に、クライアント(client)は、サーバに対して、情報やサービスを要求して、サーバから得られた情報を利用します。

そして、サーバの役割をするソフトが動いているマシンがサーバマシンになります。 同様に、クライアント用のソフトが動いているマシンがクライアントマシンとなります。 しかし最近のコンピュータでは、サーバの役割のソフトや、クライアントの役割のソフトが既に入っている場合が多く、 クライアントとしてもサーバしても使えます。

インターネットで使われる サーバークライアント間では、 主にTCP/IPを利用した通信で情報のやり取りが行われます。
TCP/IPは、インターネットで使われるたくさんの通信規則の総称で、 IPアドレスポート番号と呼ばれるものを利用します。
インターネットの中では、たくさんのマシンが動き、たくさんのサーバーやクライアントのソフトが動いています。

そして通信において、通信相手のマシンのネットワークハードウェアへ情報を送るためにIPアドレスが使われ、 通信相手の実行中ソフトを特定するためにポート番号が使われます。

インターネットでよく使われるサーバー挙げると、Webサーバー、SMTPサーバー、POP3サーバー、ニュースサーバー、 FTPサーバー、Telnetサーバーなどがあります。
これらサーバーとクライアントが通信するための規則(アプリケーションプロトコル)は、あらかじめ決められており、 それらソフトウェアは、各規則に基づいてその機能が働くようにプログラミングされています。

ピアツーピア(Peer to Peer)ネットワークって何?

サーバ・クライアントと対比して使われる接続通信方式の一つです。
ピアツーピアネットワーク(P2Pネットワーク)は、端末同士が対等な関係で直に接続し、互いの持つデータや機能を利用しあう方式です。 近年はサーバを使わないで、クライアント同士のみで直接に接続する方法をピュアP2P、 サーバを介在させる方法をハイブリットP2P、 複数の端末の一部が、接続を含む管理情報を分担して全体を運営する分散型の方式をスーパーノード型P2Pと呼ぶようです。
つまりサーバを介した場合でも、直に端末同士が対等な関係で通信し合う方法は、P2Pと呼ばれるようです。
ハイブリットP2Pでは、サーバにユーザーIDやアドレスなどのアカウント情報を記憶させ、 接続に関係ないデータは端末に管理させることでサーバ負担が少ないシステムが作れます。

LINEがピアツーピアという話題がありました。 プライベートアドレス端末同士が、インターネットを跨いだ通信をするためには、 それぞれの端末の接続事業者のNATで一時的にグローバルIPの宛先にしないとIPパケットは届かないので、 サーバの介在は必要です。ですからLINEはハイブリットP2Pに分類されるのだと思います。 そして、サーバにアカウント情報を記憶させ、データファイルやトーク履歴などは端末に管理させることで サーバに負担が少ないシステムになっているのでしょう。 このようにサーバを介した場合でも、直に端末同士が対等な関係で通信し合う方法はP2Pになるのですね。
「直に」の言い方が微妙ですが・・

対等の者(Peer、ピア)と言える能力の端末間同士の通信は、おおよそP2Pと呼んでいいのでしょう。

しかしそう考えると、Webブラウザ間の投稿システムも、対等のWebブラウザ間の通信なので、 P2Pと言えないことはない?となって矛盾を感じます。