Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 8.62 KB

TCPIP.md

File metadata and controls

80 lines (61 loc) · 8.62 KB

TCP/IPの概要

© 2020 Kubota Hideya All Rights Reserved.

プロトコル

通信をするときには、送り手と受け手で同じルール を共有する必要があります。 人間で例えてみると、片方が日本語で話しかけたのに、もう一方が英語でお返事をしたのでは.コミュニケーションが成り立ちませんよね。 それと同じです。

ネットワークの分野では実際に通信を行う際に使われるルールをルールと呼ばず 「プロトコル」 と呼ぶのです。

TCP/IPモデル

ネットワークを勉強する際に、最初に理解しておかなければならない概念は「 TCP/IPモデル 」です。TCP/IPモデルは米国国防高等研究計画局(DARPA)がコンピュータの通信機能を階層構造に分けて整理したモデルです。正直、はじめのうちは「 頭の良い人たちが作った通信するときのプロトコルの集まり 」程度の認識でOKです。

TCP/IPでは, ネットワークを5つの段階に分けて 考えます。各段階を 層(レイヤー) といい、層を分けることを 階層化 と言います。 TCP/IPの階層化では、それぞれのレイヤーが全く違う役割を持ち、別々の動作 するようになっています。こうすることにより、あるレイヤーが 他のレイヤーに影響に及ぼすことがないようにする ことはもちろん、システムに何らかの以上が発生した際に レイヤーごとに検証を行なっていくこと が可能です。

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モデルは ネットワークのプロトコル集まり
  • アプリケーション層は 特定のアプリケーションの通信を可能にする役割 を持つ。
  • トランスポート層は データを通信に適した形に変換する役割 を持つ。
  • ネットワーク層は 他のコンピュータデータを送るための経路の決定する役割 を持つ。
  • データリンク層は 回線やネットワークで物理的に接続された機器同士のデータの送受信を管理する役割 を持つ。
  • 物理層は データを電気信号や光信号に変換する役割 を持つ。
  • カプセル化は 各階層のデータの前と後ろに情報を取り付ける こと。
  • 非カプセル化は 前と後ろに取り付けたデータを外す こと。
  • トランスポート層ではアプリケーションデータを 一定の大きさ(パケット)に分割 する。