ネットワーク通信の仕組みを理解するためには、OSI参照モデルとTCP/IPモデルという2つの階層モデルを押さえておくことが不可欠です。これらのモデルは、複雑なネットワーク通信を論理的な層に分割し、各層がどのような役割を担っているかを明確にします。
本記事では、OSI参照モデルとTCP/IPモデルについて以下の内容を解説します。
- OSI参照モデルの7層それぞれの役割と代表的なプロトコル
- TCP/IPモデルの4層の構造と各層の機能
- 両モデルの対応関係と違い
- なぜネットワークが階層化されているのか
この記事を読むことで、ネットワーク通信の全体像を把握し、各層の役割を説明できるようになります。
前提条件
- コンピュータネットワークの基本的な用語(IPアドレス、パケットなど)を聞いたことがある
- Webブラウザでインターネットを利用した経験がある
特別な環境構築は不要です。概念の理解に重点を置いた内容となっています。
なぜネットワークは階層化されているのか
ネットワーク通信では、データを送信元から宛先へ届けるために多くの処理が必要です。これらの処理を1つの巨大なシステムとして実装すると、開発・保守・拡張が非常に困難になります。
階層化には以下のメリットがあります。
- 関心の分離: 各層は特定の機能に集中でき、他の層の詳細を知る必要がない
- 相互運用性: 同じ層のプロトコルであれば、実装を入れ替えても他の層に影響しない
- 開発効率の向上: 各層を独立して開発・テストできる
- トラブルシューティングの容易さ: 問題が発生した層を特定しやすい
たとえば、Webブラウザ(アプリケーション層)は、データがどのような経路を通って届くか(ネットワーク層)を意識する必要がありません。各層が自分の役割に専念することで、システム全体が効率的に動作します。
OSI参照モデルとは
OSI(Open Systems Interconnection)参照モデルは、1984年にISO(国際標準化機構)によって策定された通信の標準モデルです。ネットワーク通信を7つの層(レイヤー)に分割し、各層の役割を明確に定義しています。
以下の図は、OSI参照モデルの7層構造を示しています。
graph TB
subgraph OSI参照モデル
L7["第7層: アプリケーション層<br/>Application Layer"]
L6["第6層: プレゼンテーション層<br/>Presentation Layer"]
L5["第5層: セッション層<br/>Session Layer"]
L4["第4層: トランスポート層<br/>Transport Layer"]
L3["第3層: ネットワーク層<br/>Network Layer"]
L2["第2層: データリンク層<br/>Data Link Layer"]
L1["第1層: 物理層<br/>Physical Layer"]
end
L7 --> L6
L6 --> L5
L5 --> L4
L4 --> L3
L3 --> L2
L2 --> L1OSI参照モデル各層の役割
第1層: 物理層(Physical Layer)
物理層は、ビット列を電気信号、光信号、または電波として物理的に伝送する層です。
| 項目 | 内容 |
|---|---|
| 主な役割 | ビットの物理的な伝送 |
| データ単位 | ビット(0と1) |
| 代表的な規格 | Ethernet(物理仕様)、USB、光ファイバー |
| 代表的な機器 | リピータ、ハブ、ケーブル |
物理層では、ケーブルの種類、コネクタの形状、電圧レベル、伝送速度などの物理的な仕様を定義します。
第2層: データリンク層(Data Link Layer)
データリンク層は、直接接続された機器間でのデータ転送を担当します。物理層で発生しうるエラーを検出・訂正する機能も持ちます。
| 項目 | 内容 |
|---|---|
| 主な役割 | 隣接ノード間の通信、エラー検出 |
| データ単位 | フレーム |
| 代表的なプロトコル | Ethernet(MAC)、PPP、ARP |
| 代表的な機器 | スイッチ、ブリッジ |
データリンク層では、MACアドレス(物理アドレス)を使用して、同一ネットワーク内の機器を識別します。
第3層: ネットワーク層(Network Layer)
ネットワーク層は、異なるネットワーク間でのデータ転送(ルーティング)を担当します。
| 項目 | 内容 |
|---|---|
| 主な役割 | 論理アドレス指定、ルーティング |
| データ単位 | パケット |
| 代表的なプロトコル | IP、ICMP、IPsec |
| 代表的な機器 | ルータ、L3スイッチ |
ネットワーク層では、IPアドレス(論理アドレス)を使用して、世界中のどこにあるホストにもデータを届けることができます。
第4層: トランスポート層(Transport Layer)
トランスポート層は、エンドツーエンド(端末間)の通信を管理します。データの信頼性や順序制御を提供します。
| 項目 | 内容 |
|---|---|
| 主な役割 | 端末間の通信制御、信頼性の確保 |
| データ単位 | セグメント(TCP)、データグラム(UDP) |
| 代表的なプロトコル | TCP、UDP |
| 代表的な機能 | ポート番号による多重化 |
トランスポート層では、ポート番号を使用して、同一ホスト上の複数のアプリケーションを区別します。
第5層: セッション層(Session Layer)
セッション層は、通信セッションの確立・維持・終了を管理します。
| 項目 | 内容 |
|---|---|
| 主な役割 | セッション管理、同期制御 |
| データ単位 | データ |
| 代表的なプロトコル | NetBIOS、RPC |
| 代表的な機能 | ダイアログ制御、チェックポイント |
現代のインターネットでは、セッション層の機能はアプリケーション層に統合されていることが多いです。
第6層: プレゼンテーション層(Presentation Layer)
プレゼンテーション層は、データの表現形式を管理します。暗号化・復号化や、データ圧縮もこの層の役割です。
| 項目 | 内容 |
|---|---|
| 主な役割 | データ形式の変換、暗号化 |
| データ単位 | データ |
| 代表的な機能 | 文字コード変換、データ圧縮、暗号化 |
| 関連技術 | SSL/TLS、JPEG、ASCII/Unicode |
プレゼンテーション層により、異なるシステム間でデータ形式の違いを吸収できます。
第7層: アプリケーション層(Application Layer)
アプリケーション層は、ユーザーやアプリケーションが直接やり取りする層です。
| 項目 | 内容 |
|---|---|
| 主な役割 | アプリケーションへのネットワークサービス提供 |
| データ単位 | メッセージ |
| 代表的なプロトコル | HTTP、HTTPS、FTP、SMTP、DNS、SSH |
| 代表的なアプリ | Webブラウザ、メールクライアント |
ユーザーが日常的に利用するWebブラウジングやメール送受信は、すべてアプリケーション層のプロトコルを使用しています。
TCP/IPモデルとは
TCP/IPモデル(インターネット・プロトコル・スイート)は、現在のインターネットで実際に使用されている通信モデルです。OSI参照モデルより歴史が古く、1970年代にDARPA(米国防高等研究計画局)によって開発されました。
TCP/IPモデルは4つの層で構成されています。
graph TB
subgraph TCP/IPモデル
T4["アプリケーション層<br/>Application Layer"]
T3["トランスポート層<br/>Transport Layer"]
T2["インターネット層<br/>Internet Layer"]
T1["ネットワークインターフェース層<br/>Network Interface Layer"]
end
T4 --> T3
T3 --> T2
T2 --> T1TCP/IPモデル各層の役割
ネットワークインターフェース層(Network Interface Layer)
ネットワークインターフェース層は、OSI参照モデルの物理層とデータリンク層を統合した層です。
| 項目 | 内容 |
|---|---|
| 主な役割 | 物理的なネットワークへの接続 |
| 対応するOSI層 | 第1層(物理層)+ 第2層(データリンク層) |
| 代表的なプロトコル | Ethernet、Wi-Fi(IEEE 802.11)、PPP |
| 代表的な機能 | フレーム送受信、MACアドレス処理 |
この層は、使用するネットワーク技術(Ethernet、Wi-Fiなど)によって実装が異なります。
インターネット層(Internet Layer)
インターネット層は、OSI参照モデルのネットワーク層に相当します。
| 項目 | 内容 |
|---|---|
| 主な役割 | パケットのルーティング、論理アドレス指定 |
| 対応するOSI層 | 第3層(ネットワーク層) |
| 代表的なプロトコル | IP(IPv4/IPv6)、ICMP、ARP |
| 代表的な機能 | IPアドレス処理、経路選択 |
IPプロトコルは、インターネット全体でデータを転送するための中核的な役割を果たします。
トランスポート層(Transport Layer)
トランスポート層は、OSI参照モデルのトランスポート層と同じ役割を持ちます。
| 項目 | 内容 |
|---|---|
| 主な役割 | 端末間の通信制御 |
| 対応するOSI層 | 第4層(トランスポート層) |
| 代表的なプロトコル | TCP、UDP |
| 代表的な機能 | ポート番号管理、信頼性制御(TCP) |
TCPは信頼性の高い通信を提供し、UDPは軽量で高速な通信を提供します。
アプリケーション層(Application Layer)
アプリケーション層は、OSI参照モデルのセッション層、プレゼンテーション層、アプリケーション層を統合した層です。
| 項目 | 内容 |
|---|---|
| 主な役割 | アプリケーションプロトコルの実装 |
| 対応するOSI層 | 第5層 + 第6層 + 第7層 |
| 代表的なプロトコル | HTTP、HTTPS、FTP、SMTP、DNS、SSH、TLS |
| 代表的な機能 | Webアクセス、メール送受信、名前解決 |
TCP/IPモデルでは、セッション管理やデータ形式変換の機能もこの層に含まれます。
OSI参照モデルとTCP/IPモデルの対応関係
以下の図は、OSI参照モデルとTCP/IPモデルの対応関係を示しています。
graph TB
subgraph OSI["OSI参照モデル(7層)"]
direction TB
O7["第7層: アプリケーション層"]
O6["第6層: プレゼンテーション層"]
O5["第5層: セッション層"]
O4["第4層: トランスポート層"]
O3["第3層: ネットワーク層"]
O2["第2層: データリンク層"]
O1["第1層: 物理層"]
end
subgraph TCP["TCP/IPモデル(4層)"]
direction TB
T4["アプリケーション層"]
T3["トランスポート層"]
T2["インターネット層"]
T1["ネットワークインターフェース層"]
end
O7 -.-> T4
O6 -.-> T4
O5 -.-> T4
O4 -.-> T3
O3 -.-> T2
O2 -.-> T1
O1 -.-> T1両モデルの主な違いは以下のとおりです。
| 観点 | OSI参照モデル | TCP/IPモデル |
|---|---|---|
| 層の数 | 7層 | 4層 |
| 策定時期 | 1984年(ISO) | 1970年代(DARPA) |
| 目的 | 理論的な参照モデル | 実装のためのモデル |
| 上位層の扱い | 3層に分離 | 1層に統合 |
| 下位層の扱い | 2層に分離 | 1層に統合 |
| 現在の用途 | 教育・トラブルシューティング | 実際のインターネット通信 |
OSI参照モデルは理論的なフレームワークとして教育やトラブルシューティングで使用され、TCP/IPモデルは実際のインターネット通信で使用されています。
データの流れ: カプセル化と非カプセル化
データが送信元から宛先へ届くまでに、各層でどのような処理が行われるかを見てみましょう。
カプセル化(送信時)
送信側では、上位層から下位層へデータが渡される際に、各層でヘッダー(制御情報)が付加されます。これをカプセル化といいます。
graph TB
subgraph 送信側
A["アプリケーション層<br/>データ"] --> B["トランスポート層<br/>TCPヘッダ + データ"]
B --> C["インターネット層<br/>IPヘッダ + TCPヘッダ + データ"]
C --> D["ネットワークインターフェース層<br/>フレームヘッダ + IPヘッダ + TCPヘッダ + データ + FCS"]
end各層で付加されるヘッダーの内容は以下のとおりです。
| 層 | 付加されるヘッダー | 主な情報 |
|---|---|---|
| トランスポート層 | TCP/UDPヘッダー | 送信元/宛先ポート番号、シーケンス番号 |
| インターネット層 | IPヘッダー | 送信元/宛先IPアドレス、TTL |
| ネットワークインターフェース層 | フレームヘッダー/FCS | 送信元/宛先MACアドレス、エラー検出 |
非カプセル化(受信時)
受信側では、下位層から上位層へデータが渡される際に、各層でヘッダーが取り除かれます。これを非カプセル化といいます。
graph BT
subgraph 受信側
D["ネットワークインターフェース層<br/>フレームヘッダ + IPヘッダ + TCPヘッダ + データ + FCS"] --> C["インターネット層<br/>IPヘッダ + TCPヘッダ + データ"]
C --> B["トランスポート層<br/>TCPヘッダ + データ"]
B --> A["アプリケーション層<br/>データ"]
endこのように、各層が自分の担当するヘッダーのみを処理することで、関心の分離が実現されています。
代表的なプロトコル一覧
各層で使用される代表的なプロトコルをまとめます。
アプリケーション層のプロトコル
| プロトコル | ポート番号 | 用途 |
|---|---|---|
| HTTP | 80 | Webページの転送 |
| HTTPS | 443 | 暗号化されたWebページの転送 |
| FTP | 20, 21 | ファイル転送 |
| SMTP | 25 | メール送信 |
| POP3 | 110 | メール受信 |
| IMAP | 143 | メール受信(サーバー上で管理) |
| DNS | 53 | ドメイン名の名前解決 |
| SSH | 22 | 暗号化されたリモートログイン |
| Telnet | 23 | リモートログイン(非暗号化) |
トランスポート層のプロトコル
| プロトコル | 特徴 | 主な用途 |
|---|---|---|
| TCP | コネクション型、信頼性あり | Web、メール、ファイル転送 |
| UDP | コネクションレス型、軽量 | DNS、動画ストリーミング、オンラインゲーム |
インターネット層のプロトコル
| プロトコル | 用途 |
|---|---|
| IPv4 | 32ビットアドレスによるパケット転送 |
| IPv6 | 128ビットアドレスによるパケット転送 |
| ICMP | エラー通知、診断(ping) |
| ARP | IPアドレスからMACアドレスへの変換 |
実務での活用例
OSI参照モデルとTCP/IPモデルの理解は、以下のような場面で役立ちます。
ネットワークトラブルシューティング
問題が発生した層を特定することで、効率的にトラブルシューティングできます。
| 確認すべき項目 | 対応する層 | 確認コマンド例 |
|---|---|---|
| ケーブル接続、リンクランプ | 物理層 | 目視確認 |
| MACアドレスの学習 | データリンク層 | arp -a |
| IPアドレス、経路 | ネットワーク層 | ping、traceroute |
| ポートの接続状態 | トランスポート層 | netstat、ss |
| アプリケーションの応答 | アプリケーション層 | curl、ブラウザ |
セキュリティ対策
各層に対応したセキュリティ対策を講じることができます。
| 層 | セキュリティ対策の例 |
|---|---|
| ネットワークインターフェース層 | MACアドレスフィルタリング |
| インターネット層 | ファイアウォール、IPsec |
| トランスポート層 | ポートフィルタリング |
| アプリケーション層 | TLS/SSL、WAF(Web Application Firewall) |
まとめ
本記事では、OSI参照モデルとTCP/IPモデルについて解説しました。重要なポイントを振り返ります。
- OSI参照モデルは7層で構成される理論的な参照モデルで、教育やトラブルシューティングで使用される
- TCP/IPモデルは4層で構成され、実際のインターネット通信で使用されている
- 階層化により、関心の分離、相互運用性、開発効率の向上が実現される
- データは送信時にカプセル化され、受信時に非カプセル化される
- 各層の役割を理解することで、ネットワークのトラブルシューティングやセキュリティ対策が効率的に行える
次回は「IPアドレスとサブネットマスクの基礎」について解説し、ネットワーク層でのアドレス指定の仕組みを詳しく見ていきます。