通信プロトコルについて勉強したので、まとめてみました。
もしも『ここちがうよ』みたいなのがありましたら、優しく教えていただけると幸いです
(今絶賛ネットワークの勉強をしているので、更新していこうと思ってます。)
通信プロトコルとは
コンピューター同士の通信のルールのことらしい。
コンピューター間で通信する際に従わなければならないルールで、『通信プロトコル』または省略して『プロトコル』っていう。
通信プロコトルの構成要素は2つ
じゃあそのルールはって話ですが、何かというとコンピューター間で通信を擦る際には
- 通信するデータの形式
- 通信する手順
を記載した上で、通信しましょうってことらしい。
通信するデータの形式
これはシンプルで、通信する際に、
『どんなデータ形式で通信しますか』ってのを定めましょうってことかと。
- 何も考えず、ひたすら適当にデータを投げてしまったら、受け取る側はデータを受け取れきれないよね
- じゃあ、通信するデータの形式を決めて、データのやり取りしっかりしようぜ
ってことなのかなと思います。
人間ってのはコミュニケーションを取ると思います。その際に、自分の好きな方法でコミュニケーションを取ろうとしても、取るのって結構難しいですよね。
ましてや、大人数の場でみんながそれぞれ好きな方法でコミュニケーションを取ろうとしたら、理解するのって難しいですよね
『じゃあ、言語っていう形式を用いてコミュニケーションを取ろうね』ってことで、人間は言語や言葉という形式を用いて、相手に自分のこと(データ)を伝えています。
通信する手順
これも文字通りで
どの順序でどのようなやりとりをするかを定めようぜってことだと思います。
よく英語とかで『SVCO』みたいなのをやったと思うんですけど、おそらくSVCOみたいな感じで、しっかりと順番を決めていこうぜってことなんじゃないかなって思います。
通信プロトコルは基準がちゃんと決まっている
通信プロトコルはIETEって団体がRFCって英語の文書で公開していて、この情報に則ってハードウェアやソフトウェアはつくられているそうです。
プロトコルはいくつもの層になっている
一個前の見出しで『通信する手順』みたいなのを書いたのですが、実際にインターネットの通信手順を決めるのって結構膨大な作業らしいです。
通常通り通信できた場合とできなかった場合、セキュリティーなど、考慮する事項も多く、まあとにかく大変だと。
そこで、通信プロトコルは、いくつか細かく分かれていて、別れたもの1つ1つは、そこまで大きな範囲を取り扱わず、小さい範囲を取り扱おうってことらしいです。
そして、それら小分けされたプロトコルは、ただ小分けされただけではなく、階層構造(レイヤーって言葉でよく言われてるやつかと)をなしています。
なんでプロトコルは階層構造になっている?
これはおそらくですが
- 通信に問題が発生したときに、どこで問題が発生したのかがわかりやすくなる
- 他のものと取り替えたりするのがとても楽だから
何じゃないかなと思いました。
どこで問題が発生したのかがわかりやすい
それぞれの階層は、それぞれ独自に定められたプロトコルというものが設定されています。
そのため、どの階層で問題が発生したのかをすぐに確認する事ができます。
他のものと取り替えが楽
これは、多少階層構造の話になりますが、各階層の間にはインターフェースと呼ばれるものが挟まれています。ので
一階層目→二階層目
というふうに行くのではなく
一階層目→インターフェース→二階層目というしくみになっているらしいです。
インターフェースを挟まないで直接二階層目に行くと、二階層目にどっぷり依存をしてしまいますが、インターフェースを挟むことでその依存を着ることができるそうです。
そうすることで、下位階層に依存を減らせるらしいです。
その他にも情報の隠蔽とか色々とあるそうですが、一旦は無視します。
参考書籍・記事