通信のしくみ(3/3)~ プロトコルスタック編 ~
2016/12/15
通信のしくみ
~プロトコルスタック編~
基本のおさらい
通信は、以下の(1)~(4)の流れに沿って、行われるものでした。
デジタル通信における(1)~(3)は、~データリンク編~ で見てきました。
~プロトコルスタック編~ では、(4)共通認識 について見ていきましょう。
共通認識 に関するしくみ
ネットワーク内の通信機器や相手とあらかじめ決めておく通信のルール
をプロトコルと言いました。
このルールの例えとして、
物が作られてから消費者の手に渡るまでの流れ
で考えていきましょう。
商品の流れ(流通)に例えると…
物を作って、作った人が手渡しで1つずつ消費者に売る…
こういうやり方は、あまりされません。通常は、以下のような流れです。
※パレットとは、段ボールをまとめて運べる台のことです。
(1)
物が作られたら、出荷する部署で箱詰めされ、卸売倉庫に保管されます。
↓
(2)
注文を受けたら、運送業者によって物流センターに運ばれます。
↓
(3)
在庫状況によって物流センターから各販売店に配送し、販売店で消費者に販売されます。
もちろん、他の売り方もありますが、だいたいはこんな流れだと思います。
流通のルール
消費者がこの流れを意識することは、普段あまりないと思います。
日々当たり前のように行われている流れではありますが、この流れが実際
スムーズに動くのも、あらかじめルールが決められているからなのです。
ルールと言っても、
「箱の大きさ」
「箱の重さ」
「箱の丈夫さ」
「箱の開け閉めのしかた」
「ラベルの付け方・見方」
「届く時間」
・
・
・
などであり、わざわざ決めていなくても社会常識で暗黙のルールというものもあります。
※ 例えば、段ボールの開け方などの常識は、社会が異なれば通じなくなるので、一種の社会的ルールと言えます。
ルールが大事
しかし、もしもルールを決めていなかったり、守られていなかったらどうでしょう?
例えば、いつもと違って、鍵のかかった箱が送られてきたり、
中身や送り主がわからない形で送られて来たら、販売店はきっと大混乱するでしょう。
接点間のルール
そこで、各関係者間で、あらかじめルールを決めておきます。
通常、流れの前後にある関係者と、ルールを決めておく必要がありますね。
このルールをインタフェースと言います。
各レベルごとのルール
さらに、同じレベルの物を扱う人の間にも、共通のルールが必要です。
これがプロトコルです。(下図「段ボール」など、左右方向の矢印)
プロトコルは、その前後のプロトコルとインタフェースを持って重なり、
地層のように積み重なっています。
これをプロトコルスタックと言います。
郵便の例
通信の場合も、共通認識を成功させるカギが、このプロトコルスタックになります。
郵便を例にすると、以下のようになります。
デジタル通信の例
デジタル通信でも、同じようにプロトコルスタックがカギとなります。
※ わかりやすくするため4層の図にしていますが、実際には何層にも様々な層のとり方があります。
インターネットの例
インターネットの例では、以下のようなプロトコルスタックになります。
※ わかりやすくするため4層の図にしていますが、実際には何層にも様々な層のとり方があります。
まとめ
通信で届けたいデータは、相手と共通のルール(プロトコル)に従い、変換してから送ります。
プロトコルは地層のように重なっており、これをプロトコルスタックと言います。
データの受信側では、送信側と逆順のプロトコルに従いデータを再生し、共通認識を得ます。
だから…
送信側と受信側で、同じプロトコルに対応している必要があります。
人間が使う通信アプリは、
プロトコルスタックの上層部のプロトコルに合わせてつくられています。
ネットワークアダプタは、
データリンクで使うプロトコルに合わせてつくられています。
OSの通信機能は、通常、
プロトコルスタックの中間層のプロトコルに合わせてつくられています。
通信のトラブル対応では、プロトコルスタックのどこに問題があるのか、
その特定がカギになります。