初級では通信を「役割ごとの層に分ける」と捉えました。中級では、代表的な2つのモデル——OSI 7層とTCP/IP 4層——の対応と、層をまたぐときのカプセル化を見ます。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
階層モデルには、教科書的なOSI参照モデル(7層)と、実際のインターネットに沿ったTCP/IPモデル(4層)があります。層の数は違いますが、指しているものは対応します。
アニメーション『OSI 7層とTCP/IP 4層の対応』を開く
代表的なプロトコルを層ごとに押さえると、地図が一気に読めます。
- アプリ層 — HTTP(Web)・DNS・SMTP など、アプリ同士の会話の約束
- トランスポート層 — TCP/UDP。相手まで確実に/速く届ける担当(3ウェイハンドシェイクはTCPの話)
- ネットワーク(インターネット)層 — IP。どこへ届けるかの住所と経路
- リンク層 — Ethernet/Wi-Fi。目の前の1区間を実際に運ぶ
対応の勘所は、OSIの上位3層がTCP/IPの1つのアプリ層にまとまること、下位2層がリンク層にまとまることです。
登場人物メモ:
- ※1 OSI参照モデル — 通信を7層に細かく分けた、理解・整理のための標準モデル
- ※2 TCP/IPモデル — 実際のインターネットが従う、4層の実務的なモデル
- ※3 ヘッダ — 各層が付け足す「宛先や制御の情報」の見出し部分
この部分をもっと深く(上級)
中級では層ごとの代表プロトコルを並べました。ここでは「その層が何を保証し 何を保証しないか」を責務として捉え直します。
アニメーション『OSI 7層とTCP/IP 4層の対応』を開く
- リンク層(L2) — 目の前の1区間だけを運ぶ。宛先は MAC ※1。同一ネットワーク内で「隣の機器へ渡す」ことだけを約束し 遠くのことは知らない
- ネットワーク層(L3) — IPアドレスで「最終的にどのネットワークのどの機器か」を指し ルータ ※2 がネットワークをまたいで中継する。ただし届く保証はしない(ベストエフォート)
- トランスポート層(L4) — 端末の中のどのアプリかをポート番号で見分け TCPなら順序と到達まで面倒を見る
- アプリ層(L7) — HTTPやDNSなど 中身の意味を扱う
ここで効いてくるのが L2とL3の分業です。L2のスイッチはMACを見て同一ネット内を転送し L3のルータはIPを見てネット間を中継します。だから1つのパケットは「ルータからルータへ」IPで大きく運ばれつつ 各区間ではL2フレームに包み直されて隣へ渡される という二段構えで進みます。
登場人物メモ:
- ※1 MACアドレス — NICに焼かれた機器固有の番号。L2で「目の前の1区間の宛先」を示す。詳しくはNIC
- ※2 ルータ — L3でIPを見てネットワーク間を中継する機器。区間ごとに次の渡し先を決める
やさしく言うと(初級)
通信を、役割ごとの層に分けて整理する——これが階層モデルです。
郵便にたとえると分かりやすいでしょう。
- 手紙の中身 — 相手に伝えたい本文(=アプリのデータ)
- 封筒の宛先 — どこの誰に届けるかの情報(=あて先の情報)
- 配送トラック — 実際に運ぶ手段(=回線や電波)
この3つはそれぞれ別の担当です。中身を書く人は、トラックが軽自動車か大型かを気にしません。トラックの運転手は、中身が何であれ「宛先へ運ぶ」だけです。
登場人物メモ:
- ※1 層(レイヤ) — 通信の役割を分けた1段。上の層ほど「中身」寄り、下の層ほど「運ぶ」寄り
- ※2 プロトコル — 各層での「約束ごと(手順)」。同じ層同士が同じ約束で会話する
カプセル化
層をまたぐとき、データはどう変わるのか。鍵はカプセル化です。送信側では、下の層へ渡すたびに、その層のヘッダで包んでいきます。
アニメーション『カプセル化(層ごとに包む)』を開く
- アプリがデータを作る(例:HTTPの中身)
- トランスポート層がTCPヘッダを付け、セグメントにする
- ネットワーク層がIPヘッダを付け、パケットにする
- リンク層がヘッダを付け、フレームにして送り出す
受信側は、これを逆順にはがしていきます(非カプセル化)。各層は、相手側の同じ層が付けたヘッダだけを読みます。だから下の層がどう運んだかを、上の層は気にしなくてよいのです。
この部分をもっと深く(上級)
中級では「層ごとにヘッダで包む」と見ました。上級では 各ヘッダに何が書かれ 受信側でどう剥がされるかまで追います。
アニメーション『カプセル化(層ごとに包む)』を開く
送信側では上から下へ包んでいきます。
- アプリがデータを作る(例 HTTPの本文)
- TCPがTCPヘッダを付けてセグメントにする。ここに載るのが送信元・宛先ポートとシーケンス番号(後で順序を直すため)
- IPがIPヘッダを付けてパケットにする。載るのは送信元・宛先IPとTTL(回り続けを止める寿命)
- リンク層がフレームにする。載るのは次の1区間の宛先MAC
受信側は逆順に剥がします。各層は相手側の同じ層が付けたヘッダだけを読みます。ルータはL3まで開けてIPを見て次へ回し(TCPの中身は読まない) スイッチはL2までしか開けません。だから途中の機器は「自分の層の見出し」だけで仕事ができ 上の層の事情を知らずに済むのです。
MTUとMSSもここで理解できます。
- MTU — 1つのL2フレームで運べるデータ量の上限(Ethernetなら概ね1500バイト)
- MSS — 1つのTCPセグメントに載せられる中身の上限。MTUからIPヘッダとTCPヘッダの分を引いた残りとして決まる
- MTUを超えるIPパケットはフラグメント(分割)されるが 分割は効率が悪く途中で詰まる原因にもなる。だからTCPは最初にMSSを決めて「はみ出さないサイズ」で送る
やさしく言うと(初級)
分ける利点は、はっきりしています。
- 各層が自分の仕事に集中できる — 中身担当・宛先担当・運搬担当が分かれる
- 下を差し替えても上は無事 — 運ぶ手段を有線から無線に変えても、中身や宛先はそのまま
- 組み合わせが自由 — 「この中身を、この運び方で」と部品のように差し替えられる
だから、家のWi-Fiでも、外のモバイル回線でも、上のアプリは同じまま使えるのです。運ぶ下の層が違うだけ。
なぜこの分業が効くのか
層に分ける最大の恩恵は、独立して差し替えられることです。
- リンク層を有線からWi-Fiに変えても、上のIPやHTTPはそのまま
- 同じIPの上で、TCP(確実)とUDP(速い)を用途で選べる
- アプリを新しくしても、下の運搬層はいじらなくてよい
この独立性のおかげで、通信は部品ごとに進化できます。実際の機器では、NICがリンク層と物理の橋渡しを担い、ネットワーク全体図の各機器がそれぞれ担当の層で仕事をしています。
この部分をもっと深く(上級)
層の最大の恩恵は 中級でも触れた独立した差し替えです。上級の語彙で捉え直すと理由がはっきりします。
- 各層は上下と決められた見出し(ヘッダ)だけでやり取りし 中身の詳細に踏み込まない。だから片方を変えても契約が同じなら壊れない
- リンク層を有線からWi-Fiへ変えても 上のIPやTCPは同じ。IPパケットはどんなL2にも「包み直して」運べるから
- 同じIPの上で TCPとUDPを用途で選べる。L4を差し替えてもL3以下は無関係
- この独立性が インターネットという「バラバラな機器と回線の集まり」を1つの網として動かす土台になっている
やさしく言うと(初級)
この分業のいちばんの気持ちよさは、上位の層が下位の詳しい事情を知らなくていいことです。
- Webサイトを見るアプリは、電波の周波数を知りません
- 電波を飛ばす部品は、中身がメールか動画かを知りません
お互いが「自分の層の約束」だけ守れば、通信は成り立ちます。この独立性のおかげで、片方だけを新しくしても全体が壊れない——通信技術が少しずつ進歩できてきた理由です。
⚠️ うまくいかないとき
- 層の取り違え — 「届かない」原因がIP(住所)かリンク(配線)か、層で切り分ける
- MTU超過 — 1フレームに載る上限を超えると分割が要る。リンク層の制約が上に効く例
- モデルは地図 — OSIとTCP/IPは分け方が違うだけ。現実がどちらかにきっちり従うわけではない
- ヘッダの分だけ増える — カプセル化で毎回ヘッダが付くので、運ぶ総量は中身より少し大きくなる
この部分をもっと深く(上級)
- どの層の問題か切り分けない — 「遅い・繋がらない」の原因がL2(配線)かL3(IP・経路)かL4(ポート・ファイアウォール)かL7(DNS・証明書)かを層で分けて考える
- MTUの不一致 — 経路の途中でMTUが小さい区間があると大きなパケットが通らない。PMTUD(経路MTU探索)が塞がれると通信が詰まる
- ヘッダの分だけ増える — カプセル化で毎回ヘッダが付くので 運ぶ総量は中身より必ず大きい。小さなデータを大量に送るとヘッダの割合(オーバーヘッド)が効いてくる
- 層は地図であって現実そのものではない — 実機では層がきれいに分かれて動くとは限らない。あくまで切り分けと理解のための道具と捉える
やさしく言うと(初級)
- 層をまたいで考えすぎる — 「アプリが遅い」原因が下の回線にある、など切り分けが必要
- どの層の話か迷子になる — 用語が出てきたら「これは中身・宛先・運搬のどれ?」と当てはめる
- 層は便利な整理 — 現実の通信がきっちり層に分かれて動くわけではなく、理解のための地図だと捉える
関連する知識
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. カプセル化とは何を指す?
問2. OSIモデルとTCP/IPモデルの対応で正しいのは?
問3. トランスポート層でTCPヘッダを付けたデータの単位を何と呼ぶ?
問4. 受信側でヘッダを外していく「非カプセル化」の説明として正しいのは?
問5. 同じIPの上でTCPとUDPを用途で選び分けられるのは、階層モデルのどんな性質のおかげ?
問6. 次のうち「アプリ層」に属するプロトコルの組み合わせはどれ?
問7. リンク層がヘッダを付けて送り出す、最終的な送信単位を何と呼ぶ?(カタカナ)
問8. 確認を省いて速さを優先する、トランスポート層のプロトコルを英字3文字で答えてください。