OSI参照モデル
ネットワーク通信を7つの層に分けて整理した“共通の地図”。どの層の話をしているのかが分かると、トラブルの切り分けやプロトコルの理解が一気に楽になる。
- 1.OSI参照モデルは通信機能を 7層(物理・データリンク・ネットワーク・トランスポート・セッション・プレゼンテーション・アプリ)に分けた“共通言語”。
- 2.下から L2=MACでスイッチ、L3=IPでルータ、L4=TCP/UDPでポート、L7=HTTP/DNS とおさえると現場で使える。
- 3.実装の主役は4層の TCP/IP モデル。OSIは“どの層の話か”を指す物差しとして今も使われる。
なぜ層に分けるのか
通信は「電気信号を流す」から「Webページを表示する」まで、性質のまったく違う仕事の積み重ねです。これを1つの塊で考えると手に負えません。役割ごとに層へ切り分けると、
- 関心の分離:各層は すぐ下の層 だけを頼り、すぐ上の層 にサービスを提供する。中身は隠す(カプセル化)
- 差し替えがきく:Wi-Fi から有線に変えても(L1/L2 が変わるだけ)、上の HTTP(L7)はそのまま動く
- 共通言語になる:「これは L3 の問題(ルーティング)」「L7 の問題(アプリ設定)」と切り分けが速くなる
障害対応の第一歩は 層の切り分け です。ping が通る(L3 OK)のに https がつながらないなら、原因は上位層(L4のポート閉塞やL7の設定)に絞り込めます。「下から順に確認」が定石。
7つの層
下(物理)から上(アプリ)へ、各層が何をして、現場で何が出てくるかをまとめます。番号は 下が L1、上が L7 です。
| 層 | 名前 | 役割(何を運ぶ/決める) | 代表プロトコル・機器 |
|---|---|---|---|
| L7 | アプリケーション | アプリが直接使う通信ルール | HTTP, DNS, SMTP, SSH |
| L6 | プレゼンテーション | 文字コード・暗号化・圧縮など表現の変換 | TLS, 文字コード, JPEG |
| L5 | セッション | 通信の開始・維持・終了の管理 | セッション管理, RPC |
| L4 | トランスポート | アプリ間の通信(ポート)と信頼性 | TCP, UDP / ポート番号 |
| L3 | ネットワーク | ネットワークをまたぐ住所付けと経路選択 | IP, ICMP / ルータ, L3SW |
| L2 | データリンク | 同一ネットワーク内の機器同士の転送 | Ethernet, ARP / スイッチ, NIC |
| L1 | 物理 | ビット(0/1)を電気・光・電波で伝送 | ケーブル, 光ファイバ / リピータ, ハブ |
順番を覚えるなら、上から App / Presentation / Session / Transport / Network / Data link / Physical の頭文字で。日本語では「アプ・プレ・セ・トラ・ネット・デー・物理」と唱える人も多いです。
下位3層(L1〜L3)— データを“運ぶ”側
- L1 物理層:0/1の信号を物理媒体に乗せるだけ。ケーブル規格やピン配置、電圧の世界
- L2 データリンク層:MACアドレス を使い、同じネットワーク(同一セグメント)内 の相手にフレームを届ける。担当機器は スイッチ
- L3 ネットワーク層:IPアドレス で ネットワークをまたいで 相手まで運ぶ。経路を選ぶのが ルータ の仕事
MACアドレス(L2)は隣の機器まで、IPアドレス(L3)は最終的な相手まで の宛先です。パケットがルータを越えるたび、宛先IPは変わらないのに宛先MACは次のホップへ書き換わります。「IPは変わらず、MACは1ホップごとに変わる」が肝。
上位4層(L4〜L7)— データを“使う”側
- L4 トランスポート層:ポート番号 でアプリを区別し、TCP(順序保証・再送あり)か UDP(速いが無保証)かを選ぶ
- L5 セッション層:通信の論理的な区切り(開始〜終了)の管理
- L6 プレゼンテーション層:文字コード変換・圧縮・暗号化(TLS) など“表現”の調整
- L7 アプリケーション層:HTTP や DNS など、アプリが直接話すプロトコル
現実のプロトコルは1層にきっちり収まりません。たとえば HTTPS の TLS は L5〜L6 あたりにまたがり、実務では「L7の手前のセキュリティ層」と雑に扱われがちです。OSIは 厳密な実装仕様ではなく整理の枠組み と割り切るのが正解。詳しくは /network/tls/ を参照。
TCP/IP 4層モデルとの対応
インターネットを実際に動かしているのは、OSIではなく TCP/IP(4層)モデル です。OSIの細かい上位3層をまとめ、下位2層もざっくり1つにしたものと考えると対応が取れます。
| TCP/IP(4層) | 対応するOSIの層 | 代表例 |
|---|---|---|
| アプリケーション層 | L7 + L6 + L5 | HTTP, DNS, TLS |
| トランスポート層 | L4 | TCP, UDP |
| インターネット層 | L3 | IP, ICMP |
| リンク層(ネットワークインタフェース層) | L2 + L1 | Ethernet, Wi-Fi |
「設計・障害切り分けの会話」では層を細かく指せる OSI(7層) が便利。「実装の話」では実体に近い TCP/IP(4層) で考える。両者は対立ではなく 粒度の違い です。TCP/IPの詳細は /network/tcp-ip/ へ。
カプセル化:層を下りるたび“封筒”が増える
送信側ではデータが上の層から下の層へ渡されるたび、各層が自分のヘッダ(宛先情報など)を付け足します。これが カプセル化 です。受信側は逆に、下から上へ封筒を1枚ずつ開けていきます(非カプセル化)。
- L4 で TCP/UDP ヘッダ(ポート番号)→ セグメント
- L3 で IP ヘッダ(IPアドレス)→ パケット
- L2 で Ethernet ヘッダ(MACアドレス)→ フレーム
つまり「データ → セグメント → パケット → フレーム」と、層を下るごとに呼び名と封筒が増えていきます。
つまずきポイント
- 層番号と方向の混同:番号が小さい L1が物理(下)、大きい L7がアプリ(上)。「7が一番下」ではない
- L2とL3の役割の取り違え:スイッチ=L2(MAC)、ルータ=L3(IP)。最近のL3スイッチは両方やるため曖昧になりがち
- OSIを“実装仕様”だと思い込む:OSIは 整理の物差し。実際のプロトコルが層をまたぐのは普通のこと
- L4とL7のロードバランサ混同:ポートで振り分けるのが L4 LB、URLやヘッダの中身で振り分けるのが L7 LB(/network/proxy-lb/ 参照)
ハンズオン
各層を“見る”コマンドで、机上の知識を手元で確かめてみましょう。
# L2: ARPテーブル(IP↔MAC の対応)を見る
arp -a
# L3: 宛先までの経路(ルータ=L3機器を1ホップずつ)を辿る
traceroute example.com # Windows は tracert example.com
# L3: ICMP で到達性を確認(L3が生きているか)
ping example.com
# L4: いま開いている TCP/UDP ポート(L4の“窓口”)を一覧
ss -tunlp # 旧来は netstat -tunlp
# L7: HTTP のやり取り(アプリ層の中身)を確認
curl -v https://example.com
ping(L3)→ ポート確認(L4)→ curl(L7)と 下の層から順に 切り分ければ、どの層で止まっているかが自然に見えてきます。
ネットワーク Article
OSI参照モデルを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
OSI
比較で見る軸
難易度: basic / カテゴリ: ネットワーク / タグ数: 3
導入後に効く点
下から L2=MACでスイッチ、L3=IPでルータ、L4=TCP/UDPでポート、L7=HTTP/DNS とおさえると現場で使える。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- basic
- カテゴリ
- ネットワーク
- タグ数
- 3
判断チェックリスト
- 自社の用途が「OSI / ネットワーク基礎」に近いか確認する。
- 強みである「OSI参照モデルは通信機能を 7層(物理・データリンク・ネットワーク・トランスポート・セッション・プレゼンテーション・アプリ)に分けた“共通言語”。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。