質問: プロトコルとインターフェースについて
回答: 私が階層モデルを説明する時には電話の例をいつも使っています。 「電話を使った会話」を階層の階層としては 1使用している人間・・・意味を持つ情報を声で発する 2電話機自身・・・音を電気信号に変換する 3電話線・・・電気信号を伝える と考えることができると思います。 で、この考え方のすぐれている点は、変更を加える際、1つの階層の中だけで完結することができる点です。 例えば、今までは日本語で喋っていたけど、英語で喋りたいと思った場合、1の人間が使用する言語を英語に変更するだけで、2も3も変更は一切必要ありません。 これは、電話機は受話器から聞こえてくるものを「声」と認識せず単なる「音」と認識し、それをあらかじめ決められた処理で電気信号に変えているだけだからです。 つまり、電話機の視点では、上からやってくる音がどういう情報を持っているのか?などを一切考える必要なく、受話器から入ってくる音に対して単純に決められた処理を施しているにすぎません。 また、電話線の部分も同じで、今までは線で実際に接続していましたが、新しく電波を使ったコードレスにしたいといったとき、当然それを使用する人間は、コードレス電話になったからと言って喋る内容を変えたりしませんし、意識しないはずです。 このように、階層モデルは下記階層ごとに処理内容を完全に独立させることによって、その階層内の処理に関しては他の階層の内容を意識したりする必要をなくした考え方なんです。 ちなみに、先ほど言語を「日本語」から「英語」にという例を挙げましたが、片方が日本語である種の情報をもった声を発信すると、反対側の受話器からは意味を持った声が聞こえますが、その声を耳にした人間が英語しか理解できない場合、その聞こえてきた声から情報を正しく読み取ることはできません。つまり、これは双方が同じ言語を扱えるというのが前提になります。つまり、これがプロトコルなんです。その階層ないのプロトコルを変えた場合でも、他の階層は既存のものを使用できるわけです。 ちなみに、階層モデルは、完全に階層ごとに処理は独立していますが、上下の階層間で情報のやり取りをするための最低限の繋がりは必要になります。例えば、人間が正しく電話機を使用する場合、電話機の各ボタンの意味などの使い方を知識として持っておく必要はあります。ですが、その電話機の仕組みなどの内側は知る必要が無いわけです。このような、上下の階層を結びつける最低限の繋がりがインターフェイスです。 例えば、犬であっても日本語というプロトコルさえ使用できれば、人間と意味を持った情報のやり取り、つまり会話が成立するわけですが、ではなぜそれが出来ないかというと、犬には日本語を学習する能力がない、つまりインターフェイスが備わっていないからなんです。 この様に、普段意識はしませんが、階層モデルという考え方自体は色々な所で生かされています。そしてこの考え方をネットワーク通信に当てはめて、このようにネットワーク通信の処理の流れを分けましょうとISOが提唱した1つのモデル(考え方)がOSI参照モデルです。