IT

【超初心者向け】プロトコルとは?意味と使われ方をTCP/IPを用いて分かりやすく解説します!

本記事は教養記事シリーズその23です。その他の教養記事はコチラの目次をご覧ください。

★この記事の流れ★

プロトコルとは?
具体的な使われ方

本記事は初学者の理解を優先しているため正確性に欠ける場合があります。致命的なミスはご指摘いただけますと助かります。

プロトコルとは

プロトコル(protocol)を一言で表すと「PC同士の約束事」です。もともと英語では「外交儀礼」という意味があります。

 

外交儀礼って…?
意味わからんわ!

 

ネットワーク用語としてプロトコルが出てくる点がよく分からないですよね…。しかし,外交儀礼という原義もあながち間違いではなく,むしろ要点をついているように思えます。というのも,ネットワークというのは複数のPCがつながりあう環境のことを指していますから,PC同士の「外交」を支えるためのルール(儀礼)がプロトコルということになります。

よくプログラミングはパソコンへの命令だと言われます。パソコンは人間が書いたコード通りに正直に動きます。ですので,決まったルール(プロトコル)を定めておくことで秩序が保たれた状態でネットワークを構成することができるのです。

 

Webサイトのしくみ

具体例はWebサイトに関するプロトコルです。Webサイトに関しては「HTTP」が用いられます。HTTPは「Hypertext Transfer Protocol」の頭文字を取ったもので,ネット上のファイル(Hypertext)を移動させる(Transfer)ためのプロトコルという意味です。

せっかくなので,HTTPだけではなく,それよりも大きなくくりである「TCP/IP」についてお伝えした後にもう一度HTTPに戻ってWebサイトのしくみをお話ししていこうと思います。

 

TCP/IPプロトコル

TCP/IP(Transmission Control Protocol/Internet Protocol)はネット通信を支える複数のプロトコルの総称です。インターネット環境を支えるプロトコルはいくつもありますが,その中で中心的な役割を果たすものがTCPとIPであることから,TCP/IPと呼ばれるようになりました。

現在では多くの種類の機器から同じWebサイトにアクセスできますよね。WindowsであってもMacであってもAndroidであっても同じです。これは,すべての機器がTCP/IPプロトコルに従って通信を行っているからなのです。

 

TCP/IPは4つの階層に分けることができ,下から順番に「ネットワークインターフェース層」「インターネット層」「トランスポート層」「アプリケーション層」と呼ばれています。

4層に分けられます

●アプリケーション層:HTTP,POP3,SMTPなど
●トランスポート層:TCPなど
●インターネット層:IPなど
●ネットワークインターフェース層:Ethernet,PPPoEなど

これらの階層ははネット通信の規則を階層に分けて整理したモデル(OSI参照モデル)に対応した形で定められています。

 

試しに,AさんがWebサイトを閲覧する場合の流れについて考えてみましょう。基本的には「Aさん→Webブラウザ→Webサーバ」という順番でWebサーバにサイトを見たいというお願い(HTTPリクエスト)をすることで,Webサイトを見ることができるようになります。

Webサイト閲覧の流れ

詳しく見ていきましょう。Aさんがあるサイトにアクセスしようとするときは,URLをクリックするか打ち込みます。最初のアプリケーション層ではWebブラウザ(Chrome/Safari等)はWebサーバに「このサイトを見せてください」というお願いをHTTPに従って出します。(HTTPリクエスト)

実際には,送信するデータは「パケット」と呼ばれる小さなかたまりに分割されて通信が行われます。

 

しかし,Webサーバの住所が分からなければお願いが届きませんよね。そこで,次のトランスポート層とインターネット層ではそれぞれ送信先の「ポート番号」「IPアドレス」を取得します。ポート番号はマンションの部屋番号,IPアドレスはマンションの住所というイメージです。

実際には同時に送信元のポート番号とIPアドレスも取得します。

 

そして最後のネットワークインターフェース層ではそれらの情報を電気信号(0 or 1)に変換して送信先(あるマンションのある一室)に届けます。こうすることで,ようやくWebサーバにリクエストが送信されました。

付け加えられる情報

1つ補足しておかなくてはいけないことがあります。「このサイトを見たい」というリクエストをあるはがきだとします。実際には,それぞれの層を通過していくときに新しい封筒に包まれていきます。トランスポート層でポート番号を取得することは,ポート番号という情報を付け加えたうえで封筒に包むのです。

どんどん封筒に包まれていきます
このように新たに付け加える情報はヘッダと呼ばれます。

 

さて,ここまでの流れをまとめてみましょう。Aさんがサイトを閲覧するときは,Webブラウザを通して「このサイトを見たい」というハガキを何通かに分けて(パケット)出します(HTTPリクエスト)。その次に,ポート番号の情報(ヘッダ)が加えられてハガキが封筒に包まれ,さらにIPアドレスという情報(ヘッダ)が加えられて,封筒が新しい封筒に包まれます。最後に,電気信号の情報(ヘッダ)が加えられて,またしても新しい封筒に包まれます。

このかさばった封筒は,それぞれの封筒をチェックしながらWebサーバに正しく届けられます。リクエストを受け取ったWebサーバは先ほどと同様の流れでAさんにWebサイトの情報を届けるのです。

 

TCP/IPに含まれるプロトコル

●HTTP:サイトの閲覧やWebサーバーとのデータのやり取りに関して
●SSL:暗号化通信に関して
●POP3:メールの受信に関して(詳しくはコチラの記事へ)
●SMTP:メールの送信に関して(詳しくはコチラの記事へ)
●FTP:サーバーへファイルの転送に関して
●SMB:パソコンやプリンターの共有に関して
●DHCP:機器へのプライベートIPアドレスの割り当てに関して
●NTP:NTPサーバーの時刻に関して
●TCP:信頼性・確実性を重視したデータ送受信に関して
●UDP:転送速度・リアルタイム性を重視したデータ送受信に関して
●IP:データを届ける場所に関して
●IPsec:データを届ける場所の暗号化に関して
●Ethernet:LAN接続に関して
●PPPo:LAN接続の通信に関して

 

ひとこと

なかなかややこしい分野です。というのも,深く知れば知ろうとするほど難しい概念や知らない単語にぶち当たるので,泥沼にはまっていくかのような感覚に陥ります。「どこまで簡略化してお伝えするか」というのが1番の問題点で,例えば「WebサイトはHTTPに従って通信されます!」とお伝えすることもできました。しかし,それではさすがに適当すぎると思ったのでTCP/IPまで踏み込んでしまいました。

ABOUT ME
zuka
京都大学で機械学習を学んでいます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※ Please enter your comments in Japanese to prevent spam.