Ethernet II
ローカルネットワーク上のあらゆるものを運ぶフレーム。MAC、種別、ペイロード。
ヘッダ
ノート PC からルータへ、IPv4 パケットを運ぶ実際のフレームです。
0:00
フレーム全体
14 バイトのヘッダで、フレームはスイッチを越えられます。宛先・送信元・中身の種類。あとはすべてペイロードです。
| フィールド | 位置 | 例の値 | 意味 |
|---|---|---|---|
| 宛先 MAC | 0–5 バイト目 | 00:1A:2B:3C:4D:5E (router) | 同じネットワーク内で、このフレームを受け取るべき相手です。ここではルータです。MAC アドレスは 6 バイトです。先頭 3 バイトはメーカー(OUI)を表します。最初のバイトの最下位ビットは「グループアドレス」(マルチキャスト/ブロードキャスト)、その次のビットは「ローカル管理」を意味します。 |
| 送信元 MAC | 6–11 バイト目 | 3C:22:FB:AA:01:20 (laptop) | 送信者自身のハードウェアアドレスです。スイッチはこのフィールドから、各 MAC がどのポートにいるかを学習します。 |
| EtherType | 12–13 バイト目 | 0x0800 = IPv4 | ペイロードの中身を示し、受信側がどのプロトコルに渡すかを決めます。0x0800 は IPv4、0x0806 は ARP、0x86DD は IPv6、0x8100 は VLAN タグが続くことを意味します。0x0600 未満の値は旧 802.3 形式の長さです。 |
| ペイロード(先頭) | 14–19 バイト目 | 45 00 00 2C 1C 46 ... | ここから IPv4 パケットが始まります。0x45 はバージョン 4・ヘッダ長 5 ワードの意味です。ペイロードは 46〜1500 バイトで、そのあとに 4 バイトのチェックサム(FCS)が付きます。 |
概要
Ethernet はほぼすべての有線 LAN のリンク層です。フレームは 14 バイトのヘッダ(宛先 MAC・送信元 MAC・EtherType)、46〜1500 バイトのペイロード、4 バイトのチェックサムでできています。アドレスはローカルセグメントの中でしか意味を持たず、ルータはホップごとに書き換えます。
ペイロード 1500 バイトの上限が、有名な MTU です。これより大きい IP パケットは、分割(フラグメント)されるか、そもそも送られません。
基本情報
- アドレス
- 48 ビット MAC
- ヘッダ
- 14 バイト
- ペイロード
- 46 – 1500 bytes (MTU)
- チェックサム
- FCS, CRC-32
- 最大フレーム
- 1518 バイト(VLAN 付きで 1522)
- バイト順
- フィールドはビッグエンディアン、ビットは LSB 先
線の上のすべて
同じ層を、導入部・パディング・計算した FCS まで含めて見ます。ペイロードは ARP 要求です。
0:00
フレーム全体
導入の 8 バイト、ヘッダ 14、(パディング込みの)ペイロード 46、チェックサム 4 の合計 72 バイト時間です。100 Mbit/s なら約 5.8 マイクロ秒です。
| フィールド | 位置 | 例の値 | 意味 |
|---|---|---|---|
| プリアンブル | 0–6 バイト目 | 55 55 55 55 55 55 55 | 0x55 が 7 バイト(ビットは LSB から出るので、線上では 1 0 1 0 の繰り返し)。受信側のクロックが同期するための目印です。ネットワークカードが取り除くので、キャプチャソフトには見えません。 |
| SFD | 7 バイト目 | 0xD5 | Start Frame Delimiter 0xD5(線上では 10101011)。最後の 11 が「ここからフレーム開始」の合図です。 |
| 宛先 MAC | 8–13 バイト目 | FF:FF:FF:FF:FF:FF (broadcast) | 全ビットが 1 のブロードキャストアドレスです。同じセグメントの全ホストが受け取ります。ARP 要求は、相手の MAC をまだ知らないのでブロードキャストで送ります。 |
| 送信元 MAC | 14–19 バイト目 | 3C:22:FB:AA:01:20 | 問い合わせているホストです。 |
| EtherType | 20–21 バイト目 | 0x0806 = ARP | 0x0806 = ARP。 |
| ARP ペイロード | 22–49 バイト目 | ARP request | 28 バイトの ARP 要求です(各フィールドは ARP のページで解説)。 |
| パディング | 50–67 バイト目 | 00 × 18 | Ethernet フレームは FCS を含めて最低 64 バイト必要なので、28 バイトのペイロードをゼロで 46 バイトの最小値まで埋めます。 |
| FCS(CRC-32) | 68–71 バイト目 | 0x2E453236 | 宛先 MAC からパディングまでの CRC-32 で、ここでは実際に計算した 0x2E453236 です。下位バイトから送ります(36 32 45 2E)。不一致を見つけたスイッチや NIC は、フレームを黙って捨てます。 |
使われる場面
- 家庭用ルータからデータセンタまで、あらゆる有線 LAN
- Wi-Fi のフレーム形式(802.11)や PoE の土台
- 産業用 Ethernet: EtherCAT、PROFINET、EtherNet/IP
つまずきやすい点
- FCS はハードウェアが検査し、見える前に取り除かれることが多いので、パケットキャプチャには通常 FCS もプリアンブルも写りません。
- MAC はホップを識別するもので、インターネット越しのホストを識別するものではありません。インターネット宛のパケットの宛先 MAC は、サーバではなくルータのものです。
- MTU の食い違い(VPN や PPPoE など)があると、小さなパケットは通るのに大きなパケットだけが消えます。
出典・規格
- IEEE 802.3 (Ethernet)
- DIX Ethernet II