記事では、通信のルール(プロトコル)をレイヤー構造にしている意味などを紹介しています。ルールをレイヤー(階層)に分けると、複雑な送受信の約束事も単純化されるからです。何故、階層構造にすると、シンプルになるのかを分かり易く紹介しています。
通信プロトコルは、何故レイヤー構造なのだろう
通信関係の専門書には、プロトコルはレイヤー構造になっていると説明されています。
レイヤー構造とは、層が積みあがった構造です。一般的には、四角い積み木が数段重なったような模式図で紹介されます。
レイヤー構造にする理由は、複雑な通信プロトコル(ルール)を単純化するためです。
ところが、複雑な送受信の約束事を単純化するはずのレイヤーを嫌がる人は、大勢います。きっと、模式図の意味とレイヤーが結びつかないのでしょう。
同種のもの同士をレイヤーにする利点
コンピューターや、さまざまな機材などを通して通信するためには、データや情報が同じルールで送受信されなければなりません。
ウェブの世界では、ルールは、プロトコルと呼ばれていて、データ形式と通信手順が決められています。
これらのルールや手順を、一つずつ定めると複雑で大変な作業になってしまいます。
これに対処するため考え出された方法が、作業ごとのプロトコル(ルール)をレイヤー(階層)に分けて、それぞれの作業を単純化することです。
こうして単純化した作業のプロトコルをレイヤー(階層)にしたのです。
全体をみると複雑な作業でも、各レイヤー(階層)は、単純なルールで構成されています。
では、どのようにしてレイヤー(層)を作るのかを見ていきましょう。
《レイヤーの上下層の関係》
レイヤーの構成は、関連するもの同士をまとめて1つの層に入れます。共通しているものや単純なものは下の階層へ、そして、複雑な機能や個別の機能を実現するルールは上の階層に入れることにします。
このようにして各レイヤーを作って、上下階層の位置関係を明確化します。
次に、情報をスムーズに伝えるため上の階層のプロトコルは、下の階層のプロトコルを利用できる仕組みにします。
具体例があると分かり易いため、料理の作り方をレイヤーに分ける例で紹介します。
レイヤーの具体例
肉野菜炒めでは、野菜や肉の切り方のような、素材の加工法の階層と、肉野菜炒めの作り方の手順の、調理法の階層に分けます。
素材の加工法という階層(レイヤー)は、共通しているものや単純なものの分類にして、下のレイヤーに置きます。
そして、調理法は、上の階層(レイヤー)にします。
このようなレイヤーにすると、野菜や肉を切る担当者は、切り方の手順だけに精通すれば良いので作業は単純化します。
また、肉野菜スープという類似したレシピを加えた時にも、野菜や肉の切り方は、肉野菜炒めの時と共通事項として使いまわしが可能になります。
この具体例をみると、同じような作業のルールは同じ場所(レイヤー)に置いて、必要な時に見に行けば良いのです。
これで、レイヤーに分けるとルールが単純化するということが、理解できるでしょう。
まとめ
通信のルール(プロトコル)をレイヤー構造にしている意味について紹介してきました。
ルールを、レイヤー(階層)に分けることで複雑な送受信に関わる約束事も、単純化できることを理解して頂けたことでしょう。
通信プロトコルのレイヤーは、機能を7階層で整理したOSI参照モデルで紹介することもあります。
OSIは、Open System Interconnectionの頭文字です。
このOSI参照モデルについては、別の機会に紹介することにします。