タイトル: アプリケーション層(第7層)
SEOタイトル: OSI 第 7 層 (アプリケーション層) 完全ガイド|HTTP/HTTPS/FTP/SMTP/DNS/SSH と L7 LB
| この記事の要点 |
|
アプリケーション層とは
OSI 参照モデルの 7 層構造の中で最上位 (第 7 層) に位置する層です。ユーザーや業務アプリケーションが直接利用するプロトコル群が集まり、ブラウザでの Web 閲覧、メール送受信、ファイル転送、リモートログイン等、私たちが「ネットワークを使う」と意識する場面のほとんどはこの層の上で起きています。
OSI 7 層モデル全体像
| 層 | 名前 | 主な役割 | 例 |
|---|---|---|---|
| 7 | アプリケーション | 具体的サービス | HTTP, SMTP, DNS |
| 6 | プレゼンテーション | 文字コード, 暗号化, 圧縮 | TLS, JPEG, ASCII |
| 5 | セッション | セッション管理 | NetBIOS, RPC |
| 4 | トランスポート | 信頼性 | TCP, UDP |
| 3 | ネットワーク | ルーティング | IP, ICMP |
| 2 | データリンク | 同一セグメント転送 | Ethernet, PPP |
| 1 | 物理 | 電気信号 | 1000BASE-T, 光ファイバ |
代表的なアプリケーション層プロトコル
Web 系
| プロトコル | ポート | 用途 |
|---|---|---|
| HTTP | TCP/80 | Web 閲覧 (平文) |
| HTTPS | TCP/443 | Web 閲覧 (TLS) |
| HTTP/2 | TCP/443 | 多重化、ヘッダ圧縮 |
| HTTP/3 (QUIC) | UDP/443 | UDP ベース、0-RTT 再接続 |
| WebSocket | TCP/80, 443 | 双方向リアルタイム通信 |
メール系
| プロトコル | ポート | 用途 |
|---|---|---|
| SMTP | TCP/25, 587 (Submission) | メール送信 |
| SMTPS | TCP/465 | SMTP over TLS |
| POP3 | TCP/110, 995 (TLS) | メール受信 (削除型) |
| IMAP | TCP/143, 993 (TLS) | メール受信 (サーバ保持) |
ファイル転送・リモート
| プロトコル | ポート | 用途 |
|---|---|---|
| FTP | TCP/21 (制御), 20 (データ) | ファイル転送 (平文、非推奨) |
| FTPS | TCP/990 等 | FTP over TLS |
| SFTP | TCP/22 | SSH 上のファイル転送 |
| SSH | TCP/22 | 暗号化リモートシェル |
| Telnet | TCP/23 | 平文リモートシェル (非推奨) |
| RDP | TCP/3389 | Windows リモートデスクトップ |
基盤系
| プロトコル | ポート | 用途 |
|---|---|---|
| DNS | UDP/53, TCP/53 | 名前解決 |
| DHCP | UDP/67, 68 | IP 自動割当 |
| NTP | UDP/123 | 時刻同期 |
| SNMP | UDP/161, 162 (Trap) | ネットワーク監視 |
| LDAP | TCP/389, 636 (TLS) | ディレクトリサービス |
| NFS | TCP/UDP 2049 | UNIX ファイル共有 |
| SMB/CIFS | TCP/445 | Windows ファイル共有 |
TCP/IP モデルでの位置づけ
実際のインターネットで使われる TCP/IP モデル (4 層) では、OSI の L5 ~ L7 がまとめて「アプリケーション層」として扱われます:
| TCP/IP モデル | OSI 対応 |
|---|---|
| アプリケーション | L5 セッション + L6 プレゼン + L7 アプリ |
| トランスポート | L4 |
| インターネット | L3 |
| ネットワークインターフェース | L1 + L2 |
L7 ロードバランサ (Application Load Balancer)
L7 LB は HTTP / HTTPS の中身を解析してルーティングを変えられます。L4 LB が TCP/UDP ポートしか見ないのに対し、URL パスや Host ヘッダ、Cookie で振り分けが可能。
# AWS Application Load Balancer のルーティング例
- Host: api.example.com → API ターゲットグループ
- Host: example.com / Path: /admin/* → 管理画面ターゲットグループ
- Host: example.com / Header: X-Beta:1 → ベータ環境ターゲットグループ
- Default → Web ターゲットグループ
# できること
- パスベース / ホストベースルーティング
- Sticky Session (Cookie ベース)
- HTTP/2, gRPC 対応
- TLS 終端 / SNI ベース複数証明書
WAF (Web Application Firewall)
WAF は L7 の知識を使って Web アプリへの攻撃を防御します:
- SQL インジェクション: クエリパラメータ・本文の SQL 構文を検知
- XSS:
<script>等のスクリプトタグを検知 - パストラバーサル:
../の検知 - レート制限: 単一 IP からの大量リクエスト遮断
- Bot 制御: User-Agent / フィンガープリント分析
curl で各プロトコルを試す
# HTTP/HTTPS
curl -v https://example.com
curl -X POST -H "Content-Type: application/json" -d '{"a":1}' https://api.example.com/users
# FTP
curl ftp://ftp.example.com/file.txt -u user:pass
# SMTP
curl smtp://smtp.example.com --mail-from "me@example.com" \
--mail-rcpt "you@example.com" --upload-file mail.txt
# LDAP
curl "ldap://ldap.example.com/dc=example,dc=com?cn"
# DNS (dig)
dig example.com
dig @8.8.8.8 example.com AAAA
# NTP
ntpdate -q time.cloudflare.com
FAQ
Q: HTTPS は何層?
A: アプリケーション層 (HTTP) + プレゼンテーション層 (TLS) の組み合わせ。TCP/IP モデルではどちらもアプリケーション層に含めます。
Q: L4 LB と L7 LB の使い分け
A: TCP/UDP の単純振り分けや非 HTTP プロトコルなら L4 (NLB)、URL 単位でルーティングしたいなら L7 (ALB)。コスト・遅延は L4 のほうが軽い。
Q: gRPC はどの層?
A: アプリケーション層。HTTP/2 をトランスポートとして使う RPC プロトコルで、L7 LB の対応有無に注意。