1-5 カプセル化・イーサネット・MAC アドレス
アプリケーションのデータが各層を下りながらヘッダを付加されて物理メディアへ流れ出す『カプセル化』の仕組みを、Ethernet フレームと MAC アドレスの役割とあわせて整理する。
1. カプセル化とは
カプセル化とは、データが上位層から下位層へ渡されるたびに、各層のヘッダがその先頭に付加されていく仕組みを指します。各層から見れば、上位層から受け取ったヘッダ付きのデータは中身を問わない一塊のペイロードに過ぎず、自層のヘッダで包んで下位層に手渡されます。
層が変わるとデータの呼び名も変わります。同じビット列でも、トランスポート層では「セグメント」、インターネット層では「パケット」、ネットワークインターフェース層では「フレーム」と呼び分けられます。送信側で積み上げられたヘッダは受信側で逆順に剥がされます。この対称性が、TCP/IP モデルでデータを実際にやり取りする際の中核となる仕組みです。
2. アプリケーションから物理メディアまでの旅
TCP/IP の 4 層を上から順に下りながら、データに何が起きるかを追います。
- アプリケーション層: HTTP リクエストなど、アプリケーションが生成した生のデータの段階。単に「データ」と呼ぶ。
- トランスポート層: TCP または UDP のヘッダが付加され、TCP では「セグメント」、UDP では「データグラム」と呼ばれる単位になる。送信元・宛先のポート番号がここに格納される。
- インターネット層: IP ヘッダが付加され、「パケット」と呼ばれる単位になる。送信元と宛先の IP アドレスがこの層で付与される。
- ネットワークインターフェース層: 先頭に Ethernet ヘッダが、末尾に FCS (Frame Check Sequence) が付加され、「フレーム」と呼ばれる単位になる。物理メディアへは「ビット列」として送り出される。
上位層のヘッダはそのまま下位層のペイロードとなり、下位層のヘッダで包まれます。この入れ子構造がカプセル化の本質です。

3. Ethernet フレームの構造
ネットワークインターフェース層で最も広く用いられるのは Ethernet II 形式のフレームです。各フィールドの構成は以下のとおりです。
| フィールド | サイズ | 役割 |
|---|---|---|
| プリアンブル + SFD | 7 + 1 バイト | 受信側が同期を取るためのビットパターン |
| 宛先 MAC アドレス | 6 バイト | フレームを受け取る相手のハードウェア識別子 |
| 送信元 MAC アドレス | 6 バイト | フレームを送り出した側のハードウェア識別子 |
| タイプ | 2 バイト | 上位プロトコル種別(例: 0x0800 = IPv4、0x0806 = ARP、0x86DD = IPv6) |
| ペイロード | 46〜1500 バイト | 上位層から渡された IP パケット等 |
| FCS | 4 バイト | 誤り検出用の CRC |
タイプフィールドの値で、受信側は内側のパケットを IPv4 として扱うのか IPv6 として扱うのかを判別します。「フレームのサイズ」と呼ぶ場合は、同期用のプリアンブルと SFD を除いた範囲を指すことが多い表記です。
4. MAC アドレスとは
MAC アドレス (Media Access Control Address) は、ネットワークインターフェース層で機器を識別する 48 ビット (6 バイト) の物理アドレスです。前半 24 ビットは IEEE が製造元に割り当てる OUI (Organizationally Unique Identifier、ベンダー識別子)、後半 24 ビットはベンダーが個体ごとに付与する識別子となります。原則は NIC に焼き込まれる「バーンドイン MAC」ですが、仮想化環境などソフトウェアで上書きされることもあります。表記は 16 進 2 桁を 6 組並べ、コロンまたはハイフンで区切る形式 (例: 00:1a:2b:3c:4d:5e) が一般的です。
宛先 MAC アドレスは、用途によって 3 種類に分類されます。
- ユニキャスト: 特定の 1 ノードに送るアドレス。先頭バイトの最下位ビットが 0。
- ブロードキャスト: 同じセグメント全体に送るアドレス。
ff:ff:ff:ff:ff:ffを用いる。 - マルチキャスト: 特定グループのノードへ送るアドレス。先頭バイトの最下位ビットが 1。
5. 受信側のデカプセル化
受信側のノードでは、送信側と逆順の処理が行われます。物理層がビット列を受け取ると、ネットワークインターフェース層が Ethernet ヘッダと FCS を解釈してフレームの整合性を確認し、ペイロードをインターネット層へ渡します。インターネット層は IP ヘッダを、トランスポート層は TCP または UDP のヘッダを順に除去し、最後にアプリケーション層が元のデータを受け取ります。
送信で一段ずつ積み上げたヘッダが、受信で一段ずつ剥がされる構造です。この対称性が、層構造で通信を分担する設計の中核となります。
6. 次節
続く 1-6 IP アドレスとサブネットマスク では、IP アドレスの 32 ビット構造と、ネットワーク部・ホスト部の分割を担うサブネットマスクの役割を整理していきます。

0x0800 なら中身は IPv4、0x86DD なら IPv6 ── と、内側のパケットの種類が書いてある。そのあとがペイロード(運ぶ本体)で、最後に誤り検出用の FCS が付くんだ。00:1a:2b:3c:4d:5e みたいに16進2桁を6組並べて書く。IP アドレスが「あとから論理的に割り当てる住所」なのに対して、MAC は「原則として製造時に焼き込まれる、その NIC 固有の名前」だと思えばいい。── もっとも“原則”でね。仮想マシンの NIC やソフトウェア設定で書き換えられることもあるから、絶対に変わらないわけじゃないんだ。ff:ff:ff:ff:ff:ff がそれ)、特定グループに送るマルチキャスト。VLAN の節でやった「ARP がブロードキャストで叫ぶ」── あれはこのブロードキャスト MAC を使っていたんだよ。