IT初学者の素朴な疑問　TCP/IPモデルとOSI参照モデルって一体何なのさ


##  ネットワークを理解する入り口に立ちはだかる２つの謎

ネットワーク通信や、通信のための標準的なプロトコルであるTCP/IPについて学ぼうとすると必ず目にするものが２つあります。
1. TCP/IPモデル
2. OSI参照モデル

です。

初学者の私には、それぞれに対して不明点がありました。

TCP/IPモデルに関して言えば、TCP/IPというプロトコル群に対して、どういう関係があるのか？私にはつながりが見えませんでした。

OSI参照モデルに至っては、「とりあえず７層覚えよう」と言われても脈絡がつかめず、唐突さに戸惑っていました。

ネットワークを理解する入り口に立ちはだかる２つの謎を少しでも理解したいと思いました。そこで今回は、「TCP/IPモデルとOSI参照モデルって一体何？」という疑問を追いかけたいと思います。

## そもそもモデルとは？

両方に共通しているのは「モデル」という言葉です。まずモデルについて考えていきます。

モデルとは、**「現実世界の複雑な事象や問題を、理解しやすくするために抽象化し、単純化した形で表現したもの」** のことです。
直訳すると「模型」という意味があります。
現実の一部を切り取って簡略化した **「仕組みの縮図」** と考えられます。



> 概念モデルとは、「物事の仕組みを単純化して表したもの」


出典:[「モデル化」して考えるとはどういうことか？](https://globis.jp/article/1032/)

モデルのイメージとして、地図を例に考えてみたいと思います。

## ACAO FORESETの地図で考える「モデル」

私は先日、熱海にあるACAO FORESTという素敵な庭園へ遊びに行きました。
入場時にパンフレットをいただいたのですが、そこには落ち着いた色味のイラスト地図が載っていました。このイラスト地図は、**ACAO FORESTのモデル化**の例と言えます。
(モデル化とは「現実世界の複雑な事象や問題を、理解しやすくするために抽象化し、単純化した形で表現すること」です。)



地図を片手にハーブ園を歩いてみると、多種多様なハーブやバラがあちこちに咲き、複雑な地形の中に隈研吾さんが設計したCOEDA HOUSEという建物が立っていました。
しかし、この地図にはそれらの細かい要素は載っていません。それにもかかわらず、「これは間違いなくACAO FORESTだ」と直感的に認識できます。

一方で、GoogleマップでACAO FORESTを検索すると、周辺道路の情報や海との距離感を把握できる地図を見ることができます。この地図もまた、ACAO FORESTのモデル化の例です。

両者の地図は、「ACAO FORESTをモデル化したもの」という点では同じですが、見た目や内容にはかなり違いがあります。理由は、それぞれの地図が**果たそうとしている目的が異なるから**です。

パンフレットのイラスト地図は、「初めてこのハーブ園を訪れる人がワクワクしながら迷わず散策を楽しめる」ことを目的に作られています。そのため、重要な施設や休憩スポット、特徴的な景観が目立つようにデザインされ、親しみやすいイラストが採用されています。
一方でGoogleマップには優しいタッチのイラストなどはありません。こちらの地図は園内の散策用に作られた地図というよりかは、「訪れる前の計画や、車で正確に目的地へたどり着くこと」を重視しており、シンプルで実用的なデザインが採用されています。

モデルを利用するメリットは、以下のような説明がされています。

「モデル図を一度頭の中に抑えてしまえば、漠然とした概念を「形をもって把握する」ことができるようになる」
出典 : [「モデル化」して考えるとはどういうことか？](https://globis.jp/article/1032/)

その通りだと感じました。地図のお陰で園内の地形を把握し、迷うことなく散策を楽しめました。

## ２つのモデルの正体は、通信を理解するための縮図

話が脱線しましたが、今回扱うのは、TCP/IPモデル及び、OSI参照モデルです。

[前回の記事](https://qiita.com/iamgami/items/84c18082389b35eba761)でTCP/IPは、「世界共通のネットワーク通信のためのプロトコル群」と学びました。先ほどの地図の具体例を踏まえて、TCP/IPモデルは、**「ネットワーク通信に不可欠なルール」という複雑な事象を理解するための縮図**と考えてみることにします。

一方で、OSI参照モデルは一体何でしょうか。どこからやってきたのでしょうか？

実は、OSIもプロトコル群の１つです。
出典: 『TCP/IPの絵本』株式会社アンク

TCP/IPモデルと同様に、OSI参照モデルはOSIというプロトコル群を理解するためのモデルだったのです。

## OSIというプロトコルが存在した

OSIとは、Open Systems Interconnectionの略です。
1970年代後半に、**ISOによって標準化が進められていたプロトコル群のこと**を指します。

ISOのOSIプロトコル...アルファベットの並びがややこしいですね。

ISOとは、International Organization for Standardizationの略で、国際標準化機構のことです。

ISOは意外にも日常生活と密接な関わりがあります。中学校の社会でISO14001という環境保全のための規格を学んだ記憶が蘇ってきましたが、もう少し身近な例を挙げます。
標準化を管理するISOが策定した具体例には、以下のようなものが挙げられます。
- ネジの規格
- 全世界で信号機の色を統一
- 非常口のマーク
出典 : [一般財団法人日本品質保証機構 ISOの基礎知識](https://www.jqa.jp/service_list/management/management_system/)

 
## OSIはTCP/IPとの戦いに敗れた

上記でOSI(Open Systems Interconnection)を紹介した際、ISOによって標準化が**進められていた**プロトコル群と紹介しました。現在、世界共通で主要なプロトコルは、TCP/IPです。

一時はOSIプロトコルがTCP/IPプロトコルと並ぶ勢いで成長し、競合していたそうです。
しかし、構造の複雑さや開発の進行速度などの理由で、結果としてTCP/IPが世界共通のプロトコルとしての座を獲得するに至りました。
出典: 『TCP/IPの絵本』株式会社アンク

こういった標準化のケースをデファクトスタンダード(事実上の標準)というそうです。

## OSI参照モデルが生き残っている理由

プロトコルとしては衰退したはずのOSIのモデルが生き残っているのは、奇妙に思えましたが、
「OSIの基本であるネットワークを7層に分類するモデルは広く普及している」といった記載があります。
出典: 『TCP/IPの絵本』株式会社アンク

その理由は、**複雑なネットワークを理解する上で非常に有効だから**、だそうです。

AWSのサイトより

> 教育目的で全体的な観点からネットワーキングがどのように動作するかを説明するために、依然として人気のあるネットワーキングモデルとなっています
> 
> ただし、実践的には TCP/IP モデルがより一般的に使用されるようになっています


引用 : [OSI モデルとは何ですか?
](https://aws.amazon.com/jp/what-is/osi-model/)


## ２つのモデルの比較

どちらも、ネットワーク通信という複雑な事象を理解するための縮図であることがわかりました。共通点と相違点を考えてみたいと思います。

### ２つのモデルの共通点(1)階層分類
OSIの基本概念は、「通信に関わる仕組みを分類し、階層という形で独立させることで、ある層での変更が他の層に影響を与えないようにする」ことです。TCP/IPでは階層が７つから4~5つに減っていますが、階層によって分類する点は共通しています。

### ２つのモデルの共通点(2)上下関係がある

両者ともに、各階層のプロトコルは力を合わせて通信を成立させています。

『実況! ビジネス力養成講義 プログラミング/システム』岡嶋 裕史著 
の内容がわかりやすかったので、以下にその内容を記します。

「下に位置するプロトコルほど基本的で、よりコンピュータに近い視点でのルールとなる。
上に位置するプロトコルは応用的で、下位に位置するプロトコルがあることを前提として、その機能を利用する形で作られる」
「トラブルシューティングは下から」と言われるが、物理層の時点でケーブルが刺さっていなければ、どれだけ上位層の通信部分に問題を抱えていなくても通信はトラブルを起こす」

上のプロトコルは縁の下の力があって成り立っているということですね。


### ２つのモデルの相違点

現時点で私が把握している相違点は、
- TCP/IPの方が、分類の階層数が少ないこと
- 現時点でデファクトスタンダードとなっているプロトコル群はTCP/IPであること
- 開発者が異なること

です。
これから各層の内容を学んでTCP/IPの特徴の理解を深めていきたいです。


## モデル化の限界

ハーブ庭園の豊かな情報の多くは、地図からは無いものになっていました。

モデル化の特徴は、ある特定の目的を果たそうとする過程で、どうしても**切り捨てなければならない情報が生じる**ということです。

[『「モデル化」して考えるとはどういうことか？』](https://globis.jp/article/1032/)においても
「モデル化は、ある１つの切り口からの整理にすぎない」ということに触れられています。

先ほどもご紹介したAWSのサイトでは、TCP/IPモデルが全てではない、という記述もあります。
> 「すべてのインターネットベースのシステムおよびアプリケーションが TCP/IP モデルまたは OSI モデルに従っているわけではないことに注意することが重要です。同様に、すべてのオフラインベースのネットワークシステムやアプリケーションが OSI モデルや他のモデルを使用しているわけでもありません。」


引用 : [OSI モデルとは何ですか?](https://aws.amazon.com/jp/what-is/osi-model/)

まだこの説明の真意を理解することは難しいですが、現実世界においては例外や、モデルに収まらないケースも存在することを押さえておこうと思います。


## モデル化の価値

この複雑な現実世界を理解するのは本当に難しいことです。ITを学ぶようになってから、高速のデータのやり取りが大量に行われているこの世界があまりにも複雑で不思議な場所に感じます。

モデル化は、そんな複雑なこの世界を理解する上で欠かせないものだと感じました。
実は、ITの学習を始めてから、モデルという言葉に出会ったのは今回が初めてではありません。
- CSSのボックス**モデル**や代替ボックス**モデル**
- UML(Unified Modeling Language)と呼ばれる統一**モデリング**言語

今後もモデル化を意識して学習を進めていきます。


## まとめ

当初抱いた疑問は解消されつつあります。今回の学びをまとめます。

- モデルとは、現実世界の複雑な事象を理解しやすくするために単純化した表現物
- TCP/IPモデルとTCP/IPプロトコル群の関係性は、全世界共通の通信プロトコル群の役割や関係性を理解するための縮図のようなもの
- OSI参照モデルは、そのプロトコル自体は衰退したものの、そのモデルは教育的価値があり、今も優れたフレームワークとして機能している
- モデル化によって取りこぼす要素があることは事実だが、モデルはこの現実世界の複雑さを理解する一助となる


## 追伸

モデル化とは少し論点がずれてしまいますが、複雑な概念をわかりやすく整形することは危険を伴う場合もあります。前回の記事([IT初学者が学ぶ「TCP/IP」超入門 〜プロトコルってなんだろう？〜](https://qiita.com/iamgami/items/84c18082389b35eba761))では、コンピュータネットワークについて学んだことを書きました。執筆の目的は、「初学者の私がコンピュータネットワークに親しみを持つこと」でした。この目的を重視した結果「コンピュータネットワークはコンピュータ同士がやり取りをする」と表現しましたが、実際には「プログラム同士がやり取りする」と伝えた方が正確だったようです。
わかりやすさと正しい解釈を少しずつすり合わせていきます。

## 参考資料
[『TCP/IPの絵本 第2版 ネットワークを学ぶ新しい9つの扉』株式会社アンク著](https://www.amazon.co.jp/TCP-IP%E3%81%AE%E7%B5%B5%E6%9C%AC-%E7%AC%AC2%E7%89%88-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E5%AD%A6%E3%81%B6%E6%96%B0%E3%81%97%E3%81%849%E3%81%A4%E3%81%AE%E6%89%89-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%82%A2%E3%83%B3%E3%82%AF/dp/4798155152)
[『実況! ビジネス力養成講義 プログラミング/システム』岡嶋 裕史 著](https://www.amazon.co.jp/%E5%AE%9F%E6%B3%81-%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E5%8A%9B%E9%A4%8A%E6%88%90%E8%AC%9B%E7%BE%A9-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0-%E5%B2%A1%E5%B6%8B/dp/4532324580/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=LOW67LNX5MSX&dib=eyJ2IjoiMSJ9.KyENI_EgiFgKMigAgPjM_VlktsIbFEbmxuf-lJ2AVunxvJFQ7aJ5Xjbstw2z7E2aK_G6-R1pYv2LLe96oXm4Os2tVT7PeeyGHDR1Vb59ZmeMp4xuOJ_OOVGq0YZJDZQ8l1RlVdsciHtwmquYF2ZgA_BIieyKKTTpfeF5vuytkn0LnB0Xy1kr4d3cccF7la51gkl7CxUpDoMLJx2PHB2JYscqOP7uc2L0tVZgmcNPdXA.S9gU0p_W8nsLdWkp-RmQujkkYC5tAD-zgOkH1UUBMws&dib_tag=se&keywords=%E3%80%8E%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%2F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%80%8F&qid=1736065040&s=books&sprefix=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%2F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0+%2Cstripbooks%2C203&sr=1-1)
[「モデル化」して考えるとはどういうことか？](https://globis.jp/article/1032/)
[一般財団法人日本品質保証機構 ISOの基礎知識](https://www.jqa.jp/service_list/management/management_system/)
[OSIモデルとは何ですか](https://aws.amazon.com/jp/what-is/osi-model/?utm_source=chatgpt.com)