TCP/IPモデルは一つではない
ネットワークの勉強をすると TCP/IPモデルとOSI(解放システム相互接続)参照モデルが説明される。
しばしその違いを示すために以下のような表が登場する。
OSI参照モデル | TCP/IPモデル |
アプリケーション層 | アプリケーション層 |
プレゼンテーション層 | |
セッション層 | |
トランスポート層 | トランスポート層 |
ネットワーク層 | インターネット層 |
データリンク層 | ネットワークインターフェース層 |
物理層 |
しかしこれは、少し細かい話をするとおかしいものになる。
TCP/IPモデル は一般的に広く使われる事実上の標準すなわち デファクトスタンダード のもので上記の表のような完全な対応をしているわけではない。
TCP/IPモデルは日本では上のように説明されるのが通常だが、誰かが決めたものではないため下のようなモデルも正しい。インターネットの規格群を決めている、RFC にも登場している。
ネットワークのトラフィックのカプセル化の詳細を定めた RFC1122 には無かったデータリンク層(Data Link Layer)がRFC 7133 には トラフィックに関する記述があります。
日本でよく説明されるTCP/IPモデルは 一つ古い世代のもので現在のTCP/IPモデルは ネットワークインターフェース層が二つに分かれている。
また、Wikiには 文献によって異なる説明がされることが取り上げられている。
この一部を切り抜くと
Arpanet Reference Model (RFC 871) |
Internet Standard (RFC 1122) |
Internet model (Cisco Academy) |
TCP/IP 5-layer reference model (Kozierok,Comer) |
TCP/IP 5-layer reference model (Tanenbaum) |
TCP/IP protocol suite or Five-layer Internet model (Forouzan,Kurose) |
TCP/IP model (Stallings) |
OSI model (ISO/IEC 7498-1:1994) |
---|---|---|---|---|---|---|---|
Three layers | Four layers | Four layers | Four+one layers | Five layers | Five layers | Five layers | Seven layers |
Application/ Process | Application | Application | Application | Application | Application | Application | Application |
Presentation | |||||||
Session | |||||||
Host-to-host | Transport | Transport | Transport | Transport | Transport | Host-to-host or transport | Transport |
Internet | Internetwork | Internet | Internet | Network | Internet | Network | |
Network interface | Link | Network interface | Data link (Network interface) | Data link | Data link | Network access | Data link |
— | — | — | (Hardware) | Physical | Physical | Physical | Physical |
これを知っている人が少ないと感じた。ネットワークを教わった先生もこの事実を知らなかったし、その経緯を取り上げているYoutube の投稿者は 一人しかいなかった。
だから何が言いたいかというと表を使ってOSIモデルとTCP/IPモデルのそれぞれのレイヤーが対応しているかのような表現は正しくないといいたい。
OSI参照モデルL4トランスポート層とTCP/IPトランスポート層は厳密に等しくないから表のようにあてめることはできない。仮にOSIで言えばどの層に相当すると思われる。 この言葉を抜いて説明すると、 TCP/IPモデルのトランスポート層の役割はセッション層の機能を一部持っている。
そもそも プロトコルができた後に TCP/IPはモデル化されたし OSIは実際には実装の観点から簡略化して実装されたりする 表現するなら、グラデーションを使っていないとおかしい。
これが私が表現する真の意味で正しいと思うTCP/IPモデルとOSI参照モデルの関係だ。
まあ、もちろんこれが100%正確なモデルの関係というつもりはないが誤解がないように書いたらこうなるという話だ。実際レイヤーの境界線なんてわからないからTCP/IPではグラデーションでいいと思う。
また、OSI参照モデルは理論的・教科書的なものだから厳密な感じだと思いきっちり区切っている。