ネットワークの入門者が必ずと言っていいほど戸惑う「OSI(基本)参照モデル」。
「RFC1122」とあわせて知ると、少し視界が晴れるかも。
「OSI参照モデル」と「RFC1122」について、説明します。
「OSI参照モデル」は利用されていないモデル?
「OSI参照モデル」は「システムの相互接続を目的とする既存の規格及び今後制定する規格の相互調整に用いる枠組み」としてISO(国際標準化機構)によって策定されました。
ISO/IEC 7498-1:1994 Information technology — Open Systems Interconnection — Basic Reference Model: The Basic Model — Part 1
JISX5003:1987 開放型システム間相互接続の基本参照モデル
1 適用範囲
しかし、この「OSI参照モデル」は、その目的を達成することができませんでした。
現在のコンピュータ間の通信は「OSI参照モデル」とは【別の枠組み】で実現されることになってしまったからです。
「OSI参照モデル」に準拠した規格は広く普及しませんでした。
目的を達成できなかったという意味で、「OSI参照モデル」は標準化に失敗した枠組みとも言えるかもしれません。
インターネットプロトコル群
現在のコンピュータ間の通信は、TCP/IPを代表とする「インターネット・プロトコル群」で実現されています。
この「インターネット・プロトコル群」は「OSI参照モデル」では【ない】、別の枠組みを前提としています。その別の枠組みとは「RFC1122」に定義される以下のような4階層モデルです。
- アプリケーション層
- トランスポート層
- ネットワーク層
- リンク層
インターネット・プロトコル群と「OSI参照モデル」の対応
一般的な「OSI参照モデル」の説明を読むと、必ずといっていいほど「OSI参照モデル」(の各階層)とインターネット・プロトコル群の対応が出てきます。
https://www.cisco.com/c/m/ja_jp/primer/osi-reference-model.html
このような説明を読むと、インターネット・プロトコル群が、まるで「OSI参照モデル」を前提に策定されている、もしくは準拠している、というような錯覚をおこします。
しかし、「OSI参照モデル」とインターネット・プロトコル群の対応は、【別々の枠組みを"あえて"対応させる】試みです。完全に整合性が取れるものではありません。
対応を進めると、「OSI参照モデル」とインターネットプロトコル群がうまく合致しないことに気づきます。
「OSI参照モデル」とインターネット・プロトコル群を対応させる試みと、そこに存在するギャップ、これがネットワーク入門者を混乱させる一つの要因だと思います。
ネットワーク入門者には「OSI参照モデル」の前に「RFC1122」の階層モデルを説明したほうが混乱が少ないと思います。
コンピュータ間の通信が、複数のプロトコルで段階的に構成されているという考え方を示すための階層モデルは「OSI参照モデル」でなくとも「RFC1122」でも伝えることはできますし、「インターネットを実現するプロトコルは、原則的にこの4階層にしたがって策定されている」と説明されたほうが理解が容易です。入門者が後に学ぶ各種プロトコルとも整合性があうため、ギャップに悩むことが少なくなると思われます。
どうして「OSI参照モデル」を勉強するのだろう?
「OSI参照モデル」の階層は「開放型システムの基本要素,及びその構成と機能に関する幾つかの重要な事項を定め」た結果として7つ分割されています。
通信に必要となる構成、機能からモデルを作り上げているため、7階層の役割をみるだけで、通信に必要な構成や機能が俯瞰できるようになっています。
JISX5003:1987 開放型システム間相互接続の基本参照モデル
4 4.3
一方で「RFC1122」の4階層モデルは、4つの階層になった理由については特に言及がありません。「RFC1122」が関係組織の「コンセンサス」であると言及していることから、「コンセンサス」から4階層になったと推測されます。
RFC1122 1. INTRODUCTION
このような経緯から、この4階層の役割だけで通信に必要な構成、機能が俯瞰する難しいでしょう(もちろん「RFC1122」読み込めば把握できるとは思います)。
この「OSI参照モデル」の階層が通信の構成、機能をよりよく説明している点が通信を学ぶ上で「RFC1122」よりも優位な点です。
「OSI参照モデル」を学ぶ一つの理由でしょう。
(ただ皮肉なことに、構成・機能に対する「OSI参照モデル」の厳密さは、実装する際の複雑さとなってしまい、広く普及しなかった原因の一つになってしまいました。)
まとめ
ネットワーク入門者は「OSI参照モデル」だけではなく、先に「RFC1122」の4階層モデルを学び、次に「OSI参照モデル」を学ぼう。
「OSI参照モデル」からは通信に必要な構成・機能を学ぼう。