🌐

クライアントとサーバそしてIPアドレスまでに

2023/06/22に公開

はじめに

インターネットの仕組みに関しては下記の記事をご参考してください。
https://zenn.dev/bellstone/articles/9656380453114a
前回の記事では簡単な仕組みについて調査いたしました。
今回はインターネット上のデータ通信とIPアドレスについて勉強したことを共有したいと思います。

クライアントとサーバ

良く出るクライアントとサーバは何でしょうか?
その前にパソコンAからパソコンBに「こんにちは👋🏻」というメッセージを送ることを復習してみましょう。

  1. パソコンAからメールを転送する一連のルールに従って(大きさ、出発地、目的地など)分ける。
  2. 分けたデータを二進データに変換する。
  3. ケーブルを通じてデータを転送する。
  4. 転送されたデータをパソコンBから受け取って再度組み立て解釈する。


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


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

そしたら、クライアントはこんな複雑な迷路から出てサーバにメッセージを転送できるのでしょうか?
それがIPアドレスです。

IPアドレス

以下を改めて確認してみましょう。

  1. パソコンAからメールを転送する一連のルールに従って(大きさ、出発地、目的地など)分ける。

クライアントがサーバにデータを送る時には一連のルールに従います。このルールを利用するとクライアントがどのサーバ向けにメッセージを転送するかを保証できます。
このルール中ではIPアドレスということを使ってます。IPアドレスについてウィキペディアで検索してみました。
https://ja.wikipedia.org/wiki/IPアドレス

IPアドレスはInternet Protocolで通信相手を識別するための番号である。インターネットアドレスとも呼ばれる。

上記の内容を参考するとIPアドレスはネットワーク上のパソコンを識別するための番号だと思います。
なので、識別できるIPアドレスを付与します。クライアントからデータを送る時に付与されたIPアドレス(200.200.0.200)を設定します。それであれば、問題なく転送できそうです。

つまり、IPの役割は指定したIPアドレスにデータを転送することです。この時にネットワークパケットという通信単位でデータを転送します。

ネットワークパケット

改めて以下を確認してみましょう

  1. パソコンAからメールを転送する一連のルールに従って(大きさ、出発地、目的地など)分ける。

パケットを転送する時にメッセージだけ転送することではなくルールを従って出発地IPアドレス、目的地IPアドレス、メッセージなどを入れて転送します。

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

これであればIPを使ったら問題なくデータを転送できそうです。

IPの特徴

IPは非連結性、非信頼性という特徴を持ってます。

非連結性

IPはサーバがどの状態か確認しません。なので、パケットを受信するサーバがそもそも存在しない、又は接続できない場合もパケットを転送します。

非信頼性

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

まとめ

今回はクライアントとサーバ、ネットワーク上で装置を識別するIPアドレス、パケットを利用してデータを転送することを勉強しました。
IPアドレスを利用してデータを転送できるが、限界があることも分かりました。

それでは、IPアドレスはパケットを転送することだけ保証するのに、どうやって通信ができるのでしょうか?答えはデータの連結性と信頼性を保証してくれる他のプロトコルにあります。

次回は連結性と信頼性を保証してくれるTCPについて勉強したいと思います。TCPはIPの限界を保証してくれる機能を利用してデータを安定的に転送します。

皆さんにも分かりやすく説明できていればと嬉しいです。

Discussion