今日、私はOSIモデルがTCP/IPの実際のパフォーマンスと一致しないことについてツイートしました。Twitterでの反応を読んでみると、少なくとも3つの異なる考え方があることがわかりました:
- TCP/IPがどのように動作するかの文字通りの説明
- 多くの異なるネットワークプロトコルを記述し、比較するために使用できる抽象的なモデル。
- 1980年代のコンピューター・ネットワーク・プロトコルの文字通りの説明。
この記事では、上記のどれが「本当の」OSIモデルかを論じるつもりはありません。そんなことはどうでもいいのです。
OSIモデルには7つのレイヤーがあります。
OSIモデルの意味を説明する前に、OSIモデルとは何かについて簡単に説明します。これは、ネットワークがどのように機能するかを7つの番号の付いた層で説明する抽象的なモデルです:
- レイヤー1:物理層
- レイヤ2:データリンク層
- レイヤー3:ネットワーク・レイヤー
- レイヤー4:トランスポート層
- レイヤー5:セッションレイヤー
- レイヤー6:表現レイヤー
- 第7層:アプリケーション層
それぞれのレイヤーが何を意味するのか、時間をかけて説明するつもりはありません。
OSIモデル:TCP/IPがどのように機能するかを文字どおり記述したもの
OSIモデルのいくつかのレイヤは、TCP/IPにとても簡単にマッピングできます:
- レイヤー2はイーサネットに対応
- レイヤ3はIPに対応
- レイヤ4はTCPまたはUDPに対応
- レイヤ7は、TCPまたはUDPパケットに含まれるすべてのものに対応します。
このマッピングはレイヤ2、3、4で意味を成します。これらの3つのレイヤに対応するTCPパケットは3つあります。
TCPパケットのさまざまなヘッダーを数字で表すと便利です。「レイヤー2」と言った場合、2が3より小さいので、レイヤー3の「下」であることは明らかです。
文字どおりの記述としてのOSIモデル」の奇妙な点は、レイヤ5と6がTCP/IPの何にも対応していないことです。レイヤ5や6が何であるかについてのさまざまな説明を聞いたことがありますが、レイヤ2、3、4のように「各レイヤがTCPパケットに対応するヘッダを持っている」という明確な対応を持っていません。レイヤ5やレイヤ6が何であるかについて多くの異なる説明を聞いたことがありますが、それらはレイヤ2、3、4のように「各レイヤがTCPパケットにヘッダを持つ」という明確な対応を持っていません。
また、TCP/IPのいくつかの部分は、レイヤー2から4であってもOSIモデルにうまく当てはまりません。例えば、ARPパケットはどのレイヤーですか?ARPパケットはイーサネットのヘッダーでデータを送りますが、それはレイヤー3ということですか?それともレイヤー2?ウィキペディアのOSIレイヤーの一覧では、レイヤーは "レイヤー2.5 "に分類されています。
OSIモデルはTCP/IPを教えるために使われることがあるため、どの部分がTCP/IPに対応し、どの部分が対応しないかを理解するのに混乱することがあります。これが本当の問題なのです。
OSIモデル:ネットワークプロトコルを比較するための抽象化モデル
OSIについてのもう一つの考え方は、OSIは多くの異なるネットワークプロトコルを類推するために使用できる抽象的なものだということです。例えば、Bluetoothプロトコルがどのように動作するかを理解しようとしている場合、OSIモデルを利用することができるかもしれません。
別の例として、このウィキペディアの記事には OSI層のリストがあり、どの特定のネットワーク・プロトコルがそれらのOSI層に対応しているかが詳しく書かれています。
OSIモデル:時代遅れのプロトコルの文字通りの説明
ウィキペディアで非常に簡単に調べたところ、OSIモデルには7つのレイヤーの抽象的な記述に加えて、 含まれているようです。どうやらこれは、OSIモデルが失敗し、TCP/IPが勝利した70年代と80年代の プロトコル戦争の 間に起こったようです。
もしOSIプロトコルが「勝った」のであれば、OSIモデルはインターネット・ネットワークが実際に機能する方法と完全に一致するからです。
結論
そもそも私がこの記事を書いた理由は、OSIモデルについて初めて学んだとき、とても混乱するものだと感じたからです。TCP/IPのみのネットワーク・プロトコルのユーザーである私に、OSIモデルのレイヤー2、3、4、7がTCP/IPとどのように関係しているのかだけを理解し、それ以外のことは無視するように、誰かに教えてほしかったのです。ですから、この記事が何人かの人の役に立つことを願っています!
を経由して




