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

タイトル: アプリケーション層(第4層)
SEOタイトル: TCP/IP アプリケーション層完全ガイド (HTTP/DNS/SMTP)

この記事の要点
  • TCP/IP 4 層モデルの最上位 (第 4 層) = アプリケーション層。OSI の 5/6/7 層を統合した位置づけ
  • 主要プロトコル: HTTP/HTTPS, SMTP/POP3/IMAP, FTP/SFTP, SSH, DNS, DHCP, SNMP, NTP, LDAP
  • 各プロトコルには代表ポート番号 (80=HTTP, 443=HTTPS, 22=SSH, 25=SMTP, 53=DNS)
  • TLS は L6 (プレゼンテーション) と L7 の中間。HTTPS / SMTPS 等は TLS でラップ
  • OSI の細分 (セッション/プレゼンテーション/アプリケーション) を TCP/IP はアプリ実装に任せる方針で 1 層に統合

TCP/IP 4 層モデルにおけるアプリケーション層

TCP/IP モデル (DoD モデル) は実装重視で、ネットワーク通信を 4 層に整理しています。アプリケーション層 (第 4 層) はユーザーアプリケーションが直接利用するプロトコル群を含み、OSI 参照モデルの第 5 (セッション) / 第 6 (プレゼンテーション) / 第 7 (アプリケーション) を統合した位置づけです。

TCP/IP 4 層 (上→下)           OSI 7 層 (上→下)            プロトコル例
────────────────────         ────────────────────       ────────────────
第4層 アプリケーション層 ┐    第7層 アプリケーション      HTTP, FTP, DNS
                        │    第6層 プレゼンテーション   TLS, MIME
                        ┘    第5層 セッション           NetBIOS
第3層 トランスポート層        第4層 トランスポート       TCP, UDP
第2層 インターネット層        第3層 ネットワーク         IP, ICMP
第1層 ネットワーク I/F 層 ┐   第2層 データリンク         Ethernet
                        ┘   第1層 物理                 ケーブル, 電波

代表的アプリケーション層プロトコル一覧

プロトコルポート (TCP/UDP)用途
HTTP80 / TCPWeb アクセス
HTTPS443 / TCP暗号化 Web アクセス (TLS over HTTP)
FTP21 (制御) / 20 (データ) TCPファイル転送
SFTP22 / TCPSSH 上のファイル転送
FTPS990 / TCPFTP over TLS
SSH22 / TCP暗号化リモートシェル
Telnet23 / TCP(旧) 平文リモートシェル ★非推奨
SMTP25 (送信) / 587 (Submission) TCPメール送信
SMTPS465 / TCPSMTP over TLS
POP3110 / 995 (POP3S) TCPメール受信 (ダウンロード型)
IMAP143 / 993 (IMAPS) TCPメール受信 (サーバ管理型)
DNS53 / UDP (TCP も使用)名前解決
DHCP67 (server) / 68 (client) UDPIP アドレス自動配布
SNMP161 / UDP, 162 (Trap)ネットワーク機器監視
NTP123 / UDP時刻同期
LDAP389 / 636 (LDAPS) TCPディレクトリサービス
NFS2049 / TCP, UDPUnix ネットワークファイル共有
SMB / CIFS445 / TCPWindows ファイル共有
RDP3389 / TCPWindows リモートデスクトップ
RADIUS1812 (認証) / 1813 (アカウンティング) UDP認証・課金

HTTP / HTTPS

Web の基盤プロトコル。リクエスト/レスポンスのテキストプロトコル (HTTP/2 以降はバイナリ)。

[HTTP リクエスト例]
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html

[HTTP レスポンス例]
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234


 ... 

HTTP メソッド: GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS
ステータス: 1xx 情報 / 2xx 成功 / 3xx リダイレクト / 4xx クライアントエラー / 5xx サーバエラー

HTTPS = HTTP + TLS。443/TCP。
HTTP/2 (RFC 7540) : バイナリ多重化、HPACK ヘッダ圧縮
HTTP/3 (RFC 9114) : QUIC ベース、UDP 443

DNS

ドメイン名 ↔ IP アドレスの相互変換。階層的に世界中で分散運用されています。

# 名前解決の流れ
# 1. localhost が DNS リゾルバへ問合せ
# 2. リゾルバがルート DNS → TLD (com) → 権威 DNS (example.com) と再帰問合せ
# 3. 結果をキャッシュ (TTL の期間)

# 確認コマンド
dig example.com           # 詳細 (Linux)
dig +trace example.com    # 階層追跡
nslookup example.com      # Windows / Linux 両対応
host example.com          # 簡易

# レコードタイプ
# A     : ホスト名 → IPv4
# AAAA  : ホスト名 → IPv6
# CNAME : ホスト名 → 別ホスト名 (エイリアス)
# MX    : メールサーバ
# NS    : ネームサーバ
# TXT   : SPF, DKIM, DMARC, ドメイン認証
# SOA   : ゾーン管理情報
# PTR   : IP → ホスト名 (逆引き)

SMTP / POP3 / IMAP

プロトコル役割ポート
SMTP (Simple Mail Transfer Protocol)メール送信 (サーバ間/クライアント→サーバ)25 / 587 / 465 (SMTPS)
POP3 (Post Office Protocol v3)メール受信 (サーバから DL し削除型)110 / 995 (POP3S)
IMAP (Internet Message Access Protocol)メール受信 (サーバ管理、フォルダ同期)143 / 993 (IMAPS)
[SMTP 通信例 (Telnet で見る)]
S: 220 mail.example.com ESMTP
C: EHLO client.example.com
S: 250-mail.example.com
S: 250 STARTTLS
C: STARTTLS
S: 220 Ready to start TLS
... TLS ハンドシェイク ...
C: AUTH LOGIN
C: MAIL FROM:
S: 250 OK
C: RCPT TO:
S: 250 OK
C: DATA
C: Subject: Hello
C: ...
C: .
S: 250 Message accepted
C: QUIT

SSH / SFTP / Telnet

# SSH (Secure Shell): 暗号化リモートシェル
ssh user@host
ssh -p 2222 user@host          # ポート変更
ssh -i ~/.ssh/key.pem user@host  # 公開鍵認証

# SFTP: SSH 上のファイル転送
sftp user@host
> put localfile remotefile
> get remotefile localfile

# SCP: SSH 上のコピー
scp localfile user@host:/path/

# Telnet: 平文リモートシェル ★ 非推奨 (盗聴可能)
# 現代では HTTP/SMTP デバッグの簡易クライアントとしてのみ使用
telnet example.com 80
> GET / HTTP/1.1
> Host: example.com
> (空行)

FTP / SFTP / FTPS

プロトコル暗号化ポート備考
FTPなし21 (制御) + 20 (Active) / Passive はランダム★ 平文認証、現代は非推奨
FTPSTLS990 + データ用 ephemeralFTP の TLS 化
SFTPSSH22 (単一ポート)★ 推奨、ファイアウォール越しに容易

DHCP

[DHCP の 4 ステップ DORA]
1. Discover : クライアントがブロードキャスト「IP くれ」
2. Offer    : DHCP サーバが候補 IP を提示
3. Request  : クライアントが「その IP もらいます」
4. Ack      : サーバが確定通知

リース情報:
 - IP アドレス + サブネットマスク
 - デフォルトゲートウェイ
 - DNS サーバ
 - リース期間 (TTL)

Linux 確認:
  dhclient -v eth0
  cat /var/lib/dhcp/dhclient.leases

Windows:
  ipconfig /all       # 現在の DHCP リース
  ipconfig /release   # リース解放
  ipconfig /renew     # 再取得

SNMP / NTP / LDAP

  • SNMP (Simple Network Management Protocol): ルーター・サーバの CPU/メモリ/IF 統計を取得。Zabbix / PRTG が監視で利用。v3 で暗号化対応。
  • NTP (Network Time Protocol): タイムサーバから時刻取得。ストラタム階層 (Stratum 0/1/2...)。Linux は chrony / ntpd、Windows は w32time。
  • LDAP (Lightweight Directory Access Protocol): ユーザー・組織情報のディレクトリサービス。Active Directory / OpenLDAP。SSO 基盤。

NFS / SMB / RDP

プロトコルOS用途
NFS (Network File System)Unix / Linuxリモートディレクトリをローカルマウント
SMB / CIFSWindows (Linux も Samba)ファイル共有 (\\server\share)
RDP (Remote Desktop Protocol)WindowsGUI でリモート操作
VNCOS 問わずGUI リモート操作 (オープン)

TLS は L6 か L7 か

厳密にはOSI 第 6 層 (プレゼンテーション) の暗号化機能に相当しますが、実装上は TCP の上で動き、アプリケーション層プロトコル (HTTP, SMTP 等) を包む形で機能します。そのためTCP/IP 4 層モデルではアプリケーション層に含めるのが一般的です。HTTPS = HTTP over TLS、SMTPS = SMTP over TLS など。

OSI と TCP/IP の対応 (詳細)

OSI 層主な責務TCP/IP での扱い
L7 アプリケーションアプリ固有プロトコルアプリケーション層に統合
L6 プレゼンテーション文字コード/暗号化/圧縮
L5 セッションセッション管理

TCP/IP は「実装するアプリ側で必要なら持てばよい」という発想で、3 層を 1 層に統合しました。例えば HTTPS は HTTP (L7) + TLS (L6) を組み合わせて 1 つのプロトコルとして実装されます。

FAQ

Q: ポート番号はどう決まる?
A: IANA (Internet Assigned Numbers Authority) が管理。0-1023 は Well-Known Ports (HTTP=80 等)、1024-49151 が Registered Ports、49152-65535 が Dynamic/Private Ports。

Q: HTTP と HTTPS、TLS なしでも見える?
A: HTTP は平文 → 経路途中で盗聴・改ざん可能。現代の Web はHTTPS 必須。Let's Encrypt で無料 SSL 取得可。

Q: 同じプロトコルで TCP と UDP どちらも使うものは?
A: DNS が代表例。通常の問合せは UDP/53、大きな応答 (DNSSEC、ゾーン転送) は TCP/53 を使う。