2021年5月15日土曜日

OSI参照モデルの包容力

前回の記事「WWWブラウザになってプロトコルスタックを理解する」をSNSで紹介したところ,「せっかくならOSI参照モデルで、ちゃんと7層しっかり教えて~(笑)/トランスポート層からアプリケーション層は端折りすぎ(^_^;」というコメントをいただいた.たしかに上の3つをざっくりとまとめてしまっているわけだが,この問題,昔から長いこと違和感を覚えている部分であった.せっかくなので少し真面目に考えてみることにするか.

OSI参照モデルに感じる違和感の正体

これまで長いこと,OSI参照モデルの上のほうには疑問を持っていた.TCP/IPのモデル,インターネットの4階層モデルはいたってシンプルで,パケットをヘッダ(と,トレイラ)でくるりんと包み込んでいくイメージを考えれば,上の層は下の層を必ず使っていることがわかる.それゆえに上下関係が明白であるというメリットがある.SNSでどなたかが「マトリョーシカのイメージで説明すれば?」とアドバイスされていたが,そんな考えでもよいかもしれない.

図はWebサイトとのやりとりを具体的に考えてみたものだ.アプリケーション層ではHTTPで通信が行われる.HTTPで送受信されるメッセージ(リソース)は多くの場合巨大なので,パケットに分割され,そこから下はTCP→IP→物理層,というようにそれぞれのレイヤで付加情報が付けられて送信される.

一方,OSIの7層モデルを改めて考えてみよう.次の表はアイティーエム株式会社が提供するITコラム「OSI参照モデルとは?TCP/IPとの違いを図解で解説」に記載されていたものである.

ここで,アプリケーション層からセッション層までのプロトコルをぐっと眺めてみると,あることに気付かないだろうか?

このあたり,階層の上下関係が極めて曖昧なのだ.そもそも,SMTPやFTPに至っては6層と7層の両方に出てきてしまっている.なにそれ.せっかく階層で表現してるのに.

OSI参照モデルの「余裕」

いったん,先に紹介したHTTPの例に戻ろう.昨今,セキュリティ最優先の時代なので,HTTPはもはや推奨されない.HTTPSでやらねば,ね.

というわけでTLSのレイヤーをどこかに入れなければならないわけだが,はて,4層モデルで,どこに入れればよいのだろう?層が足りないぞ?

ここでOSIのモデル(表)を再度みてみると,TCP,トランスポート層の上にTLSの層があるじゃない.セッション層でTLSを入れてやろう.アプリケーション層はHTTPSのままでよかろう.プレゼンテーション層が抜けてしまうが,これで表現できる.

そして表の右端にあるカラム「利用例」のところをみてみると……えええ?セッション層にHTTPSが並べられているやんけ!おいおい.HTTPはアプリ層なのに,Sが付くといきなりセッション層になっちゃうの?その上にHTMLが来てる.プレゼンテーション層としてHTMLというのはわからなくもない.表現形式だからね.プレゼンテーションだ.そしてその上のアプリケーション層に「www, メール」?それってプロトコルなの?

結論めいたもの

さて結論(めいたもの)を述べる.OSIの7層モデル,上の方は無理くり階層として考える必要はないのではないか.5〜7層のあたりは,場合によっていろいろと対応する.上下関係が生じることもある,そんな緩い扱いで捉えておけばよさそうだ.

冒頭のコメントをくださった方に確認してみたところ「まぁ,標準化の為に考えられたモノだから無理矢理感,無駄はあると思う(笑)」だってさ.そんなもんだよね.

0 件のコメント:

コメントを投稿