カプセル化とヘッダ
データが各層を通るたびに宛先などの付箋(ヘッダ)が足されていく。この「入れ子」の仕組みがカプセル化で、受け取る側は逆順にほどいて読む。
層に分かれた通信では、データが上の層から下の層へ降りていくたびに、その層で必要な情報が前後に足されていく。この付け足される制御情報が「ヘッダ」で、ヘッダで包んでいく仕組みを「カプセル化」と呼ぶ。
📦 付箋を重ねて貼っていくイメージ
アプリが作った本体のデータ(ペイロード)に、まずトランスポート層で TCP や UDP のヘッダが付く。次にインターネット層で IP ヘッダが付き、宛先IPアドレスなどが書き込まれる。さらにデータリンク層で Ethernet のヘッダ(宛先MACアドレスなど)と、末尾に誤り検出用の情報が付く。こうして何重にも包まれて、はじめてケーブルに流せる形になる。
🔗
たとえ手紙を「便箋 → 封筒 → 宅配の伝票つきの箱」と順に包んでいくのに似ている。中身は同じでも、外側に運搬用の情報がどんどん足されていく。受け取った側は逆に、箱を開け、封筒を開け、便箋を読む、という順でほどく。
🔄 受け取る側は逆順にほどく
届いた側では、下の層から順にヘッダを読んで外していく。Ethernet ヘッダを見て自分あてか確認し、IP ヘッダで宛先を確かめ、TCP ヘッダでどのアプリ宛かを判断し、最後に本体のデータをアプリに渡す。これを「非カプセル化(デカプセル化)」という。
💡
ポイント各層は自分のヘッダだけを読み、上の層の中身には手を出さない。だからこそ層を分けて設計できる。ヘッダは『その層の宛名と注意書き』、ペイロードは『中身の荷物』と覚えるとよい。
⚠
つまずき一番外側には誤り検出用の値(Ethernet では FCS と呼ぶCRCの一種)が付き、途中でデータが壊れていないかを受信側がチェックできる。壊れていれば、その箱は捨てられる。
カプセル化が分かると、パケットキャプチャで1つのパケットを見たときに、Ethernet・IP・TCP・アプリと層ごとに情報が入れ子で並ぶ理由が腑に落ちる。
この項目に出てくる用語
カプセル化かぷせるか
データが層を降りるたびにヘッダで包んでいく仕組み。
ヘッダへっだ
各層がデータの前に付け足す、宛名や制御情報の部分。