Skip to content
Published on

[コンピュータネットワーク] 04. プロトコル階層とサービスモデル

Authors

本記事は James Kurose, Keith Ross 著 Computer Networking: A Top-Down Approach (6th Edition) の教科書を基にまとめた内容です。


1. プロトコル階層化の必要性

インターネットは非常に複雑なシステムである。多数のアプリケーション、様々なエンドシステム、パケットスイッチ、リンク、プロトコルが存在する。

この複雑さを管理するために**階層化(layering)**を使用する。

1.1 航空旅行の比喩

航空旅行も複数の階層に分けることができる:

出発地                              目的地
──────                              ──────
 チケット購入                        手荷物受取
   ↓                                   ↑
 手荷物預け                          手荷物引取
   ↓                                   ↑
 搭乗ゲート                          降機ゲート
   ↓                                   ↑
 離陸                                着陸
   ↓                                   ↑
 航路飛行 ─────────────────────> 航路飛行

各階層は自分の機能を実行し、下位階層のサービスを利用する。

1.2 階層化の利点

  • モジュール化:各階層の内部実装を独立に変更可能
  • 複雑さの管理:全体システムを小さな部分に分けて理解
  • 柔軟性:ある階層のプロトコルを別のものに交換可能

2. インターネットプロトコルスタック(5層モデル)

┌─────────────────┐
│ アプリケーション層 │  Application Layer
├─────────────────┤
│   トランスポート層 │  Transport Layer
├─────────────────┤
│   ネットワーク層   │  Network Layer
├─────────────────┤
│   リンク層        │  Link Layer
├─────────────────┤
│   物理層          │  Physical Layer
└─────────────────┘

2.1 アプリケーション層(Application Layer)

ネットワークアプリケーションとアプリケーション層プロトコルが存在する階層である。

  • HTTP:Web文書の要求と転送
  • SMTP:メール転送
  • FTP:ファイル転送
  • DNS:ドメイン名をIPアドレスに変換

アプリケーション層の情報パケットを**メッセージ(message)**と呼ぶ。

2.2 トランスポート層(Transport Layer)

アプリケーション層のメッセージをエンドシステム間で配信する。

  • TCP:コネクション指向、信頼性のある転送、輻輳制御、フロー制御
  • UDP:コネクションレス、信頼性のない転送、最小限のサービス

トランスポート層のパケットを**セグメント(segment)**と呼ぶ。

TCPサービス:
  ✓ 信頼性のあるデータ配信(再送)
  ✓ フロー制御(受信者の過負荷防止)
  ✓ 輻輳制御(ネットワークの過負荷防止)

UDPサービス:
  ✓ 高速な転送(オーバーヘッド最小)
  ✗ 信頼性保証なし
  ✗ フロー/輻輳制御なし

2.3 ネットワーク層(Network Layer)

あるホストから別のホストへ**データグラム(datagram)**を配信する。

  • IPプロトコル:データグラムのフィールド定義、アドレス体系
  • ルーティングプロトコル:送信元から宛先までの経路決定

ネットワーク層のパケットを**データグラム(datagram)**と呼ぶ。

ネットワーク層の2つの核心機能:
  1. フォワーディング(Forwarding):パケットを適切な出力リンクへ移動
  2. ルーティング(Routing):送信元-宛先間の経路決定

IPプロトコルは1つしかないため、ネットワーク層は一般にIP層とも呼ばれる。

ネットワーク層が送信元から宛先までの経路を決定するが、実際にあるノードから次のノードへデータグラムを配信するのはリンク層の役割である。

  • イーサネット(Ethernet)
  • WiFi(802.11)
  • PPP

リンク層のパケットを**フレーム(frame)**と呼ぶ。

経路:A → R1 → R2 → R3 → B

リンク層の役割:
  A --[イーサネット]--> R1 --[WiFi]--> R2 --[PPP]--> R3 --[イーサネット]--> B

  各区間(リンク)ごとに異なるリンク層プロトコルを使用できる。

2.5 物理層(Physical Layer)

リンク層がフレーム単位でデータを配信するのに対し、物理層はフレーム内の個々のビットを1つのノードから次のノードへ移動させる。

  • 実際の電気信号、光信号、無線信号を扱う階層
  • 媒体(銅線、光ファイバー、無線)によりプロトコルが異なる

3. OSI 7層モデルとの比較

ISOが提案した**OSI(Open Systems Interconnection)**モデルは7つの階層で構成される。

OSI 7層               インターネット5層
──────────            ────────────
アプリケーション層 ─┐
プレゼンテーション層─┤── アプリケーション層
セッション層       ─┘
トランスポート層   ──── トランスポート層
ネットワーク層     ──── ネットワーク層
データリンク層     ──── リンク層
物理層            ──── 物理層

プレゼンテーション層(Presentation Layer)

  • データ圧縮、暗号化、データ形式変換
  • インターネットモデルではアプリケーションが直接処理

セッション層(Session Layer)

  • データ交換の同期化、チェックポインティング、回復
  • インターネットモデルではアプリケーションが直接処理

インターネットプロトコルスタックでは、プレゼンテーション/セッション層の機能が必要な場合、アプリケーション開発者が直接実装する。


4. カプセル化(Encapsulation)

4.1 カプセル化のプロセス

各階層は上位階層から受け取ったデータに自分のヘッダ情報を追加する。

アプリケーション: [メッセージ]
トランスポート:  [Ht|メッセージ]              ← セグメント
ネットワーク:    [Hn|Ht|メッセージ]           ← データグラム
リンク:         [Hl|Hn|Ht|メッセージ]        ← フレーム
物理:            01011001010110...            ← ビット
階層PDU(Protocol Data Unit)追加されるヘッダ
アプリケーションメッセージ(Message)-
トランスポートセグメント(Segment)トランスポート層ヘッダ
ネットワークデータグラム(Datagram)ネットワーク層ヘッダ
リンクフレーム(Frame)リンク層ヘッダ

4.2 全体のカプセル化フロー

送信元ホスト           ルーター              宛先ホスト
┌──────────┐    ┌──────────────┐    ┌──────────┐
│アプリケーション│    │              │    │アプリケーション│
├──────────┤    │              │    ├──────────┤
│トランスポート│    │              │    │トランスポート│
├──────────┤    ├──────────────┤    ├──────────┤
│ネットワーク │    │  ネットワーク │    │ネットワーク │
├──────────┤    ├──────────────┤    ├──────────┤
│  リンク    │    │   リンク     │    │  リンク    │
├──────────┤    ├──────────────┤    ├──────────┤
│  物理     │    │   物理       │    │  物理     │
└──────────┘    └──────────────┘    └──────────┘

ホスト:5つの階層すべてを実装
ルーター:下位3階層のみ実装(ネットワーク、リンク、物理)
スイッチ:下位2階層のみ実装(リンク、物理)

5. ネットワークセキュリティの基礎

5.1 初期のインターネットとセキュリティ

初期のインターネットは信頼できる少数のユーザーのみが使用することを前提に設計された。そのため、セキュリティは元の設計に含まれていなかった。

今日、ネットワークセキュリティは不可欠であり、以下のような脅威が存在する。

5.2 主要なネットワークセキュリティの脅威

マルウェア(Malware)

マルウェアの種類:
  ├── ウイルス(Virus):ユーザーの操作で感染
  ├── ワーム(Worm):自動的にネットワークを通じて伝播
  ├── トロイの木馬(Trojan):正常なソフトウェアに偽装
  └── ボットネット(Botnet):感染したコンピュータのネットワーク

サービス拒否攻撃(DoS:Denial of Service)

ネットワーク、ホスト、またはインフラを正規ユーザーが使用できなくする攻撃である。

DoS攻撃の3つのタイプ:
  1. 脆弱性攻撃:特定の脆弱性を利用
  2. 帯域幅洪水:大量のパケットでリンクを飽和
  3. 接続洪水:半開き接続(half-open)を大量生成

DDoS(Distributed DoS):複数の送信元から同時に攻撃

  ボットネットPC1 ──┐
  ボットネットPC2 ──┼──> 攻撃対象サーバー(過負荷)
  ボットネットPC3 ──┤
  ...              ──┘

パケットスニッフィング(Packet Sniffing)

共有メディア環境で通過するパケットのコピーを傍受する行為である。

共有メディア(WiFi等):
  A ──────────────── B
       └── スニッファー(パケット盗聴器)
           すべてのパケットのコピーを受信

IPスプーフィング(IP Spoofing)

偽の送信元IPアドレスを持つパケットを生成し、他のユーザーになりすます攻撃である。

攻撃者が送信元IPを偽造:
  実際のIP:192.168.1.100
  偽造IP:10.0.0.1(信頼されたホスト)

  サーバーはパケットが信頼されたホストから来たと誤認

5.3 セキュリティの重要原則

ネットワークセキュリティの核心要素:
  ├── 機密性(Confidentiality):送受信者のみが内容を理解
  ├── 完全性(Integrity):転送中のデータ改ざんを検出
  ├── 認証(Authentication):相手の身元確認
  └── 可用性(Availability):サービスが常に利用可能

6. まとめ

インターネットプロトコルスタックの要約:

階層               PDU        核心プロトコル     役割
──────            ──────     ────────────    ──────
アプリケーション   メッセージ  HTTP,SMTP,DNS   ネットワークアプリケーション
トランスポート     セグメント  TCP, UDP        エンドツーエンドデータ配信
ネットワーク       データグラム IP              ホスト間ルーティング
リンク             フレーム    イーサネット,WiFi 隣接ノード間配信
物理               ビット     -               ビットの物理的転送

カプセル化の核心:

  • 各階層は上位階層のPDUを**ペイロード(payload)**として扱い、自分のヘッダを追加する
  • 受信側では各階層が自分のヘッダを除去し上位階層に渡す(デカプセル化

7. 確認問題

Q1. インターネット5層モデルにおける各階層のPDU名称は?
階層PDU
アプリケーションメッセージ(Message)
トランスポートセグメント(Segment)
ネットワークデータグラム(Datagram)
リンクフレーム(Frame)
物理ビット(Bit)
Q2. ルーターは何階層を実装するか?

ルーターは下位3階層(物理、リンク、ネットワーク)を実装する。ルーターはIPデータグラムのヘッダを確認してフォワーディング決定を行うためネットワーク層まで必要だが、トランスポート層とアプリケーション層は実装しない。

Q3. OSIモデルでインターネットモデルにない2つの階層は?

プレゼンテーション(Presentation)層セッション(Session)層である。

  • プレゼンテーション層:データ圧縮、暗号化、形式変換を担当
  • セッション層:データ交換の同期化、チェックポインティングを担当

インターネットではこれらの機能が必要な場合、アプリケーション開発者が直接実装する。