ISO 基本参照モデル (OSI 7 層モデル) #
ISO 基本参照モデル、別名 OSI 参照モデル (Open Systems Interconnection Reference Model) は、ネットワーク通信を 7 つの階層 に分けて整理した、ISO/IEC 7498 として 1984 年に標準化された概念モデルである。「異なるベンダーのコンピュータでも同じプロトコルで通信できるようにする」 という壮大な目標で設計され、ITU-T では同じ内容が X.200 として再公表された。
実際のインターネットを支える TCP/IP モデル (IP / TCP / HTTP) は OSI 完成と並行して既に使われており、最終的に OSI プロトコル群そのものはほとんど普及しなかった。それでも「どの層に問題があるのか」「この機能はどの層が担うべきか」を議論するための 共通言語 として、OSI 7 層モデルはネットワーク技術者・セキュリティエンジニア・障害対応者すべての基礎となっている。
1. OSI 参照モデルの歴史 #
1.1 1970 年代 — プロプライエタリ・プロトコル乱立期 #
1970 年代、メインフレームと端末の接続方式は 完全にベンダー独自 だった。IBM の SNA (Systems Network Architecture, 1974)、DEC の DECnet、Burroughs / Honeywell / Univac もそれぞれ独自方式を持ち、異なるベンダーのコンピュータ同士は事実上通信できない状態。マルチベンダー環境を組もうとすれば、すべての組合せで翻訳ゲートウェイを用意する必要があった。
並行して、米国の ARPANET は 1974 年に Vint Cerf と Bob Kahn が TCP の原型を発表 (RFC 675)、TCP/IP 二層分離の方向で進化していた。しかし当時は研究ネットワーク向けで、商用普及はまだ先。
1.2 1977 年 — ISO/TC97/SC16 設立 #
1977 年、ISO (国際標準化機構) が SC16 (Open Systems Interconnection) を設立。ベンダー中立な標準プロトコル一式 を作る決意である。同年、Charles Bachman (チャールズ・バックマン) を中心に 7 層構造の原案が提案された。「7 」という数は、通信機能をモジュール化する ために議論を重ねて落ち着いた区分けで、各層が「上層に対するサービス提供」「下層からのサービス利用」という整然とした関係を持つよう設計された。
1.3 1984 年 — ISO 7498 公開 #
7 年の議論を経て、1984 年に ISO 7498「Information processing systems — Open Systems Interconnection — Basic Reference Model」が公開。ITU-T (当時 CCITT) も同内容を X.200 として勧告した。OSI モデルは「通信のあるべき姿」を緻密に規定した、極めて完成度の高い理論モデルとなった。
しかし理論モデルの定義と動くプロトコルの実装は別物。同時期に OSI スタックの具体プロトコル群 (X.400 メール、X.500 ディレクトリ、CLNP ネットワーク層、TP4 トランスポート層など) も標準化されたが、これらは「仕様書がぶ厚すぎ、実装が遅い」「多くのベンダーが実装を本気で作らない」という問題を抱えていた。
1.4 1980 年代後半 — 「OSI vs TCP/IP」戦争 #
1980 年代後半、米国政府は OSI 移行を国家戦略とし、GOSIP (Government OSI Profile) で連邦機関に OSI 採用を義務化しようとした。欧州各国の郵電省 (PTT) も OSI 推進。一方で:
- TCP/IP は既に動いていた (BSD UNIX 4.2 で標準実装、1983 年に ARPANET が NCP から切替)
- 無料で使えた (BSD ソース)
- シンプルで実装が短い
加えて、Cisco などが TCP/IP ルータを商用化し、1990 年代の商用インターネット爆発 が決定的に流れを TCP/IP 優位に変えた。1995 年、米国政府は GOSIP を事実上撤回。
1.5 1990 年代以降 — 「OSI モデルだけが残った」 #
OSI プロトコル群 は使われなかったが、OSI の 7 層モデルそのもの はネットワークを語るための共通フレームとして広く採用されていった。「これは L7 の問題」「L2 で完結する処理」「L3 と L4 で分離」のような言い回しは、実装が TCP/IP でも OSI 用語で議論する のが今も標準となっている。
2. 7 層モデルの全体像 #
OSI 参照モデルでは、通信を担う機能を以下の 7 層に分ける。上位ほどアプリに近く、下位ほどハードウェアに近い。各層は すぐ下の層が提供するサービスを利用し、すぐ上の層にサービスを提供する。
3. 各層の役割 #
3.1 第 1 層 — 物理層 (Physical Layer) #
ビット (0/1) を物理的な信号 (電圧・光・電波) として送受信する層。「ケーブルとコネクタとビットの世界」。
責務:
- 電気・光・電波の エンコード (NRZ, Manchester, 4B/5B, PAM など)
- コネクタ形状とピン配列 (RJ-45, SFP, USB-C)
- 電圧レベル / 周波数 / 変調方式
- 同期 (クロック)
代表規格:
- Ethernet PHY (10BASE-T, 1000BASE-T, 10GBASE-SR)
- 光ファイバ (シングルモード / マルチモード)
- 無線 (802.11 PHY, Bluetooth PHY)
- RS-232 / RS-485 / V.24 (シリアル)
- DSL / DOCSIS (家庭用)
障害例: ケーブル断線、コネクタの嵌合不良、SFP モジュール故障、電源ノイズ。ping は通らないが LED も光らないような切り分けはここを疑う。
3.2 第 2 層 — データリンク層 (Data Link Layer) #
隣接した 2 ノード間 でフレームを正しく届ける層。同じ LAN セグメント内、または同じ点対点リンクの両端のやり取り。
責務:
- フレーム化 (start/stop bit や preamble でビット列を意味のある単位に区切る)
- アドレッシング (MAC アドレス: 6 バイト = 48 bit、世界一意)
- 誤り検出 (FCS / CRC)
- メディアアクセス制御 (CSMA/CD, CSMA/CA, トークンパッシング)
- フロー制御 (PAUSE フレーム、Wi-Fi の RTS/CTS)
- VLAN タグ付け (802.1Q)
L2 は内部的に 2 つのサブレイヤに分かれることが多い:
- LLC (Logical Link Control, 802.2) — 上位層との接続
- MAC (Media Access Control) — 媒体アクセス制御
代表プロトコル:
- Ethernet (IEEE 802.3) — 圧倒的シェア
- Wi-Fi (IEEE 802.11)
- PPP (Point-to-Point Protocol)
- ARP — IP→MAC 解決 (厳密には L2.5)
- STP / RSTP — スイッチ間ループ防止
- LACP — リンク集約
スイッチ は L2 機器の代表。MAC アドレステーブルでフレームを適切なポートへ転送する。
3.3 第 3 層 — ネットワーク層 (Network Layer) #
異なるネットワーク をまたいで宛先までパケットを運ぶ層。「世界規模のルーティング」の世界。
責務:
- 論理アドレッシング (IP アドレス)
- 経路選択 (ルーティングテーブル + ルーティングプロトコル)
- フラグメント化 (MTU 超過時)
- エラー通知 (ICMP)
- アドレス変換 (NAT は厳密には L3+L4)
代表プロトコル:
- IPv4 / IPv6 — 主役
- ICMP / ICMPv6 — エラー / 制御
- IPsec — IP レイヤ暗号化 (VPN)
- OSPF / IS-IS — IGP (組織内ルーティング)
- BGP — EGP (AS 間ルーティング、インターネットの背骨)
ルータ は L3 機器の代表。宛先 IP アドレスから経路を選んで転送する。
3.4 第 4 層 — トランスポート層 (Transport Layer) #
エンドホスト同士の論理接続 を担う層。L3 までは「IP アドレスで端末まで」、L4 で「どのアプリ (port) に届けるか」を識別する。信頼性 / 順序 / 多重化 を提供。
責務:
- ポート番号 (16 bit, 0〜65535) でアプリを識別
- コネクション管理 (TCP の 3-way ハンドシェイク)
- 再送制御 / 順序制御 (TCP)
- フロー制御 (TCP の Window)
- 輻輳制御 (TCP の cwnd, BBR, CUBIC)
- 多重化 / 分離 (1 ホスト上の多数接続)
代表プロトコル:
- TCP (Transmission Control Protocol) — 信頼配送 (HTTP, SSH, SMTP)
- UDP (User Datagram Protocol) — ベストエフォート (DNS, VoIP, ゲーム)
- QUIC — UDP ベース、HTTP/3 の土台 (TLS 1.3 内蔵)
- SCTP — マルチストリーム / マルチホーム
- DCCP — UDP に輻輳制御を足したもの
ファイアウォール は L3+L4 で動作するのが基本 (IP / port のフィルタ)。L7 ファイアウォールは更に上位を見る。
3.5 第 5 層 — セッション層 (Session Layer) #
複数のメッセージをまたぐ「対話 (セッション)」 を管理する層。接続の確立・維持・切断・同期点 (チェックポイント) の挿入。
OSI が想定したオリジナルなセッション層は、長い対話の中で同期点を打ち、障害復旧後にそこから再開 できるような重厚な仕組み (X.225 など) だったが、TCP/IP の世界では L4 の TCP / L7 のアプリ自身がセッション管理を兼ねる ため、L5 の独立した存在感は薄い。
代表プロトコル (TCP/IP 文脈で「これが L5」と語られるもの):
- NetBIOS Session Service
- RPC (Remote Procedure Call) のセッション管理
- SOCKS プロキシ
- SIP (Session Initiation Protocol) — VoIP / IMS のシグナリング
- PPTP / L2TP — VPN トンネル
実装上は L5/L6/L7 が渾然一体になっていることが多い。
3.6 第 6 層 — プレゼンテーション層 (Presentation Layer) #
データの「表現形式」変換 を担う層。文字コード、エンコード、圧縮、暗号化 がここに分類される。
責務:
- 文字コード変換 (ASCII ↔ EBCDIC ↔ UTF-8)
- データ符号化 (ASN.1 / BER / DER, JSON, XML, MessagePack)
- 暗号化 (TLS / SSL — 厳密には L4/L5/L6 にまたがる)
- 圧縮 (gzip, deflate)
- メディア変換 (JPEG, MP3, MPEG)
OSI 文脈で TLS は L6 に分類されるが、TCP/IP 実装では「TCP の上、HTTP の下」の薄い層として L4-L7 のどこかに居る、と語られる。
3.7 第 7 層 — アプリケーション層 (Application Layer) #
ユーザのアプリと最も近い層。HTTP, SMTP, DNS, SSH, FTP, IMAP/POP3 など、アプリの目的に合わせた具体的なプロトコルが並ぶ。
ここはアプリ実装側が直接触る世界で、L1〜L6 を「下のスタックがよろしくやってくれる箱」として扱う。OSI モデルの理念は「上層は下層の詳細を知らなくてよい」 で、この理想がもっとも美しく実現しているのが L7。
代表プロトコル:
- HTTP / HTTPS / HTTP/2 / HTTP/3 — Web
- SMTP / IMAP / POP3 — メール
- DNS — 名前解決
- SSH — リモートシェル
- FTP / SFTP — ファイル転送
- NTP — 時刻同期
- SNMP — ネットワーク管理
- MQTT — IoT メッセージング
4. カプセル化 (Encapsulation) と非カプセル化 #
データが上位層から下位層に渡るたびに その層のヘッダ (および時に末尾) が付与 され、最終的に物理層からビット列として送出される。受信側はその逆順で剥がす。これを カプセル化 / 非カプセル化 と呼ぶ。
実際のヘッダサイズ感:
- Ethernet: 14 byte (header) + 4 byte (FCS) = 18 byte
- IP: 20 byte (IPv4) / 40 byte (IPv6)
- TCP: 20 byte (option なし) / 最大 60 byte
- TLS: ハンドシェイク後は 5 byte の record header + AEAD タグ
合計で 数十 byte のヘッダ が必ずペイロードに付くため、MTU 1500 byte の Ethernet で送れる アプリペイロードは ~1460 byte (TCP の場合) 程度になる。
5. OSI モデル と TCP/IP モデル の対応 #
実用される TCP/IP モデルは 4 層 または 5 層 で語られるのが一般的で、OSI 7 層との対応はおおむね以下:
| OSI 層 | TCP/IP 4 層 | TCP/IP 5 層 (DoD) | 代表プロトコル |
|---|---|---|---|
| L7 Application | Application | Application | HTTP, SSH, DNS, SMTP |
| L6 Presentation | (Application 内) | Application | TLS, MIME, JSON |
| L5 Session | (Application 内) | Application | NetBIOS, SOCKS, SIP |
| L4 Transport | Transport | Transport | TCP, UDP, QUIC |
| L3 Network | Internet | Network | IPv4, IPv6, ICMP |
| L2 Data Link | Link | Data Link | Ethernet, Wi-Fi, PPP |
| L1 Physical | (Link 内) | Physical | 銅線, 光ファイバ, 電波 |
OSI L5/L6/L7 を TCP/IP では Application 層に統合、OSI L1/L2 を TCP/IP 4 層では Link 層にまとめる、というのが実装上の流儀。
6. なぜ TCP/IP が勝ったのか #
「ベンダー中立で美しく完成した OSI」が「研究ネットワーク発で雑然とした TCP/IP」に負けた。理由は大きく 4 つ:
1. 動くコードが先にあった TCP/IP は 1983 年に ARPANET で稼働中。OSI プロトコル群は 1980 年代後半でもまだ実装が揃っていなかった。「仕様より実装」が現場の論理だった。
2. シンプルだった TCP/IP は 「動くものを最小限で」 の設計、OSI は 「あらゆるユースケースを織り込む」 の設計。後者は仕様書が分厚く、実装コストが圧倒的に重かった (X.400 メールスタックは ASN.1 BER 含めて文字通り「数千ページ」)。
3. オープンで無料だった BSD の TCP/IP 実装が ソースコードレベルで自由に使えた。OSI スタックは多くがベンダーの商用品で、コストも互換性も問題があった。
4. 学術と商用の両輪 TCP/IP は 大学とベンダーが両側から拡張を持ち寄り、デファクト標準として成長。OSI は 委員会駆動で、現場の声が反映されるまでに何年もかかった。
皮肉な真実: OSI は「美しく完成した規格を定義してから実装する」というウォーターフォール、TCP/IP は「動くものを作って徐々に標準化する」というアジャイル。ソフトウェア開発の歴史と完全に重なる教訓となった。
7. それでも OSI モデルが現役な理由 #
実装は TCP/IP でも、問題切り分けと教育のフレームとしては今も OSI が使われている。
7.1 障害切り分けの共通言語 #
「Web サイトが見えない」というインシデントを切り分けるとき:
- L1: ケーブルは刺さっているか、リンクランプは点いているか
- L2: ARP は引けているか、MAC アドレステーブルに載っているか
- L3: ping (ICMP) で IP まで届くか、ルーティングテーブル正しいか
- L4: 該当 port は開いているか (telnet / nc でポートチェック)
- L5-L7: TLS ハンドシェイク成功しているか、HTTP ステータスは 200 か
「下から順に切り分ける」 (bottom-up troubleshooting) という診断アプローチは、ネットワーク運用の基礎として今も第一線。
7.2 セキュリティ対策のレイヤ分け #
セキュリティ対策も「どの層で守るか」を意識するのが実務常識。
| 層 | 攻撃例 | 対策例 |
|---|---|---|
| L1 | ケーブル盗聴、電磁波傍受 | 物理セキュリティ、シールド |
| L2 | MAC spoofing, ARP poisoning, VLAN hopping | Port Security, DAI, 802.1X |
| L3 | IP spoofing, DDoS, ルーティング詐欺 | uRPF, BCP 38, RPKI |
| L4 | SYN flood, port scan | SYN cookies, ファイアウォール |
| L5-L7 | TLS 中間者, XSS, SQL injection, CSRF | TLS, WAF, 入力検証 |
防御の基本は 「複数層で重層防御」 (Defense in Depth)。
7.3 ベンダー製品の分類軸 #
ネットワーク機器・セキュリティ製品の分類はほぼ OSI 層基準:
- L2 スイッチ (純粋な MAC スイッチ) / L3 スイッチ (ルータ機能内蔵)
- L4 ロードバランサ (TCP/UDP) / L7 ロードバランサ (HTTP 内容を見る、e.g. nginx, F5)
- L4 ファイアウォール / L7 ファイアウォール (WAF)
- L7 プロキシ (HTTP プロキシ, SOCKS は L5)
製品選定でも「何層で動かすか」が議論の出発点になる。
8. まとめ #
ISO 基本参照モデルは「実プロトコルとしては敗れたが、思考の枠組みとしては今なおスタンダード」という稀有な存在である。実装の世界は TCP/IP が支配しているが、「どの層の問題か」「どの層で守るか」「どの層に機能を置くか」を議論するときに、すべての人が共通して使える 7 段階のスケールを提供しているのが OSI モデルの最大の価値。
ネットワークを学ぶ際の入り口として、また実務での障害切り分け・セキュリティ設計・製品選定の言語として、OSI 7 層は最初に押さえ、最後まで使い続ける 概念である。下から積み上げて理解し、上から下まで行き来できるようになると、「なぜ HTTPS が遅い」「なぜ ping は通るのに HTTP が落ちる」のような複合的な問題も、迷わずに切り分けていける。