© 2020 Kubota Hideya All Rights Reserved.
通信をするときには、送り手と受け手で同じルール を共有する必要があります。 人間で例えてみると、片方が日本語で話しかけたのに、もう一方が英語でお返事をしたのでは.コミュニケーションが成り立ちませんよね。 それと同じです。
ネットワークの分野では実際に通信を行う際に使われるルールをルールと呼ばず 「プロトコル」 と呼ぶのです。
ネットワークを勉強する際に、最初に理解しておかなければならない概念は「 TCP/IPモデル 」です。TCP/IPモデルは米国国防高等研究計画局(DARPA)がコンピュータの通信機能を階層構造に分けて整理したモデルです。正直、はじめのうちは「 頭の良い人たちが作った通信するときのプロトコルの集まり 」程度の認識でOKです。
TCP/IPでは, ネットワークを5つの段階に分けて 考えます。各段階を 層(レイヤー) といい、層を分けることを 階層化 と言います。 TCP/IPの階層化では、それぞれのレイヤーが全く違う役割を持ち、別々の動作 するようになっています。こうすることにより、あるレイヤーが 他のレイヤーに影響に及ぼすことがないようにする ことはもちろん、システムに何らかの以上が発生した際に レイヤーごとに検証を行なっていくこと が可能です。
TCP/IPの構想はこのような5つの階層に別れており、上に行くほどユーザーに、下に行くほど機器に近い作業を担当します。
階層名 | 役割 | プロトコル例 |
---|---|---|
アプリケーション層 | 特定のアプリケーションの通信を可能にする | HTTP, SMTP, POP3 |
トランスポート層 | データを通信に適した形に変換する | TCP, UDP |
ネットワーク層 | 他のコンピュータデータを送るための経路の決定する | IP |
データリンク層 | 回線やネットワークで物理的に接続された機器同士のデータの送受信を管理する | イーサネット |
物理層 | データを電気信号や光信号に変換する | 通信媒体に依存 |
TCP/IPではプロトコルの組み合わせを変更することにより、様々なアプリケーションに対応できるようになっています。 例えば、電子メールの送信なら「SMTP+TCP+IP+イーサネット」, 受信なら「POP3+TCP+IP+イーサネット」など 「何をするか」によって利用するプロトコルの組み合わせが変わります 。
データリンク層と物理層を合わせて、「ネットワークインターフェース層」 ということもあるそうです。
ネットワークの通信ではTCP/IPモデルのレイヤーを越えるたびにデータを付加したり、取り除いたりします。データを送り出すサーバーでは、 通信に必要なデータを付加する「カプセル化」 が行われ、データを受け取るクライアント側では、不要になったデータを取り除く「非カプセル化」 が行われます。
難しく書いていますが、「カプセル化は各階層のデータの前と後ろに情報を取り付ける」と「非カプセル化は前と後ろに取り付けたデータを外す」という認識でOKです。
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQi8Pt2oFaJxdddrIcOEo5CZBj_pTWHSuBMNGGO3_1ry89WE7nRXwxLC5XoxRYDFA4vVRV-IXa1icSF/embed?start=false&loop=false&delayms=60000" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" style="margin:18px 0;width: 100%; height:420px;"></iframe>サーバーでは、 レイヤーの上位から下位に向かって、カプセル化 の処理を行い、転送用のデータを作成します。
工程 | 行う処理 |
---|---|
工程1 | 【 アプリケーション層 】 ・送信したいデータに 通信を行う際に必要な情報を付加 する。 ・このデータをトランスポート層へ渡す。 |
工程2 | 【 トランポート層 】 ・アプリケーションデータを 一定の大きさに分割 する。 ・分割したデータに 再度組み立てるための情報を付加 する。 ・このデータを セグメント と呼ぶ。 ・生成したセグメントをネットワーク層に渡す。 |
工程3 | 【 ネットワーク層 】 ・セグメントに 送信先のコンピュータのアドレス(IPアドレス) などを記載する。 ・このデータを 「パケット」 と呼ぶ。 ・データリンク層に渡す。 |
工程4 | 【 データリンク層 】 ・パケットに宛先のコンピュータの識別番号(MACアドレス) などを記載する。 ・これを 「フレーム」 と呼ぶ。 ・フレームを物理層に渡す。 |
工程5 | 【 物理層 】 ・フレームを信号に乗せやすい ビット(1と0のみのデータ)に変換 する。 ・それを電気信号や光信号にして送る。 |
クライアントではサーバーとは逆に レイヤーの下流から上流に向かって非カプセル化 の処理を行い、受け取った通信用のデータからオリジナルのアプリケーションデータを取り出してます。
工程 | 行う処理 |
---|---|
工程1 | 【 物理層 】 ・電気信号や光信号ををビットに変換した ・それを フレームに変換して、データリンク層に渡す。 |
工程2 | 【 データリンク層 】 ・フレームからパケットを取り出して、ネットワーク層に渡す。 |
工程3 | 【 ネットワーク層 】 ・パケットのヘッダーに書き込まれた宛先が正しいのかを確認する。 ・パケットからセグメントを取り出して、データリンク層に渡す。 |
工程4 | 【 トランポート層 】 ・セグメントのヘッダーを確認して、データを順番通りに並べて組み立てる。 ・データに問題があればプロトコルに従って対応する。 ・アプリケーション層に組み上げたデータをアプリケーションデータとして送る。 |
工程5 | 【 アプリケーション層 】 ・アプリケーションデータのヘッダーに記載されたプロトコル(HTTP,SMTPなど)に従って、クライアントアプリケーションに渡す。 |
トランスポート層には「データを通信に適した形に変換する」という役割があります。その具体的な内容は「アプリケーションデータの分割」です。 一度に送るデータの大きさが大きすぎると、そのデータが1つの回線をずっと使い続けてしまい、同時に様々なデータが送られる場合にそれらを並列処理することが出来ません。
その為、TCP/IPではアプリケーションデータを 一定の大きさに分割 して送受信する パケット交換 という方法でデータのやり取りを行います。 また、このような通信方法を パケット通信 といいます。
- プロトコル = 「ルール」
- TCP/IPモデルは ネットワークのプロトコル集まり 。
- アプリケーション層は 特定のアプリケーションの通信を可能にする役割 を持つ。
- トランスポート層は データを通信に適した形に変換する役割 を持つ。
- ネットワーク層は 他のコンピュータデータを送るための経路の決定する役割 を持つ。
- データリンク層は 回線やネットワークで物理的に接続された機器同士のデータの送受信を管理する役割 を持つ。
- 物理層は データを電気信号や光信号に変換する役割 を持つ。
- カプセル化は 各階層のデータの前と後ろに情報を取り付ける こと。
- 非カプセル化は 前と後ろに取り付けたデータを外す こと。
- トランスポート層ではアプリケーションデータを 一定の大きさ(パケット)に分割 する。