「FTPってなぁに? ファイルトランスファープロトコルです」
「ファイルトランスファープロトコルってなぁに? ファイルを転送するプロトコルです」
「ふむふむ、プロトコルってなぁに? 通信規約です」
「通信規約ってなぁに? 通信規約は・・・通信規約です」
「分かりやすく説明してよ ・・・例えば今私は日本語でしゃべっているとかとういうことです(モゴモゴ)」
「それ受け売りでしょ、その説明だと結局ピンときません」
インターネットに関わるようになると、HTTPやFTPなどという用語に出くわします。
それで調べて見ても結局、プロトコルという概念の実態が分からずにそのまま消化せずに通り過ぎてしまうケース。
良くありますよね。
「プロトコルって結局何やねん!」そんな人向けに今回はプロトコルを具体的にイメージできるように解説していきます。
この記事を読んで、モヤモヤを解決して行きましょう。
プロトコルとは教科書的な説明では"通信規約"
まずは、プロトコルの教科書的な説明を見てみましょう。
プロトコルとはコトバンクによれば以下のように定義されています。
コンピューター同士が通信をする際の手順や規約などの約束事。ネットワークでコンピューターが使う言語のようなもので、双方が理解できる同じプロトコルを使わないと通信は成立しない。
(引用:コトバンクhttps://kotobank.jp/word/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB-8535)
プロトコルとは上記の説明を借りるなら「コンピュータの通信に必要な手順や規則などの約束事」のこと。
"手順"や"規則"の意味はわかりますが、曖昧な説明で結局何を言っているのか分かりづらいですね。
プロトコルは"言語の違い"で説明される場合が多い
プロトコルの性質は"日本語"や"英語"のような言語の性質を用いて説明されることも多いです。
日本人:こんにちわ!
アメリカ人:???(W'hat did he say・・・?)
↓
日本人:hello!
アメリカン:hello! how are you?(笑顔)
英語で会話をしたいと思っている相手に、いきなり日本語で話かけても会話は成立しません。
この問題は会話を行う時に、お互いが日本語でしゃべるのか英語でしゃべるのか
(規則やルール)をあらかじめ決めることで解決できます。
プロトコルとは、この"何語"で会話をするのかに相当する概念だということだという説明がされます。
・・・しかし、筆者は上記の説明でも最初は全然理解できませんでした。
だって、パソコンは会話しないので、会話を例に説明されても
「結局、プロトコルって何?」とスッキリせず、プロトコルが"ファイル"を指すのか"ソフト"を指すのか
"プロトコルの実態"が何なのか説明されていないと感じたからです。
プロトコルとは通信に使用される技術の"種類"!
ネット初心者が目にするプロトコルと言えば、FTPやHTTP、IPなどが代表的ではないか。
しかし、こうしたWebサイトの運用をイメージする場合以外にも
実はプロトコルが広い意味で使われていることを知っていますか?
通信に使われる"機材の種類"もプロトコル!
実は、通信に使われるケーブルやハブ、コネクタの形状やピンの数など物理的なものもプロトコルになります。
パソコンを設置する時、接続に使用する機材が無いと通信は行なえません。
この機材にも色々と種類があるので、通信を行う際はそれらの種類を指定する必要があります。
そう考えると、実はこの機材の形状もプロトコルということになるのです。
「え、プロトコルって目に見えないものじゃないの??」と思った方は、車を例に出すと分かりやすいかもしれません。
パソコンがインターネットを見たり、メールを見たりする道具であるように車は移動するための道具です。
車が走るには、様々なエンジンのタービンやタイヤなど色々なパーツが連動する必要がありますよね。
パソコンやスマホで通信を行うためにも様々な工程があります。
ケーブルなどが物理的に接続されていることももちろん必要ですし、
パソコン間でデータのやり取りをしたり、受信したデータを人間が認識できるように処理したりする必要もあります。
車でもハイブリッドエンジンを搭載するのか、ガソリンエンジンを搭載するのかでまったく別の車になると思いますが、
コンピュータの通信も各工程のタイプを決めておかないと、通信に不都合が生じるのです。
つまり、プロトコルとはこうした通信に必要なそれぞれの工程の種類だと認識しておくとよいでしょう。
結局は"手順"や"規則"などのルールということになるのですが、言葉の意味を追いかけても実態は見えてきません。
通信技術の全体から個々のプロトコルを捉えることでイメージが湧きやすくなると思います。
パソコンもただの機械!
車で言うと"何インチ" とかと同じレベルの話でもプロトコルに該当します。
プロトコルを決めておくと、どのような規約で成り立っているかを誰でも理解できるようになります。
そのためパソコンが故障した時に業者、エンジニアさんが修理をしやすくなるのです。
こうしたプロトコルを定めているのは、車が世の中に発展していることと似ています。
車は一台一台同じルールで作られていると思います。
そして道路を走る時は同じ、ギアを入れてアクセルを踏めば
燃料を使って前進します。
それぞれの工程で役割は違ってもそれぞれの工程で部品の種類や組み方が設計図で決まっているでしょう。
ドライバーは中の仕組みを知らないけど、ドライブや出張に行けるので問題はありません。
携帯、パソコン、タブレットも同じように
URLを入れたり、メールの送信ボタンを押せば情報を通信でき、
私達ユーザーは内部の設計を知らなくても困ることはありません。
プロトコルやOSI参照モデルは
その内部の仕組みを各段階に区切って名前を付けているだけです。
ドライバーは車の内部の構造を知らないけど、
必ず内部の仕組みは毎回同じ動作をしてくれますよね。
プロトコルは目に見えませんが、私達がパソコンを使うどの瞬間も
必ずそれらの規約に則ったやり取りがされています。
OSI参照モデルとは?プロトコルは世界基準で決まっている!
こうしたプロトコルは"OSI参照モデル"と呼ばれる基準に基づき世界的に定義されています。
OSI参照モデルは、第1層から第7層の7つの階層に分けて通信に必要なプロトコルを分類したモデルです。
OSI参照モデルが世界的に決められているということは、つまり
世界中のコンピュータは現在、同じ考え方に則って作られているということです。ただしあくまで指針なので、全てがこれに従っているわけではありません。
<OSI参照モデル>
階層 | OSI参照モデル | 主なプロトコル |
第7層 | アプリケーション層 | HTTP,FTP,SMTP,POP3,RIP,XML,SQLなど |
第6層 | プレゼンテーション層 | |
第5層 | セッション層 | |
第4層 | トランスポート層 | TCP,UDP,SPX |
第3層 | ネットワーク層 | IPv4,IPv6,ICMP |
第2層 | データリンク層 | イーサネット,トークンリグ,ISDN,PPPなど |
第1層 | 物理層 |
OSI参照モデルにより、プロトコルは分かりやすいように段階的に整理されるため
視覚的に同じグループのプロトコルとして意識しやすくなります。
あなたがまだ知らないプロトコル!こんなにたくさんある
それではプロトコルにはどんな種類があるのか代表的なものを確認していきましょう。
HTTP
ホームページ閲覧。パソコンとWEBサーバーのデータのやり取り。SSL
暗号化通信のプロトコル。httpsから始まるホームページで使われます。POP3
メールソフトで メールサーバーからメールを受信。SMTP
メールソフトで 自分のメールサーバー・相手のメールサーバーへ送信。FTP
パソコンからサーバーへファイルの転送。ホームページ作成のファイルアップロードなどで使われます。SMB
ネットワーク内のパソコンやプリンターの共有。DHCP
ネットワーク内のパソコンや機器へのプライベートIPアドレスの割り当て。NTP
パソコンとインターネット上のNTPサーバーと時刻を合わせるプロトコル。TCP
信頼性・確実性を重視したデータ送受信。HTTP、HTTPS、POP3、SMTP、FTPなどと組み合わされて使われます。 ホームページ閲覧、メール送受信、ファイル転送など。UDP
転送速度・リアルタイム性を重視したデータ送受信。IP電話、ビデオ会議、チャット、動画ストリーミングなどで使われます。IP
データ・パケットを指定された場所まで届ける。インターネットで幅広く使われるプロトコル。IPsec
データ・パケットを暗号化して指定された場所まで届ける。VPNなどで使われます。Ethernet
広く普及しているLANによる接続。PPPoE
PPP over Ethernet。EthernetでPPPプロトコルを利用して通信するプロトコル。ブロードバンド接続などで使用されています。
引用(https://www.pc-master.jp/internet/tcp-ip-protocol.html)
これらは、私達が普段利用するインターネットの中で認識しているもの、認識していないものもありますが
全て私達の"通信"を支えています。
Web初心者が触れる代表的なプロトコルを理解しよう
HTTPやFTP、IPは新人のWeb担当者や趣味でブログをかじっている人は耳にしたことがあると思います。
プロトコル:HTTPとは
httpとはハイパーテキストトランスファープロトコル。
ハイパーテキストを転送するプロトコルのことです。
ではハイパーテキストとは何なのかというと、
私達が閲覧しているWebサイトの元となるテキストデータのことです。
実は今すぐにハイパーテキストは確認できます。
キーボードの「ctrl+U」を押すと、新しいタブに小難しい文字列が表示されます。
これがハイパーテキストと呼ばれるテキストデータになります。
ハイパーテキストとは、タグ付きのテキストを送って来ています。
通常のテキストデータとは異なる特殊なテキストになっています。
何が特別なのかというと、ハイパーテキストを使うと
文字情報以外に画像や音楽、動画などを付加したり、見出しや装飾を行うことができるようになります。
私達が普段閲覧しているWebサイトは実は、こうした特殊なテキストデータから成り立っています。
(ちなみに、このハイパーテキストを人間が見える形で表示してくれているのは"ブラウザ"だ(ありがたい))
HTTPとは、ハイパーテキストを送受信する規約という意味なので、
このデータを転送する時に使用されているものだとイメージする覚えやすいです。
ホームページやWebサイトを閲覧する時にはすべてHTTPが使われていると覚えられます。
プロトコル:FTPとは
では、HTTPだけあればWebサイトを閲覧できる技術が全て解決するのかというと答えはNOです。
私達が見ているサイト上の画像や動画は、私達のパソコンに送られてくるわけではないことを考えてみます。
画像や動画はちゃんとダウンロードをしないと私達のパソコンには保存されません。
つまりブラウザでWebサイトを閲覧している時は画像や動画データを一時的に表示しているに過ぎません。
その元データは"サーバー上"に保存されています。
サーバーとは世界中にあるデータの保管庫のようなものです
私達はそこにアクセスをするから世界中の情報を自宅にいながらに閲覧できます。
では、その元データは誰が作っているのでしょうか?
答えは
・ブロガー
・サイト運営者
・管理人
などの情報発信者です。
これらの情報発信者は一般の閲覧者とは異なり、ハイパーテキストを作成し、画像や動画などの元データをサーバー上にアップロードしなくてはなりません。
だからFTP(ファイルトランスファープロトコル)が必要になります。
HTTPで触れたように、ハイパーテキストだけをアップロードするわけではないからです。
情報の受け手ではなく、発信者になった時にFTPという概念に出くわすことになります。
では、こうしたファイルの送受信=プロトコルとイメージして良いのでしょうか。
プロトコル:IPとは
IPやIPアドレスというものを聞いたことがあるかも知れません。
IPアドレスとはパソコン同士が通信をするために必要な識別番号のことです。
パソコンやルーターごとに付与されており、あなたのIPアドレスも以下のサイトで確認できます。
IP確認くん
http://www.ugtop.com/spill.shtml
例えばWebサイトを閲覧する時、サーバーのコンピュータは世界中にあるコンピュータのどこにデータを送信していいかわからないのでコンピュータごとに識別番号を付与することであなたのリクエストしたデータがあなたのパソコンに送られてくるようになっています。
この識別に使われるプロトコルが、IPです。
「ん?・・・ちょっと分からなくなってきた」
「IPがプロトコル?識別が通信規約?さっきのデータの話はどこいったの?」
となってしまう人多いとように思います。
ここで注意したいのは
・HTTPの話で送受信されるハイパーテイストはあくまでテキストデータ
・FTPの話で送受信されるのは画像データや動画データ、テキストデータ
・IPの話で出てきた数字列は"IPアドレス"
どれも"プロトコルではない"ということです。
だから身の回りのプロトコルを追っかけてしまうと本当に知りたいことを見失ってしまいます。
ここで定義に戻ってみると、
プロトコルとは"手順や規則などの約束事"という曖昧な言い方がされています。
この手順や規則に当てはまっていればすべてプロトコルなのです。
プロトコルの参照モデルが決まっていると誰が得をするの?
プロトコルを決めることで、世界中の異なる地域の人たちがパソコンを作れます。既存のルールに則って新しい機械を作ることができます。ハードウェアもソフトウェアもすべて、このプロトコル上で動作するように作られています。
これらは同じモデルの車が世界中で作られるのと同じですね。
またプロトコルが決まっていることで、エンジニアの人がトラブルシューティングをしやすくなります。そのため通信機器を作る時に既存の枠組みを作るだけでいいので色々な企業が参入しやすくなります。
まとめ
いかがでしたか?今回は意外と理解が難しいプロトコルの概念について分かりやすく解説してきました。知らないと困ることは少ないかも知れませんが、インターネット用語をイメージしやすくなってくれれば嬉しいです。