この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第12回です。
前回までに学んだIPアドレス、MACアドレス、ポート番号に続き、 今回は機器同士が通信するための共通ルールである「プロトコル」を学びます。
プロトコルとは?ネットワーク通信のルールを初心者向けに図解
パソコンやサーバーは、ただケーブルやWi-Fiでつながるだけでは通信できません。 データの形式、送信の順番、応答の方法などについて、機器同士が共通のルールを使う必要があります。 この記事では、プロトコルの意味、代表例、ポート番号との違い、複数のプロトコルが連携する流れを図解します。
日本語しか話せない人と、日本語を理解できない人が向かい合っても、 お互いの言葉を理解できなければ会話は成立しません。
ネットワーク通信も同じです。 送信側と受信側が、同じ通信ルールを理解していることで、 初めてデータを正しくやり取りできます。
この記事を読み終えるとできること
- プロトコルの意味を自分の言葉で説明できる
- 通信ルールとして決める内容を挙げられる
- HTTP、DNS、TCP、IPなどの役割を大まかに区別できる
- プロトコルとポート番号の違いを説明できる
- Webアクセスで複数のプロトコルが連携する流れを説明できる
- 通信障害をプロトコルごとに切り分ける考え方を持てる
プロトコルとは何か
プロトコルとは、機器同士が正しく通信するために使用する共通のルールです。
英語の「protocol」には、手順、規約、取り決めといった意味があります。 ネットワークでは、データをどのような形式で作り、どの順番で送り、 受信した側がどのように応答するかを定めたルールを指します。
たとえば、WebブラウザがWebサーバーへページを要求するときは、 Web通信のルールに従って「このページを送ってください」と依頼します。 Webサーバーも同じルールを理解しているため、依頼を読み取り、ページのデータを返せます。
プロトコルは、特定の1個の技術だけを指す言葉ではありません。
HTTP、HTTPS、DNS、DHCP、TCP、UDP、IP、Ethernetなど、 役割の異なる多数のプロトコルがあります。
人の会話に置き換える
| 人同士の会話 | ネットワーク通信 |
|---|---|
| 同じ言語を使う | 同じプロトコルを使う |
| 誰が先に話すか決める | 送信開始や接続確立の手順を決める |
| 質問と回答を区別する | 要求と応答の形式を決める |
| 聞き取れなければ聞き返す | 必要に応じて再送やエラー通知を行う |
| 会話を終える合図を出す | 通信の終了手順を決める |
人同士が会話するときにも、言語だけでなく、質問、回答、確認、終了といった流れがあります。 プロトコルも、単なるデータの書き方だけではなく、通信全体の進め方を定めています。
なぜプロトコルが必要なのか
ネットワークには、メーカー、OS、機種、用途の異なる多くの機器が接続されます。
- Windowsパソコン
- iPhoneやAndroidスマートフォン
- Linuxサーバー
- ルーターやスイッチ
- プリンターや監視カメラ
- クラウド上のサービス
これらの機器が、それぞれ独自の方法でデータを送っていたら、 相手は受信したデータをどのように解釈すればよいか分かりません。
共通ルールがない通信と、共通ルールがある通信
共通ルールがない場合
パソコン:独自形式で送信
サーバー:形式を理解できない
結果:通信内容を正しく処理できない
共通ルールがある場合
パソコン:決められた形式で送信
サーバー:同じ形式で読み取る
結果:異なる機器同士でも通信できる
プロトコルがあることで、異なる製品やOSでも通信できます。
重要なのは、機器の中身が同じであることではなく、 通信するときに共通の決まりへ従うことです。
プロトコルで決められていること
プロトコルによって詳細は異なりますが、主に次のような内容が決められています。
データの形式
どこに宛先、送信元、データ本体、制御情報を入れるかを決めます。
通信の順番
接続開始、データ送信、確認応答、終了などの順序を決めます。
エラー時の動作
データが届かなかった場合の再送や、エラー通知の方法を決めます。
相手の識別方法
アドレスや番号を使って、どの機器・どのサービスと通信するかを示します。
要求と応答
何を要求したのか、成功したのか、失敗したのかを表す方法を決めます。
安全に通信する方法
暗号化、相手の確認、改ざん検知などを定めるプロトコルもあります。
プロトコルごとに担当範囲が異なる
すべてのプロトコルが、上記の内容を全部担当するわけではありません。 それぞれが特定の役割を担当し、組み合わさって1回の通信を実現します。
代表的なネットワークプロトコル
初級編で今後学ぶプロトコルを、役割ごとに整理します。 この時点では、名前と大まかな役割を区別できれば十分です。
Webページをやり取りする
ブラウザとWebサーバーの間で、ページや画像などを要求・応答するために使われます。 HTTPSでは通信を保護する仕組みが加わります。
名前からIPアドレスを調べる
「it-jump.com」のような名前を、通信先のIPアドレスへ変換するときに使われます。
ネットワーク設定を自動配布する
IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーなどを端末へ配布します。
データを確実に届ける
接続を確立し、データの順番や到着を確認しながら通信します。 Web、メール、ファイル転送などで広く使われます。
少ない手順で素早く送る
TCPのような細かな到着確認を基本的に行わず、少ない手順でデータを送ります。
宛先ネットワークまでデータを運ぶ
送信元と宛先のIPアドレスを使い、ルーターを経由してデータを届けます。
IPアドレスからMACアドレスを調べる
同じLAN内で次にデータを渡す相手のMACアドレスを確認するときに使われます。
通信状態やエラーを伝える
pingによる到達確認や、通信できない理由を通知するために使われます。
有線LANなどでフレームを運ぶ
MACアドレスを使い、LAN内でデータをやり取りするための基本的な仕組みです。
通信内容を保護する
暗号化や通信相手の確認を行い、HTTPSなどの安全な通信を支えます。
プロトコル名を一度に暗記する必要はありません。 まずは、「名前を調べる」「確実に運ぶ」「宛先まで届ける」など、役割が分かれていると理解しましょう。
複数のプロトコルが連携して通信する
Webサイトを見るときに「HTTPだけ」を使っているわけではありません。 役割の異なる複数のプロトコルが、階層のように重なって動作します。
Webページのデータを運ぶプロトコルの重なり
送信側では、Webページの要求データへ、各プロトコルが必要な制御情報を付け加えます。 受信側では、外側から順番に制御情報を確認し、最終的にWebサーバーが要求内容を受け取ります。
データへ役割ごとの情報が追加されるイメージ
1回の通信を、1つのプロトコルだけで実現しているわけではありません。
それぞれのプロトコルが担当範囲を分け、連携することで通信が成立します。 この考え方は、次の記事で学ぶOSI参照モデルやTCP/IPモデルにつながります。
プロトコルとポート番号の違い
前回学んだポート番号と、プロトコルは混同しやすい用語です。 役割を分けて考えましょう。
| 項目 | 役割 | 例 |
|---|---|---|
| プロトコル | どのようなルールで通信するかを決める | HTTP、HTTPS、DNS、TCP、UDP、IP |
| ポート番号 | 端末内のどのアプリケーションやサービスへ届けるかを識別する | 80、443、53など |
| IPアドレス | 通信先となる機器やネットワーク上の場所を識別する | 192.168.1.10など |
住所・窓口・会話ルールで考える
IPアドレス
建物の住所に相当します。
まず、どの機器へ届けるかを示します。
ポート番号
建物内の受付窓口に相当します。
その機器のどのサービスへ渡すかを示します。
プロトコル
窓口で使う会話や手続きのルールに相当します。
どの形式・順番で依頼するかを決めます。
データ
実際に依頼する内容に相当します。
「このページを送ってください」などの情報です。
「HTTPSは443番ポートを使う」とよく説明されますが、 HTTPSと443番は同じものではありません。
HTTPSは通信ルール、443番はサービスを識別する番号です。
Webサイトを見るときのプロトコル
ブラウザへWebサイトのURLを入力してからページが表示されるまでを、 プロトコルの役割に注目して確認します。
端末がネットワーク設定を受け取る
Webサイト名からIPアドレスを調べる
次に渡す相手のMACアドレスを調べる
接続を作り、宛先までデータを運ぶ
Webページを安全に要求・受信する
- 端末が通信に必要な設定を持つ 多くの端末は、DHCPを使ってIPアドレスやデフォルトゲートウェイなどを受け取ります。
- Webサイト名からIPアドレスを調べる DNSを使って、入力したWebサイト名に対応するIPアドレスを確認します。
- LAN内で次に渡す相手を調べる ARPを使って、ルーターなどのMACアドレスを確認します。
- Webサーバーとの通信を開始する TCPを使う場合は、データ送信前に通信相手との接続を確立します。
- IPアドレスを使って宛先まで運ぶ IPの仕組みにより、ルーターを経由してWebサーバーまでデータが届けられます。
- Webページを要求する HTTPSなどのルールに従い、ブラウザがWebサーバーへページを要求します。
- Webサーバーからデータが返る 文字、画像、スタイル情報などが返され、ブラウザが画面へ表示します。
実際の通信では、環境や技術によって手順や使われるプロトコルが異なる場合があります。 ここでは、初心者が全体像を理解するために代表的な流れへ簡略化しています。
現場ではプロトコルごとに切り分ける
利用者から「Webサイトが表示できない」と申告されたとき、 すぐに「ネットワーク全体が壊れている」と判断してはいけません。
どのプロトコルの処理まで成功しているかを確認すると、原因を絞り込めます。
アドレスやゲートウェイは正しいか
pingで宛先へ到達できるか
名前をIPアドレスへ変換できるか
Webサービスへ接続できるか
確認結果から原因候補を考える
| 確認結果 | 考えられること |
|---|---|
| IPアドレスを取得できていない | DHCP、端末設定、接続状態などに問題がある可能性 |
| IPアドレス指定では通信できるが、名前指定ではできない | DNSの名前解決に問題がある可能性 |
| pingは通るが、Webページを開けない | TCP、HTTPS、ポート制御、Webサーバーなどに問題がある可能性 |
| 特定のWebサイトだけ開けない | 接続先サービス、名前解決、通信制御などに問題がある可能性 |
プロトコルを理解すると、「通信できない」を小さな処理へ分解できます。
どのルールに基づく通信が成功し、どこから失敗しているかを確認することが、 ネットワーク障害切り分けの基本です。
プロトコルに関するよくある勘違い
HTTPはプロトコルの一つです。DNS、TCP、UDP、IP、ARP、ICMPなど、 ネットワークには多数のプロトコルがあります。
物理的につながっていても、データ形式や通信手順が一致しなければ、 相手は受信した内容を正しく理解できません。
Webアクセスでは、DNS、ARP、TCP、IP、Ethernet、HTTPSなど、 役割の異なる複数のプロトコルが連携します。
プロトコルは通信ルール、ポート番号は端末内のサービスを識別する番号です。
バージョン、設定、暗号方式、認証方式、通信制御などが一致しない場合は、 同じ種類のプロトコルを使っていても通信できないことがあります。
メーカーやOSが異なっても、同じルールに従うことでデータをやり取りできます。
理解度チェック
記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。
問題1.プロトコルの説明として最も適切なものはどれですか。
- ネットワーク機器の製品名
- 通信相手の場所を示す番号
- 機器同士が正しく通信するための共通ルール
- LANケーブルの規格だけを表す言葉
解答を見る
プロトコルは、データ形式、通信手順、応答方法などを定めた共通ルールです。
問題2.Webサイト名からIPアドレスを調べるために使われるプロトコルはどれですか。
- DNS
- ARP
- ICMP
- Ethernet
解答を見る
DNSは、Webサイト名などの名前をIPアドレスへ変換するときに使われます。
問題3.プロトコルとポート番号の説明として正しいものはどれですか。
- どちらも通信先の機器を識別する番号
- プロトコルは通信ルール、ポート番号は端末内のサービスを識別する番号
- プロトコルは製品名、ポート番号はケーブルの差込口
- どちらも必ず同じ値を使う
解答を見る
たとえばHTTPSは通信ルールで、443番はHTTPSサービスで一般的に使われるポート番号です。
問題4.Webアクセスでは、HTTPSだけが使われる。正しいですか。
解答を見る
DNS、ARP、TCP、IP、Ethernetなど、複数のプロトコルが連携して通信します。
問題5.次の役割に対応するプロトコル名を答えてください。
- A:pingによる到達確認などに使われる
- B:IPアドレスからMACアドレスを調べる
- C:データを順番どおり、確実に届ける
解答を見る
A:ICMP B:ARP C:TCP
実践演習:Webアクセスで使うプロトコルを整理しよう
パソコンからWebサーバーへHTTPSでアクセスする構成を考えます。
演習用ネットワーク
課題1.役割とプロトコルを対応させる
次の役割に当てはまるプロトコルを、DNS、ARP、TCP、IP、HTTPSから選んでください。
- Webサイト名からIPアドレスを調べる
- LAN内で次に渡す相手のMACアドレスを調べる
- データの順番や到着を確認する
- IPアドレスを使って宛先までデータを運ぶ
- Webページを安全に要求・応答する
課題1の解答を見る
1:DNS 2:ARP 3:TCP 4:IP 5:HTTPS
課題2.通信できない原因を考える
パソコンからWebサーバーのIPアドレスへは通信できますが、 Webサイト名を入力するとページを開けません。 どのプロトコルに関係する問題が疑われますか。
理由:________________________
課題2の解答例を見る
疑われるプロトコル:DNS
IPアドレスを直接指定した通信ができる一方、名前指定で失敗しているため、 Webサイト名をIPアドレスへ変換する名前解決に問題がある可能性があります。
課題3.IPアドレス・ポート番号・プロトコルを分類する
次の情報が、それぞれ何を表しているか答えてください。
- 192.0.2.10
- 443
- HTTPS
443:________
HTTPS:________
課題3の解答を見る
- 192.0.2.10:通信先の機器を識別するIPアドレス
- 443:端末内のサービスを識別するポート番号
- HTTPS:Webページを安全にやり取りするためのプロトコル
自分の言葉で説明する課題
最後に、次の質問へ自分の言葉で答えてください。
「プロトコルとは何ですか?」とITを知らない人から質問されました。 30秒程度で説明してください。
説明例を見る
プロトコルとは、パソコンやサーバーなどの機器同士が、 正しくデータをやり取りするための共通ルールです。 データの形式、送信の順番、応答の方法などを決めておくことで、 メーカーやOSが異なる機器同士でも通信できます。
模範解答と同じ文章である必要はありません。
「機器同士」「共通ルール」「正しく通信する」という3点を含めて説明できれば、 この記事の目標は達成です。
まとめ
- プロトコルとは、機器同士が正しく通信するための共通ルール
- データ形式、通信順序、応答、エラー時の動作などが決められている
- 異なるメーカーやOSでも、同じプロトコルに従うことで通信できる
- HTTP、DNS、TCP、IP、ARP、ICMP、Ethernetなど、役割の異なる多数のプロトコルがある
- 1回の通信では、複数のプロトコルが役割を分担して連携する
- プロトコルは通信ルール、ポート番号は端末内のサービスを識別する番号
- 障害対応では、どのプロトコルの処理まで成功しているかを確認すると原因を絞り込みやすい
プロトコルを理解することは、通信を「何となくつながる仕組み」ではなく、 複数のルールが連携する処理として理解する第一歩です。

コメント