プロトコルは、コンピューター同士が通信するときに守るルールや約束事のことです。何をどんな形式で送るか、どういう順番でやり取りするか、届かなかったらどうするかを、両側が同じように決めておかないと通信は成立しません。
人間でいえば「何語で話すか」を先にそろえるのに近い考え方です。ただし実際の通信では、1つのルールだけで完結することはほとんどありません。
1回の通信で何段も重なっている
ブラウザでページを1枚開くだけでも、性質の違うプロトコルが順番に働きます。
| 段階 | 主に使うもの | そこで決まること |
|---|---|---|
| 名前を住所に変える | DNS | ドメイン名からIPアドレスを引く |
| 相手とつなぐ | TCP / UDP | 届いたか確認するか、速さを優先するか |
| 通信を暗号化する | TLS | 盗み見と改ざんを防ぐ |
| 中身をやり取りする | HTTP / HTTPS | 何を要求し、何を返すか |
この重なりが分かっていると、「つながらない」という曖昧な症状をどの段階で止まっているかに分解できます。
止まっている段階を切り分ける
上から順に、1段ずつ確認していくのが基本です。
- 名前解決:ドメイン名からIPアドレスが引けるか。ここで失敗するなら、サーバー側の問題ではなくDNSの設定を見る
- 接続:そのIPアドレスとポートに接続できるか。届かないならファイアウォールや経路を疑う
- 暗号化:TLSのやり取りが成立するか。証明書の期限切れや名前の不一致はここで出る
- 中身:HTTPの応答が返ってくるか。ここまで来て初めてステータスコードの話になる
順番が大事です。 4段目のステータスコードを見て悩んでいたのに、実は1段目で別のサーバーに解決していた、という切り分けミスは珍しくありません。
ポート番号との関係
プロトコルとポート番号は、よく一緒に出てきますが別物です。ポート番号は「同じIPアドレスの中でどの窓口か」を指す番号で、慣習として決まった組み合わせがあるだけです。
この区別を押さえておくと、ポートは開いているのに通信が成立しない、という状況を理解しやすくなります。
よくある誤解
「HTTPが分かればWeb通信は分かる」と考えると、途中で行き詰まります。HTTPが扱うのはいちばん上の段だけで、その下で名前解決と接続と暗号化が成立していることが前提になっているためです。
障害調査でプロトコルの知識が効くのは、詳細を暗記しているからではなく、問題を段ごとに切り分けられるからです。