この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: アプリケーション層(第7層)
SEOタイトル: OSI 第 7 層 (アプリケーション層) 完全ガイド|HTTP/HTTPS/FTP/SMTP/DNS/SSH と L7 LB

この本文には実行可能なタグ等が含まれるため、安全のためHTMLソースとして表示しています。本文データは変更していません。

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;background:#fffbea;border:1px solid #f4c430;margin:1em 0;width:100%"><tr><td style="background:#f4c430;color:#000;font-weight:bold;padding:8px">この記事の要点</td></tr><tr><td style="padding:10px"><ul><li><strong>OSI 参照モデルの第 7 層</strong>。エンドユーザーが利用する具体的アプリケーションプロトコルが集まる層</li><li>代表プロトコル: <strong>HTTP/HTTPS</strong> (Web) / <strong>SMTP/POP3/IMAP</strong> (Email) / <strong>DNS/DHCP/NTP/SNMP/LDAP</strong> (基盤) / <strong>SSH/Telnet/RDP</strong> (リモート)</li><li>TCP/IP モデルでは <strong>L5+L6+L7 をまとめてアプリケーション層</strong>と呼ぶ</li><li>L7 ロードバランサ (ALB) は HTTP ヘッダや URL を解析してルーティング</li><li><strong>WAF</strong> は L7 の知識を使って SQL インジェクション / XSS を防御</li></ul></td></tr></table>
<h2>アプリケーション層とは</h2>

<p><strong>OSI 参照モデル</strong>の 7 層構造の中で<strong>最上位 (第 7 層)</strong> に位置する層です。ユーザーや業務アプリケーションが直接利用するプロトコル群が集まり、ブラウザでの Web 閲覧、メール送受信、ファイル転送、リモートログイン等、私たちが「ネットワークを使う」と意識する場面のほとんどはこの層の上で起きています。</p>

<h2>OSI 7 層モデル全体像</h2>

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;width:100%">
<thead><tr style="background:#e3f2fd"><th>層</th><th>名前</th><th>主な役割</th><th>例</th></tr></thead>
<tbody>
<tr><td>7</td><td><strong>アプリケーション</strong></td><td>具体的サービス</td><td>HTTP, SMTP, DNS</td></tr>
<tr><td>6</td><td>プレゼンテーション</td><td>文字コード, 暗号化, 圧縮</td><td>TLS, JPEG, ASCII</td></tr>
<tr><td>5</td><td>セッション</td><td>セッション管理</td><td>NetBIOS, RPC</td></tr>
<tr><td>4</td><td>トランスポート</td><td>信頼性</td><td>TCP, UDP</td></tr>
<tr><td>3</td><td>ネットワーク</td><td>ルーティング</td><td>IP, ICMP</td></tr>
<tr><td>2</td><td>データリンク</td><td>同一セグメント転送</td><td>Ethernet, PPP</td></tr>
<tr><td>1</td><td>物理</td><td>電気信号</td><td>1000BASE-T, 光ファイバ</td></tr>
</tbody>
</table>

<h2>代表的なアプリケーション層プロトコル</h2>

<h3>Web 系</h3>

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;width:100%">
<thead><tr style="background:#e3f2fd"><th>プロトコル</th><th>ポート</th><th>用途</th></tr></thead>
<tbody>
<tr><td>HTTP</td><td>TCP/80</td><td>Web 閲覧 (平文)</td></tr>
<tr><td>HTTPS</td><td>TCP/443</td><td>Web 閲覧 (TLS)</td></tr>
<tr><td>HTTP/2</td><td>TCP/443</td><td>多重化、ヘッダ圧縮</td></tr>
<tr><td>HTTP/3 (QUIC)</td><td>UDP/443</td><td>UDP ベース、0-RTT 再接続</td></tr>
<tr><td>WebSocket</td><td>TCP/80, 443</td><td>双方向リアルタイム通信</td></tr>
</tbody>
</table>

<h3>メール系</h3>

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;width:100%">
<thead><tr style="background:#e3f2fd"><th>プロトコル</th><th>ポート</th><th>用途</th></tr></thead>
<tbody>
<tr><td>SMTP</td><td>TCP/25, 587 (Submission)</td><td>メール送信</td></tr>
<tr><td>SMTPS</td><td>TCP/465</td><td>SMTP over TLS</td></tr>
<tr><td>POP3</td><td>TCP/110, 995 (TLS)</td><td>メール受信 (削除型)</td></tr>
<tr><td>IMAP</td><td>TCP/143, 993 (TLS)</td><td>メール受信 (サーバ保持)</td></tr>
</tbody>
</table>

<h3>ファイル転送・リモート</h3>

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;width:100%">
<thead><tr style="background:#e3f2fd"><th>プロトコル</th><th>ポート</th><th>用途</th></tr></thead>
<tbody>
<tr><td>FTP</td><td>TCP/21 (制御), 20 (データ)</td><td>ファイル転送 (平文、非推奨)</td></tr>
<tr><td>FTPS</td><td>TCP/990 等</td><td>FTP over TLS</td></tr>
<tr><td>SFTP</td><td>TCP/22</td><td>SSH 上のファイル転送</td></tr>
<tr><td>SSH</td><td>TCP/22</td><td>暗号化リモートシェル</td></tr>
<tr><td>Telnet</td><td>TCP/23</td><td>平文リモートシェル (非推奨)</td></tr>
<tr><td>RDP</td><td>TCP/3389</td><td>Windows リモートデスクトップ</td></tr>
</tbody>
</table>

<h3>基盤系</h3>

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;width:100%">
<thead><tr style="background:#e3f2fd"><th>プロトコル</th><th>ポート</th><th>用途</th></tr></thead>
<tbody>
<tr><td>DNS</td><td>UDP/53, TCP/53</td><td>名前解決</td></tr>
<tr><td>DHCP</td><td>UDP/67, 68</td><td>IP 自動割当</td></tr>
<tr><td>NTP</td><td>UDP/123</td><td>時刻同期</td></tr>
<tr><td>SNMP</td><td>UDP/161, 162 (Trap)</td><td>ネットワーク監視</td></tr>
<tr><td>LDAP</td><td>TCP/389, 636 (TLS)</td><td>ディレクトリサービス</td></tr>
<tr><td>NFS</td><td>TCP/UDP 2049</td><td>UNIX ファイル共有</td></tr>
<tr><td>SMB/CIFS</td><td>TCP/445</td><td>Windows ファイル共有</td></tr>
</tbody>
</table>

<h2>TCP/IP モデルでの位置づけ</h2>

<p>実際のインターネットで使われる <strong>TCP/IP モデル (4 層)</strong> では、OSI の L5 ~ L7 がまとめて「アプリケーション層」として扱われます:</p>

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;width:100%">
<thead><tr style="background:#e3f2fd"><th>TCP/IP モデル</th><th>OSI 対応</th></tr></thead>
<tbody>
<tr><td><strong>アプリケーション</strong></td><td>L5 セッション + L6 プレゼン + L7 アプリ</td></tr>
<tr><td>トランスポート</td><td>L4</td></tr>
<tr><td>インターネット</td><td>L3</td></tr>
<tr><td>ネットワークインターフェース</td><td>L1 + L2</td></tr>
</tbody>
</table>

<h2>L7 ロードバランサ (Application Load Balancer)</h2>

<p>L7 LB は HTTP / HTTPS の中身を解析してルーティングを変えられます。L4 LB が TCP/UDP ポートしか見ないのに対し、URL パスや Host ヘッダ、Cookie で振り分けが可能。</p>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-text"># 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 ベース複数証明書</code></pre>
<h2>WAF (Web Application Firewall)</h2>

<p>WAF は L7 の知識を使って Web アプリへの攻撃を防御します:</p>

<ul>
<li><strong>SQL インジェクション</strong>: クエリパラメータ・本文の SQL 構文を検知</li>
<li><strong>XSS</strong>: <code><script></code> 等のスクリプトタグを検知</li>
<li><strong>パストラバーサル</strong>: <code>../</code> の検知</li>
<li><strong>レート制限</strong>: 単一 IP からの大量リクエスト遮断</li>
<li><strong>Bot 制御</strong>: User-Agent / フィンガープリント分析</li>
</ul>

<h2>curl で各プロトコルを試す</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># HTTP/HTTPS
curl -v https://example.com
curl -X POST -H "Content-Type: application/json" -d &apos;{"a":1}&apos; 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</code></pre>
<h2>FAQ</h2>

<p><strong>Q: HTTPS は何層?</strong><br />
A: アプリケーション層 (HTTP) + プレゼンテーション層 (TLS) の組み合わせ。TCP/IP モデルではどちらもアプリケーション層に含めます。</p>

<p><strong>Q: L4 LB と L7 LB の使い分け</strong><br />
A: TCP/UDP の単純振り分けや非 HTTP プロトコルなら L4 (NLB)、URL 単位でルーティングしたいなら L7 (ALB)。コスト・遅延は L4 のほうが軽い。</p>

<p><strong>Q: gRPC はどの層?</strong><br />
A: アプリケーション層。HTTP/2 をトランスポートとして使う RPC プロトコルで、L7 LB の対応有無に注意。</p>