【入門】OSI 参照モデル、TCP/IP モデルの説明と違いを解説

OSI 参照モデルOSI 参照モデルとは、通信に必要な機能を7つの階層に分割した以下のモデルです。
OSI 参照モデル 階層名機能イメージ画像
L7アプリケーション層アプリケーションごとの機能
L6プレゼンテーション層データ形式の変換
L5セッション層通信の開始から終了までを管理
(どの通信が1まとまりか?)
L4トランスポート層通信の信頼性を確保
L3ネットワーク層通信経路の選択
ネットワーク間の通信
L2データリンク層直接繋がったノードの通信
L1物理層ケーブルの形状
信号⇔ビット列の変換
L = Layer

OSI 参照モデルは、他社の機器と通信が行うために策定されました。

例えば、「A 社のケーブルと、B 社のスイッチは、他社製品なので繋がりません!!」

というのは不便すぎます。そこで、機能を階層分けし、各階層ごとに国際標準を決めました。

これにより、同じ層の機器には共通の機能があるので、他社の機器でも繋がるようになりました。

TCP/IP モデルTCP/IP モデル とは、通信機能を4階層に分けたモデルです。
TCP/IP モデル 階層名役割イメージ画像
L4アプリケーション層アプリケーション毎の機能
L3トランスポート層アプリケーションの識別
接続の開始・終了処理を行う
通信の信頼性の確保
L2インターネット層通信経路の選択
ネットワーク間の通信
L1ネットワーク
インターフェイス層
直接繋がったノードの通信
接続 = TCP コネクションの意味で使用。通信経路が変わっても、両端に到達可能な場合はコネクションが維持される

TCP/IP モデルと OSI 参照モデルの違い

TCP/IP モデルは実践的で、OSI 参照モデルは教育的なモデルと言われてます。

TCP/IP モデルOSI 参照モデル
仕様実装しながら決める厳密に定義
プログラム作りながら仕様を決める※仕様を固めてから作る
普及普及した普及してない
用途実践用教育用

TCP/IP は仕様を決める前にプログラムを開発する。と言われるほど実践重視です。

そのため、実際に動作するものを早く作った TCP/IP が一気に普及して現在に至ります。

一方で、OSI 参照モデルはその厳密性から、ネットワークを学ぶ際に人気となっています。

スポンサーリンク

プロトコル

プロトコルプロトコルとは、通信する際のルールです。

TCP/IP モデル、OSI 参照モデルはあくまでモデルのため、実装にはプロトコルが必要です。

OSI と TCP/IP のプロトコル一覧

OSI と TCP/IPプロトコル一覧は、以下のとおりです。

階層階層名OSI プロトコルTCP/IP プロトコル
L7アプリケーション層X.500HTTP, HTTPS, DNS, DHCP,
SSH, MIME, TLS
L6プレゼンテーション層ISO/IEC 8823
X.226
L5セッション層ISO/IEC 8327
X.225
L4トランスポート層ISO/IEC 8073
X.224
TCP, UDP
L3ネットワーク層ISO/IEC 8208
X.25 (PLP)
IP, ICMP, ARP, IPSec
L2データリンク層ISO/IEC 7666
X.25 (LAPB)
イーサネット (有線)
IEEE 802.11(Wi-Fi/無線)
L1物理層X.25 (X.21 bis)
OSI 参照モデルと TCP/IP モデルの階層は完全には一致しない
参考: https://en.wikipedia.org/wiki/OSI_model#Comparison_to_other_networking_suites

OSI プロトコルは実践的でないため、普及しておらずほとんど見た事ないと思います。

一方で、TCP/IP のプロトコルは実践的なため、見た事があるかもしれません。例えば HTTPS は、今使っているブラウザの URL に https:// を使っていることでしょう。

スポンサーリンク

カプセル化 (カプセリング)

カプセル化 (カプセリング)カプセル化とは、上位層のプロトコルのヘッダ (情報) をデータとして扱うことです。
ヘッダもデータもただのビット列なので、意味がわからなければ同じ 0 と 1 の羅列に過ぎない

プロトコルはデータ送信時に、必要な情報をヘッダとして付与し、下位層のプロトコルに渡します

下位層のプロトコルは、上位層のヘッダを単なるデータ (ビット列) の一部として扱います。
※つまり、下位層は上位層のヘッダの意味を理解しなくていい = 階層ごとに機能を分離

カプセルに「データ」と「上位層のヘッダ」を詰め込むイメージ。下位層はカプセルの中身を知る必要がない
例:L6 では、データ = (L7 ヘッダ + データ)
L5 では、データ = (L7 ヘッダ + L6 ヘッダ + データ)
FCS = データの破損チェック

逆に、データ受信時にヘッダを1つずつ取っていくことを「非カプセル化」と言います。

PDU (プロトコルデータユニット)

「ヘッダ + ペイロード (通信したいデータの中身)」を PDU と呼びます。

PDU は階層によって、以下のように呼び方が変わります。

階層名PDU(プロトコルデータユニット)
トランスポート層- TCP セグメント
- UDP データグラム
- メッセージ (プロトコルに依らない呼び方)
ネットワーク層- IP データグラム (IP ヘッダ + トランスポート層のデータ)
- IP パケット (IP ヘッダ + データ)
データリンク層フレーム
物理層ビット(より一般的にはシンボル)
https://jprs.jp/tech/material/rfc/RFC1122-ja.txt
https://en.wikipedia.org/wiki/Protocol_data_unit

パケットは完全なIPデータグラムであるかもしれないし、IPデータグラムのフラグメントかもしれない。

https://jprs.jp/tech/material/rfc/RFC1122-ja.txt (原文から改行を変更)
スポンサーリンク

関連記事

OSI 参照モデルの各層の詳細と、それに対応する TCP/IP プロトコルを紹介は以下です。

OSI 参照モデルTCP/IP モデルTCP/IP プロトコル実装
アプリケーション層アプリケーション層HTTP, DNS, DHCP,
SSH, MIME, TLS
アプリケーション
プログラム
プレゼンテーション層
セッション層
トランスポート層トランスポート層TCP, UDPOS
ネットワーク層インターネット層IP, ICMP, ARP, IPSec
物理層
OSI 参照モデルと TCP/IP モデルは完全に 1:1 ではない。ARPデータリンク層ネットワーク層の間 (詳しくはここ)。

参考記事

3 Minutes Networking
OSI参照モデル - その1
OSI参照モデル - その1。