第 2 章 読了 24 分

プロトコル

HTTP、DNS、DHCP、SMTP、SSH、WebSocket、gRPC、MQTT、QUIC など、よく使う 15 種類のプロトコル を辞書スタイルでまとめました。
迷ったらこの章に戻ってきてください。

/ 01 · HTTP / HTTPS

HTTP / HTTPS ── Web の 血液

HTTP(HyperText Transfer Protocol)はクライアント(ブラウザ)とサーバの会話プロトコル。「GET /page」「POST /api/login」という命令と、200 OK404 Not Found 等の返事で構成される。

HTTPS は HTTP を TLS で暗号化したもの。今は ほぼ必須。Chrome は HTTPS でないと「保護されていません」警告を出す。

バージョン登場特徴
HTTP/1.119971 接続 1 リクエスト。今でも現役
HTTP/22015多重化(並列リクエスト)+ ヘッダ圧縮
HTTP/32022QUIC(UDP ベース)。モバイルで強い
HTTP メソッド ── よく使う 5 つ
GET 取得(副作用なし) / POST 作成・送信 / PUT 上書き / PATCH 部分更新 / DELETE 削除。REST API の基本動作はこの 5 つでだいたい表現できる。

/ 02 · DNS

DNS ── インターネットの 電話帳

DNS(Domain Name System)は example.com93.184.216.34 のように、人間が読みやすいドメイン名を IP アドレスに変換する仕組み。

名前解決の流れ:

あなたのブラウザ → ① OS のキャッシュ → ② ルーターのキャッシュ → ③ ISP の DNS サーバ(フルサービスリゾルバ) → ④ ルート DNS(.com の権威に聞く) → ⑤ .com の権威 DNS → ⑥ example.com の権威 DNS → ⑦ 答えが返る → ⑧ ブラウザに IP が届く
A レコード

名前 → IPv4

最も基本。ドメインを IPv4 アドレスに紐付ける。

AAAA レコード

名前 → IPv6

A の IPv6 版。Quad-A と読む。

CNAME

別名 → 本名

www.example.com → example.com のようなエイリアス。

MX レコード

メールサーバ指定

そのドメインへのメールを受け取るサーバ。優先順位付き。

TXT

自由テキスト

SPF / DKIM / DMARC / ドメイン所有確認に使う。

NS

権威 DNS

そのドメインの本当の答えを持つ DNS サーバの位置。

TTL(Time To Live)
DNS の答えをキャッシュする時間(秒)。長くするとサーバ負荷が下がるが、変更が反映されるのも遅くなる。サーバ移転前は TTL を 60 秒に短くしておくと素早く切り替えられる。実務では「移転 1 週間前から短縮」が定石。

/ 03 · DHCP

DHCP ── 自動 住所配布

DHCP(Dynamic Host Configuration Protocol)は、ネットワークに繋いだ機器に IP アドレス・サブネットマスク・ゲートウェイ・DNS を自動で割り当てるサーバ。家庭のルーターはほぼ DHCP サーバを兼ねている。

仕組みは DISCOVER → OFFER → REQUEST → ACK の 4 ステップ。頭文字を取って DORA と呼ばれる。Wi-Fi に繋いだ瞬間にこの 4 通信が裏で走り、晴れて住所が渡される。


/ 04 · MAIL

SMTP / IMAP / POP3 ── メール 三兄弟

プロトコル役割ポート
SMTP送信専用25 / 587(暗号化)
IMAP受信(サーバに残す。マルチデバイス向け)143 / 993
POP3受信(端末にダウンロードして消す)110 / 995
SPF / DKIM / DMARC
メールの送信者なりすまし対策。SPF は「この IP から送って良い」、DKIM は「電子署名」、DMARC は「上記が一致しなかった時のポリシー」。3 つそろえると Gmail / Outlook に拒否されにくい。逆に欠けていると、迷惑メールフォルダ行き直行。

/ 05 · SSH

SSH ── 暗号化リモートシェル

SSH(Secure Shell)は遠隔サーバを操作するための暗号化通信。ポート 22

認証方法は パスワード認証(弱い)公開鍵認証(強い)。本番サーバはパスワード認証を無効にして、公開鍵のみ受け付けるのが定番。

# 公開鍵生成 $ ssh-keygen -t ed25519 -C "you@example.com" # サーバに公開鍵を送る $ ssh-copy-id user@server.example.com # 接続 $ ssh user@server.example.com

/ 06 · FTP / SFTP

FTP / SFTP ── ファイル転送

FTP(File Transfer Protocol)は古典的なファイル転送(平文・非推奨)。SFTP は SSH 上で動く安全版。今は SFTP を使うのが基本。SFTP は名前は「FTP の暗号化版」に見えるが、実装はまったく別物(SSH の上で動くサブシステム)。


/ 07 · WebSocket

WebSocket ── 双方向 リアルタイム

HTTP は「クライアントからお願い → サーバが答えて切る」の一方通行。WebSocket は接続を張りっぱなしにして双方向通信できる。チャット・通知・マルチプレイヤーゲームで必須。

最初は普通の HTTP リクエストで Upgrade: websocket ヘッダを送って WebSocket に昇格する仕組み。だから HTTPS の :443 でそのまま動く(プロキシも通り抜ける)。


/ 08 · gRPC

gRPC ── 高速 RPC

Google 製の RPC(Remote Procedure Call)フレームワーク。HTTP/2 + Protocol Buffers(バイナリ)で、JSON より 3〜10 倍速い。マイクロサービス間通信で人気。

欠点:ブラウザから直接呼べない(gRPC-Web で擬似対応)、デバッグしにくい(バイナリで人間が読めない)。サーバ間通信なら最強、ブラウザ向けは依然として JSON over HTTP の方が楽。


/ 09 · MQTT

MQTT ── IoT 専用

MQTT(Message Queuing Telemetry Transport)は IoT 機器・低電力・断続接続向けの軽量プロトコル。Publish / Subscribe モデル。

例:温度センサ → MQTT ブローカー → スマホアプリで受信。電池駆動の機器が 1 日に数回だけ報告するような使い方に強い。


/ 10 · ICMP

ICMP ── エラーと診断

ICMP(Internet Control Message Protocol)はネットワーク機器同士の状況報告。ping はこれを使う。サーバが落ちてる時に「到達不能」を返してくれるのも ICMP。

最近のクラウドはセキュリティ上 ICMP をデフォルトでブロックしていることが多い。「ping が返ってこない=サーバが落ちている」とは限らないので注意。


/ 11 · ARP

ARP ── IP → MAC 変換

同じネットワーク内で「IP 192.168.1.5 の MAC アドレスは?」と聞く仕組み。データリンク層(L2)の世界。IP は論理アドレス、MAC は物理アドレス。実際にケーブルにパケットを流すには MAC が必要。


/ 12 · NTP

NTP ── 時刻同期

世界中のサーバの時計を合わせるプロトコル。ログの順序整合・TLS 証明書の有効期限判定・分散システムの整合性 ── すべてが NTP の正確さに依存している。

「時計が 1 秒ずれただけで、本番が動かなくなった」
── は古典的な障害談義。NTP は地味だが、生命線。 — Operations Tale

/ 13 · TLS

TLS / SSL ── 暗号化の基盤

TLS(Transport Layer Security)は SSL の後継。HTTPS / SMTPS / IMAPS など、ほぼ全ての暗号化通信の下で動いている。詳しくは 第 3 章 セキュリティ編


/ 14 · QUIC

QUIC ── HTTP/3 の 中身

Google 発の新しいトランスポート層。UDP の上に独自の信頼性・暗号化・多重化を実装。モバイル網のパケロスに強い。Wi-Fi → モバイル回線への切り替わりでも接続を維持する。


/ 15 · BGP

BGP ── 世界を繋ぐ 経路情報

インターネット全体を繋ぐ経路情報プロトコル。AS(Autonomous System)番号を持つ ISP・大企業同士が「うちはこの IP 範囲を持ってます」を交換する。

BGP が壊れる = 世界の一部が消える
Facebook(2021)・Cloudflare(2020)・KDDI(2022)── 毎年世界中で誰かが大規模障害を起こしている。BGP の設定ミスは「自社の存在を世界に向けて取り消す」ことに等しい。だからこそ操作は緊張する。