プロトコル

luagate/protocol-introプロトコル入門24ネットワーク

上から下へ、全 24 枚そのまま並べています。

発表モードで開く

プロトコル入門

プロトコル

通信の共通ルール 〜機器同士の共通言語〜

1
1

目次

今日の流れ

1. プロトコルって何のためにあるの?

2. 身近なプロトコルとリクエスト/レスポンス

3. プロトコルは層になっている

4. HTTP の中身と暗号化・ポート

5. まとめと振り返り

2
2
プロトコル入門 - イントロ

今日のゴール

この時間で身につけてほしいことです。

  • プロトコルが「通信の共通ルール」だと分かる
  • なぜ共通ルールが必要かを説明できる
  • HTTP・FTP・SMTP など身近な例を挙げられる
  • リクエストとレスポンスの基本が分かる
  • ポート番号との関係をイメージできる
10
3
プロトコル入門 - イントロ

プロトコル とは

通信する者同士があらかじめ決めておく「やり取りの約束ごと」です。

プロトコル(Protocol / 通信規約)

コンピュータ同士がデータをやり取りするときの、形式・手順・順番などを定めた共通のルール。これに従うことで、違うメーカーの機器同士でも会話できる。

データの形式や送る順番を決めている

双方が同じルールに従うから通じる

人間の「言語」や「あいさつの作法」に近い

用途ごとに別々のプロトコルがある

11
4
プロトコル入門 - イントロ

プロトコル = 共通の言語・あいさつ

人間の会話にたとえると、プロトコルの役割が分かりやすくなります。

同じ言語で話す
  • お互い分かる言葉を使う
  • 違う言語だと通じない
あいさつの順番
  • まず名乗る→用件→終わり
  • 手順が決まっている
形式をそろえる
  • 決まった型でやり取り
  • 相手が解釈できる
12
5
プロトコル入門 - イントロ

なぜ共通ルールが必要か

ルールがそろっていないと、そもそも会話が成立しません。

  • 送る側と受ける側で形式が違うと解釈できない
  • メーカーやOSが違っても通じる必要がある
  • 世界中の機器が同じルールに従うからつながる
  • ルールがあるから新しい機器も後から参加できる
  • 「共通語」があるおかげでインターネットが成り立つ
13
6
プロトコル入門 - イントロ

身近なプロトコルの例

用途ごとに使うプロトコルが分かれています。よく見る例を挙げます。

  • HTTP / HTTPS — Webページの表示
  • FTP — ファイルの転送
  • SMTP — メールの送信
  • IMAP / POP — メールの受信
  • DNS — ドメイン名をIPに変換
14
7

プロトコル入門 - やり取り

2

第2部 やり取りの基本

リクエストとレスポンス

20
8
プロトコル入門 - やり取り

リクエストとレスポンス

多くのプロトコルは「頼む→返す」の往復で成り立っています。

リクエスト と レスポンス

クライアントが「これがほしい」とお願い(リクエスト)を送り、サーバーが「これですよ」と返事(レスポンス)を返す、通信の基本的な一往復。

リクエスト 何がほしいかを伝える

レスポンス 結果や中身を返す

この往復を繰り返してやり取りする

プロトコルがその書式を決めている

21
9
プロトコル入門 - やり取り

Webページが表示されるまで

ブラウザでサイトを開くと、裏側ではこんなやり取りが起きています。

1. リクエスト送信

ブラウザが「このページください」と送る

2. サーバー処理

サーバーが該当のデータを用意する

3. レスポンス返信

HTMLなどの中身を返す

4. 画面に表示

ブラウザが受け取って描画する

22
10
プロトコル入門 - やり取り

プロトコルは層になっている

プロトコルは1つではなく、役割ごとに積み重なって動いています。

プロトコルの階層(レイヤー)

通信は「アプリの会話」「届ける経路」「物理的な信号」など役割ごとに層に分かれ、それぞれ別のプロトコルが担当する。上の層は下の層の上に乗って動く。

上の層 アプリのやり取り(HTTPなど)

下の層 データを届ける役(TCP/IPなど)

各層が自分の仕事だけに集中できる

詳しくはTCP/IPやOSIの回で学ぶ

23
11
プロトコル入門 - やり取り

機器が違っても通じる理由

メーカーもOSもバラバラなのに通信できるのは、共通ルールのおかげです。

ルールが共通
  • 同じ手順・書式に従う
  • 中身の作りは問わない
中身は自由
  • 実装は各社まかせ
  • 守るのは外側の約束だけ
後から参加できる
  • 新しい機器もルールに従えばOK
  • 拡張しやすい
24
12

プロトコル入門 - HTTP

3

第3部 HTTPをのぞく

中身・暗号化・ポート番号

30
13
プロトコル入門 - HTTP

よく使うプロトコル早見表

用途と既定のポート番号をまとめます。代表的なものだけ押さえれば十分です。

用途
既定ポート

HTTP

Webページの表示

80

HTTPS

暗号化されたWeb

443

SMTP

メール送信

25

DNS

名前解決

53

SSH

安全な遠隔操作

22

31
14
プロトコル入門 - HTTP

HTTP の中身をのぞく(リクエスト例)

HTTPのリクエストは、実はこんなテキストでやり取りされています。

http
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html

# サーバーからの返事(レスポンス)
HTTP/1.1 200 OK
Content-Type: text/html

<html> ... </html>
32
15
プロトコル入門 - HTTP

HTTP と HTTPS

同じWeb通信でも、暗号化されているかどうかで安全性が大きく変わります。

HTTP(暗号化なし)

  • 中身がそのまま流れる
  • 盗み見されやすい
  • 改ざんに気づきにくい
  • ポートは80
  • 今は推奨されない

HTTPS(暗号化あり)

  • 中身が暗号化される
  • 盗み見されても読めない
  • 改ざん・なりすまし対策つき
  • ポートは443
  • 現在の標準
33
16
プロトコル入門 - HTTP

プロトコルとポート番号

どのプロトコルあてかは、ポート番号という「窓口番号」で見分けます。

ポート番号

1台のサーバーで複数のサービスを動かすための「窓口の番号」。IPアドレスで相手の建物を特定し、ポート番号でその中のどの窓口かを指定する。

IPアドレス どの機器か

ポート番号 その中のどのサービスか

HTTPは80、HTTPSは443 のように既定値がある

詳しくはポート番号の回で学ぶ

34
17

プロトコル入門 - デモ

4

第4部 デモ

実際の通信を見てみる

40
18
プロトコル入門 - デモ

デモ:通信のやり取りを見る手順

ブラウザの開発者ツールを使うと、実際のリクエストとレスポンスを目で見られます。

ブラウザで開発者ツールを開く(F12)
Networkタブを選ぶ
ページを読み込み直す
各リクエストのヘッダーとステータスを見る
41
19
プロトコル入門 - デモ

主要プロトコルの既定ポート番号

代表的なプロトコルに割り当てられた既定ポートを並べてみます。番号で見分けるイメージをつかみましょう。

445 ポート番号356267178890
22ポート番号
25ポート番号
53ポート番号
80ポート番号
443ポート番号
SSH
SMTP
DNS
HTTP
HTTPS

出典: 代表的なウェルノウンポート

42
20
プロトコル入門 - まとめ
クイズ

振り返りクイズ

今日の内容を確認しましょう。

プロトコルの説明として最も適切なものはどれ?

A
1社だけが使う秘密の通信方式
B
通信する者同士が従う共通のルール
C
データを暗号化する専用の機械
D
インターネットの回線そのもの
50
21
プロトコル入門 - まとめ
答え

振り返りクイズ 解答

プロトコルの説明として最も適切なものはどれ?

A
1社だけが使う秘密の通信方式
B
通信する者同士が従う共通のルール
C
データを暗号化する専用の機械
D
インターネットの回線そのもの

プロトコルは、通信する者同士があらかじめ決めておく共通の約束ごとです。同じルールに従うからこそ、メーカーやOSが違う機器同士でも通信が成立します。

51
22
プロトコル入門 - まとめ

質疑・次回予告

今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。

今日のおさらい
  • プロトコルは通信の共通ルール
  • HTTP/FTP/SMTPなど用途別にある
  • リクエストとレスポンスが基本
次回予告
  • TCP/IP 〜インターネットの土台〜
  • データが実際にどう届くかを学ぶ
52
23
"

プロトコルは「通信の共通語」。同じルールに従うから、世界中の違う機器同士が会話できる。ここが分かれば、この先のネットワークの話がぜんぶ地続きになります。

プロトコル入門

53
24