【入門】OSI 参照モデル、TCP/IP とは

OSI 参照モデルOSI 参照モデルとは、通信に必要な機能を7つの階層に分割した以下のモデルです。
階層名機能イメージ画像
L7アプリケーション層アプリケーションごとの機能
L6プレゼンテーション層データ形式の変換
L5セッション層接続の開始・維持・終了を管理
※処理自体は4層で実施
L4トランスポート層接続の開始・終了処理を行う
信頼性を確保(エラー訂正、再送)
L3ネットワーク層通信経路を選択する
L2データリンク層直接繋がったコンピュータの通信
L1物理層・ケーブルの形状
・信号⇔ビット列の変換
L = Layer
接続 = TCP コネクションの意味で使用。通信経路が変わっても、両端に到達可能な場合はコネクションが維持される
接続の開始・維持・終了 = セッションの意味で使用。複数のコネクションが含まれる場合もある

OSI 参照モデルは、異なるベンダーの機器と通信が行うために策定されました。

例えば、「エレコムのケーブル(1〜2層)と NEC のルーター(3層)は異なるベンダーなので、繋がりません!!」というのは不便すぎます。

そこで、国際標準として、満たすべき機能を階層分けにした、OSI 参照モデルが作成されました。

スポンサーリンク

プロトコル

プロトコル

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

OSI 参照モデルはあくまでモデルのため、実際には具体的なプロトコルが必要です。

プロトコルは、OSI 参照モデルの各階層の機能を満たすために、様々な種類が存在します。

階層名機能イメージ画像
L7アプリケーション層アプリケーションごとの機能
L6プレゼンテーション層データ形式の変換
L5セッション層接続の開始・維持・終了を管理
※処理自体は4層で実施
L4トランスポート層接続の開始・終了処理を行う
信頼性を確保(エラー訂正、再送)
L3ネットワーク層通信経路を選択する
L2データリンク層直接繋がったコンピュータの通信
L1物理層・ケーブルの形状
・信号⇔ビット列の変換
L = Layer
接続 = TCP コネクションの意味で使用。通信経路が変わっても、両端に到達可能な場合はコネクションが維持される
接続の開始・維持・終了 = セッションの意味で使用。複数のコネクションが含まれる場合もある

なお、通信に必要な複数のプロトコルをまとめたものをプロトコルスイートと言います。

代表的なプロトコルスイート

以下のように、OSI 以外にも様々なプロトコルスイートが存在します。

プロトコルスイート説明
OSIほぼ使ってない。OSI 参照モデルと元にプロトコルを作成
TCP/IP現在1強。デファクトスタンダード
Apple TalkApple 製品で使われていた (過去の話)

OSI プロトコルスイートは複雑すぎて、実装が非常に困難でした。

一方で、TCP/IP はプロトコルの仕様よりも実装できることを重視しています。そのため、現在の通信で最もよく利用されているプロトコルスイートは TCP/IP です。

TCP/IP とは

TCP/IPTCP/IP とは、通信機能を4階層に分けたプロトコルスイートです。

TCP/IP プロトコルスイートの4階層は以下のとおりです。

TCP/IP 階層名役割プロトコル
アプリケーション層アプリケーションごとに異なるHTTP, DNS, DHCP, SMTP
POP, NTP, SSH, SSL/TLS
トランスポート層アプリケーションの識別
信頼性の確保
TCP, UDP
インターネット層ネットワーク間の通信IP, ICMP, IPSec
ネットワーク
インターフェイス層
直接接続したコンピュータの通信
ケーブルや無線 LAN
イーサネット (IEEE 802.3)
ARP, PPP, PPPoE, IPoE

OSI 参照モデルの立ち位置

実際に使われているプロトコルスイートが TCP/IP なら、OSI 参照モデルは不要か?

と言われればそうではありません。

OSI 参照モデルは通信に必要な機能をまとめているため、ネットワークを体系的に学習できます。

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

カプセル化 (カプセリング)カプセル化とは、上位層のプロトコルのヘッダをデータとして扱うことです。

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

この時、上位層のヘッダはデータの一部 (ビット列) として扱います。
(階層ごとに役割を決めてるので、上位層が責任を持つヘッダを下位層が解読しなくていい)

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

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

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

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

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

階層名PDU(プロトコルデータユニット)
トランスポート層セグメント/データグラム
ネットワーク層パケット
データリンク層フレーム
物理層ビット(より一般的にはシンボル)
スポンサーリンク

各層の詳細

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

OSI 参照モデル
スポンサーリンク

参考ページ

3 Minutes Networking
OSI参照モデル - その1
OSI参照モデル - その1。
【図解】コネクションとセッションの違いと具体例 ~TCPやHTTP,TLS,PPPoEでの定義~
コネクションとは セッションとはネットワーク用語で紛らわしい言葉としてコネクションとセッションがあります。この2つの言葉の違いを解説します。まず、コネクションとセッションという単体の言葉だけでは違いを一般的に説明することはできません。各プロ