ネットワーク基礎
LinuxのTCP/IP、ソケット、ネットワーク設定の基礎を学びます。
目次
OSI参照モデルとTCP/IP
レイヤー構造
┌─────────────────────────────────────────────────────────────┐
│ OSI参照モデル vs TCP/IP │
├─────────────────────────────────────────────────────────────┤
│ │
│ OSI参照モデル TCP/IP プロトコル例 │
│ ┌─────────────┐ │
│ │ 7.アプリケーション │ ┌───────────┐ │
│ ├─────────────┤ │アプリケーション│ HTTP, DNS, SSH │
│ │ 6.プレゼンテーション │ │ │ │
│ ├─────────────┤ └─────┬─────┘ │
│ │ 5.セッション │ │ │
│ ├─────────────┤ ┌─────┴─────┐ │
│ │ 4.トランスポート │ │ トランスポート │ TCP, UDP │
│ ├─────────────┤ └─────┬─────┘ │
│ │ 3.ネットワーク │ ┌─────┴─────┐ │
│ │ │ │ インターネット │ IP, ICMP │
│ ├──────── ─────┤ └─────┬─────┘ │
│ │ 2.データリンク │ ┌─────┴─────┐ │
│ ├─────────────┤ │ネットワーク │ Ethernet, ARP │
│ │ 1.物理 │ │ インターフェース│ │
│ └─────────────┘ └───────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
TCP vs UDP
| 特徴 | TCP | UDP |
|---|---|---|
| 接続 | コネクション型 | コネクションレス |
| 信頼性 | 高(再送、順序保証) | 低(ベストエフォート) |
| 速度 | 遅め | 速い |
| 用途 | HTTP, SSH, データベース | DNS, 動画ストリーミング |
TCPの3ウェイハンドシェイク
┌─────────────────────────────────────────────────────────────┐
│ TCP 3ウェイハンドシェイク │
│ │
│ クライアント サーバー │
│ │ │ │
│ │───── SYN (seq=x) ─────────────────►│ │
│ │ │ │
│ │◄──── SYN+ACK (seq=y, ack=x+1) ─────│ │
│ │ │ │
│ │───── ACK (ack=y+1) ───────────────►│ │
│ │ │ │
│ │◄═══════ 接続確立 ═══════════════════│ │
│ │ │ │
│ │───── FIN ─────────────────────────►│ │
│ │◄──── ACK ──────────────────────────│ │
│ │◄──── FIN ──────────────────────────│ │
│ │───── ACK ─────────────────────────►│ │
│ │
└─────────────────────────────────────────────────────────────┘