イーサネットフレーム構造#
イーサネット(Ethernet II / IEEE 802.3)で使用されるフレームは、複数のフィールドから構成されています。ここでは各フィールドの役割とフレームサイズについて解説します。
各フィールドの説明#
| フィールド名 | サイズ | 説明 |
|---|---|---|
| プリアンブル (Preamble) | 7 バイト | 10101010 を7回繰り返すビットパターン。受信側のクロックを送信側と同期させるために使用される。 |
| SFD (開始デリミタ / Start Frame Delimiter) | 1 バイト | 10101011 の固定パターン。この直後からフレーム本体(宛先MACアドレス)が始まることを示す。 |
| 宛先MACアドレス (Destination MAC Address) | 6 バイト | フレームの送信先となる機器のMACアドレス。ブロードキャスト(FF:FF:FF:FF:FF:FF)やマルチキャストアドレスも指定可能。 |
| 送信元MACアドレス (Source MAC Address) | 6 バイト | フレームを送信した機器のMACアドレス。 |
| タイプ/長さ (Type/Length, EtherType) | 2 バイト | 値が1500(0x05DC)以下の場合はデータ長を、1536(0x0600)以上の場合は上位プロトコルの種別(EtherType)を表す。 |
| データ (ペイロード / Payload) | 46〜1500 バイト | 上位層から渡されたデータ本体。最小フレーム長を満たすため、46バイトに満たない場合はパディング(詰め物)が付加される。 |
| FCS (フレームチェックシーケンス / CRC) | 4 バイト | 宛先MACアドレスからデータまでの内容をもとに計算されたCRC32のチェックサム。伝送中のビット誤りを検出するために使用される。 |
EtherTypeの代表例#
タイプ/長さフィールドの値が1536(0x0600)以上の場合、その値は上位プロトコルの種別(EtherType)を示します。代表的な値は以下の通りです。
| EtherType値 | プロトコル |
|---|---|
0x0800 | IPv4 |
0x0806 | ARP |
0x8100 | IEEE 802.1Q VLANタグ付きフレーム |
0x8847 | MPLS ユニキャスト |
0x8848 | MPLS マルチキャスト |
0x8863 | PPPoE Discovery Stage |
0x8864 | PPPoE Session Stage |
0x888E | IEEE 802.1X EAPOL |
0x88CC | LLDP |
0x86DD | IPv6 |
EtherTypeはIEEE Registration Authorityが管理しており、割り当て済みの全一覧は以下で公開されています。
フレームサイズ#
プリアンブルとSFDは物理層の同期用フィールドであり、MACフレームのサイズには含まれません。
| 範囲 | サイズ | 備考 |
|---|---|---|
| MACフレーム(宛先MACアドレス〜FCS) | 64〜1518 バイト | イーサネットの規格上で定義されているフレームサイズ。 |
| 伝送データ全体(プリアンブル・SFDを含む) | 72〜1526 バイト | 実際にケーブル上を流れるビット列全体のサイズ。 |
データが46バイト未満の場合、最小フレーム長64バイト(MACフレーム)を満たすようにパディングが挿入されます。これは、CSMA/CD方式における衝突検出を正しく機能させるために必要な最小サイズです。
また、802.1Q VLANタグを付与する場合は、送信元MACアドレスとタイプ/長さの間に4バイトのVLANタグが挿入され、最大フレーム長は1522バイトまで拡張されます。