はじめに
有線LANでデータが送られるとき、IPパケットなどの上位データは、そのままケーブル上を流れるわけではありません。Ethernetでは、宛先やデータの種類、エラーを検出するための情報などを付けた「イーサネットフレーム」という単位にして送ります。
この記事では、イーサネットフレームの基本構造と、各フィールドが何のために使われるのかを整理します。読み終えると、フレームを見たときに「どこが宛先で、どこがデータで、どこがエラー検出なのか」を説明できるようになります。
この記事で分かること
- イーサネットフレームの基本構造
- 各フィールドの大きさと役割
- プリアンブルとSFDが何をしているか
- 基本フレームが64~1518オクテットになる理由
イーサネットフレームとは
イーサネットフレームとは、Ethernetで同一リンク上の機器へデータを渡すために使うデータのまとまりです。ネットワーク層などから受け取ったデータに、宛先MACアドレスや送信元MACアドレス、データの種類や長さを示す情報、エラーを検出するための情報を付けて送信します。
フレームを使って同一リンク内でデータを届ける役割そのものについては、「データリンク層とは?MACアドレスやフレームの役割を分かりやすく解説」で解説しています。この記事では、その中でもイーサネットフレームの中身に絞って見ていきます。
なお、プリアンブルとSFDはフレーム本体の直前に送信されますが、一般に64~1518オクテットというMACフレームのサイズには含めません。本記事では、フレームが始まる仕組みを理解するために、この2つもあわせて説明します。
イーサネットフレームの全体構造
基本的なイーサネットフレームと、その直前に送られるプリアンブル・SFDは、次の順に並びます。ここではVLANタグなどを含まない基本形を扱います。1オクテットは8ビットで、通常は1バイトと同じ大きさとして考えられます。
| フィールド | 大きさ | 主な役割 |
|---|---|---|
| プリアンブル | 7オクテット | 受信側が信号のタイミングを合わせる |
| SFD | 1オクテット | MACフレームの開始位置を示す |
| 宛先MACアドレス | 6オクテット | フレームの宛先を示す |
| 送信元MACアドレス | 6オクテット | フレームの送信元を示す |
| Length/Type | 2オクテット | データ長または上位プロトコルの種類を示す |
| Data/Pad | 46~1500オクテット | 実際に運ぶデータと必要なパディング |
| FCS | 4オクテット | 伝送中のビット誤りを検出する |
基本形では、宛先MACアドレス6オクテット、送信元MACアドレス6オクテット、Length/Type 2オクテットの合計14オクテットが、一般にイーサネットヘッダーとして扱われる部分です。MACフレームのサイズは宛先MACアドレスからFCSまでを数え、プリアンブルとSFDはそのサイズ算定に含めません。
各フィールドの役割
プリアンブルとSFD
プリアンブルは7オクテットあり、受信側が送信側の信号タイミングに同期するために使われます。その直後に1オクテットのSFD(Start Frame Delimiter)が続き、ここからMACフレームが始まることを示します。
そのため、「プリアンブルが8オクテットあり、その一部がSFD」というより、7オクテットのプリアンブルと1オクテットのSFDが順に送られると分けて理解する方が明確です。
宛先MACアドレスと送信元MACアドレス
宛先MACアドレスと送信元MACアドレスは、それぞれ6オクテットです。宛先MACアドレスには「このフレームをどの機器へ届けるか」、送信元MACアドレスには「どの機器から送られたか」を示すアドレスが入ります。
スイッチなどの機器は、このMACアドレスを利用して同一LAN内でフレームを転送します。ここではフレーム内での役割に絞り、MACアドレスそのものの内部構造や転送処理の詳細までは扱いません。
Length/Type
Length/Typeは2オクテットのフィールドで、値によって意味が変わります。値が1500以下なら後続データの長さを示すLengthとして、1536以上ならIPなど上位プロトコルの種類を示すTypeとして解釈されます。1501~1535はLengthとTypeのどちらにも割り当てない範囲です。
Ethernet IIとIEEE 802.3 LLCフレームを別々の形式として説明する資料もありますが、IEEE 802.3のMACフレーム構造では、この2オクテットは数値によってLengthまたはTypeとして解釈されるLength/Typeフィールドとして定義されています。基本構造を理解する段階では、まずこの共通フィールドとして捉えると整理しやすくなります。
Data/Pad
Dataには、IPパケットなど上位層から受け取ったデータが入ります。基本フレームではData/Padの範囲は46~1500オクテットです。
運ぶデータが46オクテットより短い場合は、最小フレームサイズを満たすためにPad(パディング)を追加します。Padは意味のある上位データを増やすためではなく、Ethernetフレームとして必要な長さを確保するための埋め合わせです。
FCS
FCS(Frame Check Sequence)は4オクテットで、フレームが伝送中に壊れていないかを確認するために使います。送信側はフレームの内容からCRC-32(32ビットの巡回冗長検査)による値を計算してFCSへ格納し、受信側も同様に計算して結果を照合します。
値が一致しなければ、伝送中にビット誤りが発生した可能性があると判断できます。FCSは誤りを検出するための仕組みであり、壊れたデータそのものを修正する機能ではありません。
イーサネットフレームのサイズ
VLANタグなどを含まない基本的なMACフレームは、宛先MACアドレスからFCSまでで64~1518オクテットです。最小サイズは「6+6+2+46+4=64」、最大サイズは「6+6+2+1500+4=1518」と考えると構造との関係が分かります。
前に送られる7オクテットのプリアンブルと1オクテットのSFDは、この64~1518オクテットには含まれません。つまり、フレームサイズを確認するときは、どこからどこまでを数えているのかを区別することが重要です。VLANタグを付ける場合などは基本形からフィールドが追加されますが、本記事ではイーサネットフレームの基本構造を理解することを目的としているため、タグ付きフレームの詳細は扱いません。
まとめ
イーサネットフレームは、宛先MACアドレス、送信元MACアドレス、Length/Type、Data/Pad、FCSで構成されます。その直前には7オクテットのプリアンブルと1オクテットのSFDが送られ、受信側の同期とフレーム開始位置の通知を行います。
基本的なMACフレームのサイズは64~1518オクテットです。各フィールドの役割を押さえると、イーサネットで「誰に送るのか」「何を運んでいるのか」「壊れていないか」をどの情報で判断しているのかを整理して理解できます。