🤖

OSI参照モデルとTCP/IPモデルについて

2021/05/20に公開

OSI参照モデル

前提知識

まずノードとは、サーバーやコンピュータ、ネットワークを構築するために必要なハードウェア全般を指す言葉

通信におけるルールのことをプロトコルという
例えば...
IP(インターネット・プロトコル)👉通信をするときに使うルール
IPとDNSについて
HTTP(ハイパー・テキスト・トランスファー・プロトコル)👉ホームページを見るときに使うルール
TCP(トランスミッション・コントロール・プロトコル)👉セキュリティ重視で通信するときに使うルール
など

プロトコルを役割ごとにまとめたものをプロトコルスタック、ネットワークアーキテクチャー、プロトコルスイートなどと呼ぶ

世界標準のプロトコルスタックのことをOSI参照モデルと呼びます。
👉 世界共通の通信ルールがまとめられているもの、現在は普及されていない

OSI参照モデルはパケット交換でのプロトコルスタックである
データを小分けにし、その小分けにしたものにヘッダと言われる部分に送信側のアドレスや、受信側のアドレス、データの番号などがある

OSI参照モデルは下位層から特定のサービスを受け、上位層に特定のサービスを提供する
上位層と下位層の間でサービスのやりとりをするときのルールをインターフェースと呼ぶ
👉 通信相手の同じ階層とやりとりするルールをプロトコル

7階層

OSI参照モデルは7階層(レイヤ、L)に分解されます

  1. 物理層👉ビットの列を電圧の高低や光の点滅に変換
  2. データリンク層👉物理層で直接接続されたノード間の通信を可能にする。ビットの列を生成
  3. ネットワーク層👉複数のネットワークで繋がった宛先にデータを届ける役割を持ち、どの経路を使って宛先に送るかを決める
  4. トランスポート層👉宛先のアプリケーションに確実にデータを届ける役目
  5. セッション層👉データの流れる通信路の確率や切断、データ転送に関する管理
  6. プレゼンテーション層👉データ形式、文字データなどアプリケーションが扱う形式に変更したり、下位層が処理できる形式に変更したりする
  7. アプリケーション層👉利用するアプリケーションの中で通信に関する部分を定めている、電子メールやファイル転送など

カプセル化・・・送信データはアプリケーションL7〜L1へと順に処理され信号になる
👉ヘッダがそれぞれの階層で付与される
非カプセル化・・・受信データは逆に信号L1〜L7へと順に処理されアプリケーションに伝達される
👉ヘッダがそれぞれの階層で外される

ヘッダが付いたデータをPDUといい、PDUはレイヤごとに名前が変わる
L1👉ビット、シンボル(電気信号)
L2👉フレーム(ヘッダ以外にトレーラがついてる)
L3👉パケット
L4👉セグメント
L5〜L7👉データ

通信処理の例

L7.👉メッセージの送信ボタンををクリックするとプロトコル処理が走り、宛先はBさんであるというヘッダをつける、もしなんらかのエラーでBがメッセージを受け取れない時はエラーを表示する
L6.👉データを共通な表現形式に変換して、異機種間でもデータの表現形式の整合性をとることができる、符号化方式(文字コードなど)を識別するヘッダがつけられる
L5.👉5つのメッセージを並行して送信するか、一つ一つに分けて送信するかなどのデータをどのような手順で、どうコネクションを確率し、送るか、がヘッダに書かれる
L4.👉コネクションの確率、そして切断を行う(タイミングを決めるのはセッション層)データがきちんと送られていなければ、送り出したデータを識別する印(ヘッダ)にで判断、再送を行う(受信者からレスポンスを受け取る)、信頼性を保証する
L3.👉実際にデータを相手まで届ける処理を行う、受信者のアドレスをヘッダに、パケットの配送処理が行われる
L2.👉L3とやってることは同じだが、受信者に辿り着くまでの区間一つずつでのデータ配達を担う、L2が連続して続くことで、L3が指定してるアドレスまで行くことができる
L1.👉ビットを電圧や光のパルスに変換し、物理的な通信媒体に流し込む

関係する用語

イーサネット・・・LANに関するハードウェアのルールを決めているネットワーク規格、一般的にLANケーブルのルールまたはケーブルのことを指す👉L1〜L2
NIC・・・コンピュータをネットワークに繋ぐ拡張機器、LANケーブルとかイーサネットに対応させるもの、LANケーブルを挿す穴がくっついているパソコンの部品
ハブ(リピータハブ)・・・流れてきた通信を他の隣接のノードに全体に送信するもの👉L1
MACアドレス・・・NICや各ポートに対し製造時に重複なしに付与される番号、フレームの送信先や送信元を識別するために使われる👉L2
スイッチ(スイッチングハブ)・・・流れてきた通信を隣接しているノードの内の宛先にのみ送信することができる、MACアドレスが認識できるもの👉L2
L3スイッチ・・・スイッチをパケット処理できるよう改良したもの、イーサネットでの使用が中心、企業LAN向けに作られている👉L3
ルータ・・・隣接しているノード以外とも通信ができ、異なるネットワークを接続することができるもの(最近はL3スイッチとの差がなくなってきている)👉L3
コネクション型・・・データの送信を開始する前に、送信ホストと受信ホストの間で回線の接続をする、通信の前後にコネクションの確率と切断を行い、相手が通信不可能な場合は無駄なデータを送らずに済む
コネクションレス型・・・コネクションの確率と切断はなく、いつでもデータを送信できる

参照:みんな大好きわわわ超優良動画教材

TCP/IPモデル

前提知識

インターネットを運用するために作られた、デファクトスタンダード(公的機関による標準ではなく、事実上の世界標準)な通信プロトコル
UNIXに搭載されたこと、OSIに比べ早く作れて、技術革新に対応できる改良を行ったため世界で標準化されている
RFCというドキュメントにプロトコルが公開されている

TCP/IPで出てくる様々なプロトコルもOSI参照モデルのそれぞれの層に該当する

OSI TCP/IP
アプリケーション層 アプリケーション層
プレゼンテーション層 アプリケーション層
セッション層 アプリケーション層
トランスポート層 トランスポート層
ネットワーク層 インターネット層
データリンク層 ネットワークインターフェース層
物理層 ハードウェア

ネットワークインターフェース層(データリンク層)

NIC(LANケーブルなどを指す箇所がある物理拡張カード)を動かすためのもので、イーサネットを利用して通信するための階層
NICはただ拡張スロットに入れるだけでは機能しない
OSは拡張機器を認識して、利用できるように設定しなければならず、それを認識するためのソフトウェア、デバイスドライバをインストールする必要がある
つまりNICのデバイスドライバが、イーサネットなどのデータリンクを利用して通信するために必要になる

インターネット層(ネットワーク層)

IPを使用する※IPについて
最終目的のホストまでパケットを届ける

ICMP

TCP/IPが動作する上で補助的な役割を果たすためのプロトコル
IPの制御、メッセージやエラー通知を転送するのに用いられる
本来はトランスポート層に属するプロトコルだが、ルータを超えて他のネットワークと通信する必要がある
なのでIP上で行われることになり、IPよりは上の階層、だが、トランスポートよりは下の階層と言うふうに落ち着いた

トランスポート層

TCP/IPには2つの代表的なトランスポートプロトコルがある(データの送り方)
アプリケーションプログラム間の通信を実現でき、ポート番号という識別子を使って、どのプログラムとどのプログラムが通信してるかを判定する

TCP

データを送る際に相手と仮想的なコネクションを確率し、通信するコネクション型通信
相手を確認しながら通信を行うので、相手が確実にデータを受信したかがわかる
信頼性は高いが、速度は出にくい
フロー制御・・・送信するパケットを受信側の能力に合わせて調整する
誤り制御・・・パケットの送信順番が正しいか、欠損してないか検出
輻輳制御・・・ネットワークの混雑状況をみて送信するパケットを調整し、パケットが破損しないようにする

UDP

コネクションレス型で信頼性が乏しい
その代わり速度が速いので、ビデオや音声などのマルチメディア通信によく使われている

どちらを使うかはOSIでいうセッション層、TCP/IPのアプリケーション層で判断する

アプリケーション層

TCP/IPのアプリケーションの多くはクライアント・サーバーモデルで作られている
サービス提供がサーバー、受ける方がクライアント
クライアントからの要求がいつきても大丈夫なように、この通信モデルはサービスを提供するプログラムはあらかじめ動作させておく
webアクセスで例えると、HTTPがOSIでいうアプリケーション層で、HTMLがプレゼンテーション層のプロトコルになる

GitHubで編集を提案

Discussion