- Authors

- Name
- Youngju Kim
- @fjvbn20031
本記事は James Kurose, Keith Ross 著 Computer Networking: A Top-Down Approach (6th Edition) の教科書を基にまとめた内容です。
- 1. プロトコル階層化の必要性
- 2. インターネットプロトコルスタック(5層モデル)
- 3. OSI 7層モデルとの比較
- 4. カプセル化(Encapsulation)
- 5. ネットワークセキュリティの基礎
- 6. まとめ
- 7. 確認問題
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層とも呼ばれる。
2.4 リンク層(Link Layer)
ネットワーク層が送信元から宛先までの経路を決定するが、実際にあるノードから次のノードへデータグラムを配信するのはリンク層の役割である。
- イーサネット(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)層である。
- プレゼンテーション層:データ圧縮、暗号化、形式変換を担当
- セッション層:データ交換の同期化、チェックポインティングを担当
インターネットではこれらの機能が必要な場合、アプリケーション開発者が直接実装する。