OSI参照モデル
OSI参照モデルとは
OSI参照モデルは、ネットワーク通信の機能を7つの層(レイヤ)に分けて整理した考え方の枠組みです。実際のインターネットは [[TCP/IP]] のモデルで動いていますが、OSIモデルは「どの層の話をしているか」を共有するための共通の物差しとして今も広く使われています。
各層は自分の役割だけに集中し、上下の層とだけやり取りします。この役割分担のおかげで、ケーブルを光に変えてもアプリを作り直す必要はなく、逆にアプリを変えてもケーブルはそのまま使えます。
7つの層
| 層 | 名前 | 役割 | 代表例 |
|---|---|---|---|
| 7 | アプリケーション層 | アプリ同士のやり取りの決まり | [[HTTP]]、DNS |
| 6 | プレゼンテーション層 | データ形式の変換・暗号化 | [[文字コードと文字化け]]、TLS |
| 5 | セッション層 | 会話の開始・維持・終了 | セッション管理 |
| 4 | トランスポート層 | 端末間の確実な配送 | TCP、[[UDP]]、[[ポート番号]] |
| 3 | ネットワーク層 | ネットワークをまたぐ配送 | IP、[[ルーティング]] |
| 2 | データリンク層 | 隣接機器との配送 | [[イーサネット]]、MACアドレス |
| 1 | 物理層 | 電気信号・電波の伝送 | ケーブル、コネクタ |
「アプセトネデブ」(上から)や「物データネットラセプア」(下から)の語呂合わせで覚える人も多いです。
TCP/IPモデルとの対応
実務で使う [[TCP/IP]] は4層のモデルで、OSIの7層とおおまかに対応します。
- アプリケーション層(TCP/IP)= OSIの5〜7層
- トランスポート層 = OSIの4層
- インターネット層 = OSIの3層
- ネットワークインターフェース層 = OSIの1〜2層
「L2スイッチ」「L4ロードバランサ」「L7ファイアウォール」のように、機器やサービスの名前に層番号がそのまま登場するため、番号と役割の対応は覚えておいて損がありません。
カプセル化 — 層をまたぐときの包み方
層をまたぐたびにデータに起きることがカプセル化です。送信側では、ある層が上の層から受け取ったデータを中身としてそのまま扱い、自分の役割に必要な情報を書いたヘッダを先頭に付けて下の層へ渡します。受信側ではその逆で、下から上がってくるたびに自分の層のヘッダを読んで取り外し、残った中身を上の層へ渡します(この取り外しをデカプセル化と呼びます)。
宅配便に例えると、手紙(アプリのデータ)を封筒に入れ、その封筒を箱に詰め、伝票を貼って運ぶようなものです。外側を扱う人は中の手紙を読む必要がなく、自分が貼った伝票だけを見て仕事ができます。各層が自分の役割だけに集中できるのは、この入れ子構造のおかげです。
包まれるたびに、データのまとまりの呼び名も変わります。
| 層 | 呼び名 |
|---|---|
| 4 トランスポート層 | セグメント(TCP)/ データグラム(UDP) |
| 3 ネットワーク層 | パケット |
| 2 データリンク層 | フレーム([[イーサネット]]) |
この入れ子は [[パケットキャプチャ]] で実際に目で見られます。Wiresharkが1つの通信を「フレーム → IP → TCP → HTTP」と階層的に展開して表示するのは、パケットそのものがこの構造で作られているからです。
また、包むごとにヘッダの分だけ全体のサイズが増えます。[[VPN]] のようにパケット全体をさらに別のパケットへ入れる仕組みで一度に運べる正味のサイズが小さくなるのは、この上乗せが理由です([[MTUとフラグメンテーション]])。
初学者向けポイント
- トラブル切り分けは下の層から: ケーブル・リンクランプ(L1〜2)→ IP設定・ping(L3)→ ポート(L4)→ アプリ設定(L7)の順に疑うと迷子になりにくい
- 「レイヤが違う話を混ぜない」はネットワークに限らず設計全般で役立つ考え方
- [[ロードバランサ]] の「L4/L7」や [[ファイアウォール]] の説明など、層番号は実務の会話に頻出する
関連技術とのつながり
- [[TCP/IP]] — 実際のインターネットを支える4層モデル。OSIは整理用の物差し
- [[イーサネット]] — データリンク層(L2)の代表技術
- [[IPアドレスとサブネット]] — ネットワーク層(L3)の住所
- [[ポート番号]] — トランスポート層(L4)でアプリを区別する番号
Q: OSI参照モデルの説明として正しいのはどれ?
- [ ] 実際のインターネットはOSIの7層プロトコルそのもので動いている
- [x] ネットワークの機能を7層に整理した、議論のための共通の物差しである
- [ ] OSIモデルは4つの層で構成される
解説: 実際のインターネットはTCP/IP(4層)で動いており、OSIの7層は「どの層の話か」を共有するための枠組みとして使われます。
Q: IPアドレスとルーティングが属するのはどの層?
- [ ] トランスポート層(L4)
- [x] ネットワーク層(L3)
- [ ] データリンク層(L2)
解説: ネットワークをまたぐ配送を担うL3にIPとルーティングが属します。L4はTCP/UDP、L2はイーサネットの層です。
Q: 本文で紹介されたトラブル切り分けの進め方はどれ?
- [x] ケーブルなど下の層から順に上の層へ疑っていく
- [ ] アプリの設定だけを最初に徹底的に調べる
- [ ] 層に関係なくランダムに調べる
解説: L1〜2(物理・リンク)→ L3(IP)→ L4(ポート)→ L7(アプリ)と下から確認すると、原因の切り分けで迷子になりにくくなります。
Q: カプセル化の説明として正しいのはどれ?
- [ ] 通信の中身を暗号化して第三者に読めなくすること
- [x] 各層が上の層から受け取ったデータに自分のヘッダを付けて包み、下の層へ渡すこと
- [ ] 複数の層を1つにまとめてモデルを単純化すること
解説: 送信時は下へ降りるたびにヘッダで包まれ、受信時は上がるたびに外されます。呼び名もL4のセグメント、L3のパケット、L2のフレームと変わります。