クライアントとサーバそしてIPアドレスまでに
はじめに
インターネットの仕組みに関しては下記の記事をご参考してください。
前回の記事では簡単な仕組みについて調査いたしました。
今回はインターネット上のデータ通信とIPアドレスについて勉強したことを共有したいと思います。
クライアントとサーバ
良く出るクライアントとサーバは何でしょうか?
その前にパソコンAからパソコンBに「こんにちは👋🏻」というメッセージを送ることを復習してみましょう。
- パソコンAからメールを転送する一連のルールに従って(大きさ、出発地、目的地など)分ける。
 - 分けたデータを二進データに変換する。
 - ケーブルを通じてデータを転送する。
 - 転送されたデータをパソコンBから受け取って再度組み立て解釈する。
 

この時にメッセージを送る方はクライアントメッセージを受信する方はサーバだと言います。
クライアントはサーバーにリクエストという要請をしてサーバーはリクエストに対するレスポンスを応答します。
サーバは他のサーバにリクエスト送るためにクライアントになることもできます。

上記の例はケーブルで連結して簡潔に見えますが、インターネットはルーターを利用した多いケーブルがあるためもっと複雑になります。

そしたら、クライアントはこんな複雑な迷路から出てサーバにメッセージを転送できるのでしょうか?
それがIPアドレスです。
IPアドレス
以下を改めて確認してみましょう。
- パソコンAからメールを転送する一連のルールに従って(大きさ、出発地、目的地など)分ける。
 
クライアントがサーバにデータを送る時には一連のルールに従います。このルールを利用するとクライアントがどのサーバ向けにメッセージを転送するかを保証できます。
このルール中ではIPアドレスということを使ってます。IPアドレスについてウィキペディアで検索してみました。
IPアドレスはInternet Protocolで通信相手を識別するための番号である。インターネットアドレスとも呼ばれる。
上記の内容を参考するとIPアドレスはネットワーク上のパソコンを識別するための番号だと思います。
なので、識別できるIPアドレスを付与します。クライアントからデータを送る時に付与されたIPアドレス(200.200.0.200)を設定します。それであれば、問題なく転送できそうです。

つまり、IPの役割は指定したIPアドレスにデータを転送することです。この時にネットワークパケットという通信単位でデータを転送します。
ネットワークパケット
改めて以下を確認してみましょう
- パソコンAからメールを転送する一連のルールに従って(大きさ、出発地、目的地など)分ける。
 
パケットを転送する時にメッセージだけ転送することではなくルールを従って出発地IPアドレス、目的地IPアドレス、メッセージなどを入れて転送します。

同じくサーバもルールに従って出発地IPアドレス、目的地IPアドレス、メッセージなどを入れて応答します。

これであればIPを使ったら問題なくデータを転送できそうです。
IPの特徴
IPは非連結性、非信頼性という特徴を持ってます。
非連結性
IPはサーバがどの状態か確認しません。なので、パケットを受信するサーバがそもそも存在しない、又は接続できない場合もパケットを転送します。

非信頼性
IPはデータ転送の流れに気にしないため、送った情報が正しく送られたか保証しません。
例えば、転送途中問題が発生してパッケトを失っても気づけないです。
それと、パケットを転送する時にルールに従ってデータをパケットに分割します。パケットはいつも同じ経路を利用しないため、こんにちは👋🏻を送りましたが、こん👋🏻はにちが到着する可能性もあります。

まとめ
今回はクライアントとサーバ、ネットワーク上で装置を識別するIPアドレス、パケットを利用してデータを転送することを勉強しました。
IPアドレスを利用してデータを転送できるが、限界があることも分かりました。
それでは、IPアドレスはパケットを転送することだけ保証するのに、どうやって通信ができるのでしょうか?答えはデータの連結性と信頼性を保証してくれる他のプロトコルにあります。
次回は連結性と信頼性を保証してくれるTCPについて勉強したいと思います。TCPはIPの限界を保証してくれる機能を利用してデータを安定的に転送します。
皆さんにも分かりやすく説明できていればと嬉しいです。
Discussion