動画Verがオススメ
通信プロトコルとは?
皆さんこんにちは、「みんなのSE・IT講座」
現役SE講師の筋肉鉄アレイです。よろしくお願いいたします。
今回は「プロトコル」について、
IT・NWの初学者の方向けに、基本を理解していただくことを目的として、なるべく簡単にわかりやすく解説したいと思います。
それでは早速、解説を始めます。
通信プロトコル=通信の決まり事
ITのNW(ネットワーク)技術における「プトロコル」というのは、正確には
・ネットワークプロトコル
あるいは
・Communications protocol(英)
と言います。
「プトロコル」という言葉は、コンピュータができる前から存在する言葉で、日本語に訳すと
2可算名詞 条約原案; 議定書,プロトコル.
3可算名詞 (国家間の)協定.
(weblio英和辞典より)
などとなります。
簡単に言うと「決まり事、取り決め」と言ったところでしょうか。
つまり、
通信プロトコル = 通信の決まり事
ということになります。
wikipediaの通信プロトコルの説明にも、
「通信プロトコル(つうしんプロトコル、Communications protocol)は、通信に関する規約を定めたものである。」
とあります。
通信プロトコルの具体的なイメージ
さて、ここまでは皆さんインターネットでプロトコルについて調べて、すぐにわかるところかと思います。
問題はその先。ではその「通信の決まり事」とは一体なんなのか?どういうことを言っているのか?
その具体的なイメージが先ほどの説明だけでは浮かびづらいのではないかと思います。
通信プロトコルの具体的なイメージについて、例を用いてご説明したいと思います。
あなたには気になる異性がいました。
その異性は文字を書くことが苦手で「0」と「1」しか書けませんでした。
ある日、あなたはその異性から手紙でメッセージを受け取りました。
手紙には
「101001100010」
と書かれていました。
さて、あなたにはこのメッセージの意味がわかりますでしょうか。
当然わからないと思います。
そこで必要となってくるのが「通信プトロコル」です。
あなたは、手紙が入っていた封筒に「メッセージは『LLプロトコル』です」と書かれていたことに気づきました。
『LLプトロコル』の内容(つまり、決まり事)は次の通りです。
・先頭(左)から3文字区切りで、右に向かって読むこと
・000=あ に読み替えること(以下同)
・001=い
・010=き
・011=し
・100=す
・101=だ
・110=て
・111=る
あなたは、『LLプロトコル』の決まりごとに沿ってメッセージを読み直しました。
101 001 100 010
だ い す き
先頭から右に向かって読むと「だいすき」と読むことができます。
なんと!メッセージの内容は愛の告白だったんですね~!
単なる0と1の羅列であったメッセージですが、『LLプロトコル』を用いたことにより、メッセージの内容を理解することができました。
さて今度は、逆に『LLプロトコル』を使って返事の手紙を書いてみましょう。
あなたは「あいしてる」というメッセージを送りたいとします。
その時は『LLプロトコル』のプトロコルに沿って、
あ い し て る
000 001 011 110 111
「000001011110111」
と手紙に書けばOKです。
手紙を受け取った相手は、あなたがメッセージを読み解いたときと同じように、『LLプロトコル』に沿って読み解くことで、メッセージの意味を理解することが出来ます。
以上のように、ただの「0」と「1」が羅列されただけのメッセージでも、通信プロトコルという取り決めがあることによって、意思疎通を図ることが出来るのです。
通信プロトコルの例は以上となります。
なんとなく、プロトコルの必要性や実態について理解していただけましたでしょうか。
因みに、LLプロトコルは私が勝手に作ったプロトコルです。正式名称は「LoveLetterプロトコル」です。
実際に存在するプロトコルを確認
さて、通信プトロコルの大まかな説明は以上になります。
次はせっかくなので実際に存在するプロトコルを確認してみましょう。
こちらの図はIP(インターネットプロトコル)というプロトコルの構造を表した図です。
インターネットプロトコルは、皆さんおなじみのインターネット通信で使われている非常にメジャーなプロトコルです。名前の通りですね。
図の中の1メモリは1byteを表しており32byteで区切って表記されています。
定義が長いので、図としては32byteで区切って表記されていますが、頭からお尻まで一直線に直列につなげた形をイメージした方が考えやすいと思います。
それでは内容を見ていきます。
定義されている要素が多いため、複雑に見えるかも知れませんが、基本的にはLLプロトコルと同じようなことが定義されており、
ここからここまでの範囲はこの内容を表す、その次からここまでの範囲はこの内容を表す。というとこが定めらています。
具体的にはご覧いただいている通り、
0バイト目〜3バイト目はIPのバージョン
4バイト目〜7バイト目はヘッダ長
少し飛ばして、
96バイト目~127バイト目は送信元IPアドレスといった具合です。
それぞれの範囲に0と1を組み合わせた値を入れることで通信相手にその内容を伝えます。
そこにどんな値を入れれば良いかも別途きちんと定義がされていますが、その内容はかなり専門的な部分になりますのでご説明は省略します。
ひとまずは、「実際のプロトコルはこんな内容が定義されているんだ」と、なんとなく知って頂ければ十分かと思います。
今回のプロトコルの説明は以上です。
プロトコルって一体何なのかよくわからない!そんな疑問の解消に少しでもお役に立てたなら幸いです。
ご欄頂きましてありがとうございました。