この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第15回です。
前回学んだTCP/IPモデルのうち、ネットワークインターフェース層で使われる Ethernetフレームの構造を詳しく見ていきます。
Ethernetフレームとは?構造・MACアドレス・FCSを初心者向けに図解
パソコンから送信されたデータは、そのままLANケーブルを流れるわけではありません。 宛先MACアドレスや送信元MACアドレスなどの情報を付けた 「Ethernetフレーム」という形にして送信されます。 この記事では、Ethernetフレームの各フィールドと、スイッチがフレームを転送する仕組みを図解します。
Ethernetフレームは、LAN内の通信を理解するうえで重要なデータ形式です。
しかし、最初からすべてのフィールド名やバイト数を暗記する必要はありません。 まずは、 誰から誰へ送るのか、何を運んでいるのか、データが壊れていないか を示す情報が入っていると理解しましょう。
この記事を読み終えるとできること
- Ethernetフレームの役割を説明できる
- 宛先MACアドレスと送信元MACアドレスを区別できる
- EtherType、データ、FCSの役割を説明できる
- フレーム、パケット、セグメントの違いを整理できる
- ルーターを越えるとMACアドレスが変わる理由を説明できる
- Ethernetフレームの基本サイズを説明できる
Ethernetフレームとは何か
Ethernetフレームとは、LAN内でデータを届けるために、 MACアドレスなどの制御情報とデータをまとめた形式です。
Ethernetは、パソコンやスイッチなどを有線LANで接続するときに広く使われている通信方式です。
パソコンが別の機器へデータを送るときは、送りたいデータの前後に情報を追加します。 その完成した単位がEthernetフレームです。
Ethernetフレームの基本イメージ
一般的なEthernet IIフレームの基本構造です。VLANタグがある場合は構造が一部変わります。
手紙に置き換えると、Ethernetフレームは 封筒に宛先と差出人を書き、中へ手紙を入れた状態 に似ています。
| 手紙 | Ethernetフレーム |
|---|---|
| 宛先 | 宛先MACアドレス |
| 差出人 | 送信元MACアドレス |
| 手紙の種類 | EtherType |
| 封筒の中の手紙 | IPパケットなどのデータ |
| 破損していないかの確認 | FCS |
Ethernetフレームは、主に同じLAN区間でデータを運ぶための入れ物です。
インターネットの最終的な通信相手ではなく、 まずは同じLAN内の相手や、次に経由するルーターへ届けるために使用されます。
データがEthernetフレームになるまで
前回の記事では、TCP/IPモデルには複数の階層があることを学びました。
Webブラウザなどが作成したデータは、上位の層から下位の層へ渡されるたびに、 通信に必要な情報が追加されます。
Ethernetフレームのデータ部分には、一般的にIPパケットが入ります。
つまり、IPパケットがEthernetフレームという入れ物に包まれて、 LANケーブルなどを通って送信されます。
データを別の形式で包む処理を、カプセル化と呼びます。
受信側では、追加された情報を外しながら上位の層へデータを渡します。 この反対の処理を非カプセル化と呼びます。
フレーム・パケット・セグメントの違い
| 名称 | 主な階層 | 主に含まれる情報 | 役割 |
|---|---|---|---|
| セグメント | トランスポート層 | ポート番号など | どのアプリケーションへ届けるかを管理する |
| パケット | インターネット層 | 送信元・宛先IPアドレスなど | 異なるネットワークを越えて宛先へ届ける |
| フレーム | ネットワークインターフェース層 | 送信元・宛先MACアドレスなど | 同じLAN区間で次の機器へ届ける |
同じデータを、見る階層によって異なる名前で呼びます。
「フレームとパケットは別々の通信」ではなく、 パケットがフレームの中に入って送られる関係です。
Ethernetフレームの基本構造
Ethernet通信では、実際にはフレームの前に プリアンブルとSFDも送信されます。
受信準備と同期
開始位置
届ける相手
送信した機器
データの種類
IPパケットなど
誤り検出
Ethernetフレームのサイズを説明するときは、一般的に 宛先MACアドレスからFCSまでを数えます。
プリアンブルとSFDは物理媒体上では送信されますが、 通常の「64~1,518バイト」というフレームサイズには含めません。
Ethernetフレームの各フィールド
1.プリアンブル
プリアンブルは7バイトの情報で、フレーム本体の前に送信されます。
受信側に対して「これからデータを送ります」と知らせ、 送信側と受信側のタイミングを合わせるために使われます。
人同士の会話でいえば、突然本題を話し始めるのではなく、 「今から話します」と合図する部分に近い役割です。
2.SFD
SFDは、Start Frame Delimiterの略です。
1バイトの情報で、プリアンブルの終わりと Ethernetフレーム本体の開始位置を示します。
プリアンブルとSFDは通信に必要ですが、 通常はフレームの各フィールドを学ぶ際に簡略化して省略されることもあります。
3.宛先MACアドレス
宛先MACアドレスは6バイトで、 このフレームをどの機器へ届けるのかを示します。
スイッチはこの宛先MACアドレスを確認し、 どのポートからフレームを転送するかを判断します。
ユニキャスト
特定の1台へ送信します。 通常の端末間通信で多く使われる形式です。
ブロードキャスト
同じLAN内のすべての機器へ送信します。
宛先MACアドレスは
FF:FF:FF:FF:FF:FFです。
次の記事で学ぶARPでは、通信相手のMACアドレスが分からないときに、 ブロードキャストフレームを利用して問い合わせます。
4.送信元MACアドレス
送信元MACアドレスも6バイトで、 どの機器がフレームを送信したのかを示します。
スイッチは受信したフレームの送信元MACアドレスを確認し、 「このMACアドレスの機器は、このポートの先にある」と学習します。
スイッチは送信元MACアドレスから学習し、宛先MACアドレスを見て転送します。
5.EtherType
EtherTypeは2バイトで、 Ethernetフレームのデータ部分に何が入っているのかを示します。
| EtherType | 中に入っているデータ | 主な用途 |
|---|---|---|
0x0800 |
IPv4 | IPv4を使った通常のIP通信 |
0x0806 |
ARP | IPアドレスに対応するMACアドレスを調べる |
0x86DD |
IPv6 | IPv6を使った通信 |
0x8100 |
IEEE 802.1Qタグ | VLAN情報を付加したフレーム |
受信側はEtherTypeを確認することで、 データ部分をIPv4、ARP、IPv6などのどの処理へ渡すべきか判断できます。
6.データ
データ部分には、実際に運びたい情報が入ります。
TCP/IP通信では、多くの場合、 IPヘッダーやTCPヘッダーを含んだIPパケットが格納されます。
フレームの中にパケットが入るイメージ
7.パディング
Ethernetフレームのデータ部分は、最小46バイト必要です。
運びたいデータが46バイトより小さい場合は、 不足分を埋めるためにパディングと呼ばれるデータを追加します。
たとえば、本来のデータが30バイトしかない場合は、 最小値の46バイトになるように16バイト分を補います。
8.FCS
FCSは、Frame Check Sequenceの略です。
フレームが通信中に壊れていないかを確認するための4バイトの情報です。 送信側はフレームの内容から確認用の値を計算し、FCSとして付加します。
受信側も同じ方法で値を計算し、受信したFCSと比較します。 値が一致しなければ、通信途中でデータが変化した可能性があります。
FCSは誤りを検出するための情報であり、 壊れたフレームを自動的に修復するものではありません。
一般的に、FCSエラーがあるフレームは破棄されます。
Ethernetフレームのサイズ
一般的なEthernet IIフレームは、次のサイズで送信されます。
| 項目 | サイズ |
|---|---|
| 宛先MACアドレス | 6バイト |
| 送信元MACアドレス | 6バイト |
| EtherType | 2バイト |
| データとパディング | 46~1,500バイト |
| FCS | 4バイト |
| 合計 | 64~1,518バイト |
最小サイズは64バイト
データ部分が46バイトの場合、合計は次のようになります。
6バイト + 6バイト + 2バイト + 46バイト + 4バイト = 64バイト
最大サイズは1,518バイト
データ部分が最大の1,500バイトの場合は、次のようになります。
6バイト + 6バイト + 2バイト + 1,500バイト + 4バイト = 1,518バイト
1,514バイトと表示されることがある理由
パケットキャプチャーや機器の表示では、 Ethernetフレームが1,514バイトと表示されることがあります。
これは、ネットワークインターフェースがFCSを取り除いてから OSやキャプチャーソフトへ渡す場合があるためです。
1,518バイトはFCSを含むサイズ、1,514バイトはFCSを含まないサイズ と考えると整理しやすくなります。
MTUとの関係
MTUは、1回の通信で運べる上位層のデータサイズを表す値です。
一般的なEthernetのMTUは1,500バイトです。 これはEthernetフレーム全体のサイズではなく、 Ethernetフレームのデータ部分へ格納できるIPパケットの最大サイズ を指します。
| 用語 | 一般的なサイズ | 含まれる範囲 |
|---|---|---|
| Ethernet MTU | 1,500バイト | Ethernetフレームのデータ部分 |
| Ethernetフレーム | 最大1,518バイト | MACヘッダー、データ、FCS |
スイッチはフレームをどう処理するのか
スイッチは、Ethernetフレームに含まれるMACアドレスを使って、 フレームの転送先を判断します。
PC-AからPC-Bへフレームを送信する例
- PC-Aがフレームを送信する 送信元MACアドレスにはPC-A、宛先MACアドレスにはPC-BのMACアドレスが入ります。
- スイッチが送信元MACアドレスを学習する スイッチは、PC-AのMACアドレスがフレームを受信したポートの先にあると記録します。
- スイッチが宛先MACアドレスを確認する MACアドレステーブルを調べ、PC-Bが接続されているポートを探します。
- 該当ポートからフレームを転送する PC-Bが接続されているポートからフレームを送信します。
- PC-Bがフレームを受信する PC-Bは宛先MACアドレスが自分のMACアドレスと一致するため、データを受け取ります。
宛先MACアドレスが未学習の場合
スイッチのMACアドレステーブルに宛先MACアドレスが登録されていない場合、 スイッチは転送先を特定できません。
この場合、フレームを受信したポート以外の同じLAN内のポートへ フレームを転送します。 この動作をフラッディングと呼びます。
ブロードキャストフレームも、同じLAN内の複数のポートへ転送されます。
スイッチが確認する情報
| 情報 | スイッチの主な動作 |
|---|---|
| 送信元MACアドレス | MACアドレステーブルへ学習する |
| 宛先MACアドレス | フレームを転送するポートを判断する |
| FCS | フレームに破損がないか確認する |
ルーターを越えるとフレームはどうなるのか
Ethernetフレームは、基本的に1つのLAN区間で使われます。
宛先が別のネットワークにある場合、 パソコンは最終的な通信相手のMACアドレスではなく、 デフォルトゲートウェイであるルーターのMACアドレス を宛先MACアドレスに設定します。
異なるネットワークへ通信する流れ
- PC-Aがルーター宛てのフレームを作る 宛先MACアドレスには、デフォルトゲートウェイのMACアドレスを設定します。
- ルーターがフレームを受信する ルーターはEthernetヘッダーとFCSを取り外し、中のIPパケットを確認します。
- ルーターが宛先IPアドレスを確認する ルーティングテーブルを使って、次に転送する経路を判断します。
- ルーターが新しいフレームを作る 次のLAN区間で使用する送信元MACアドレスと宛先MACアドレスを設定します。
- 新しいフレームを送信する IPパケットを新しいEthernetフレームへ入れて、次の機器へ送信します。
| 情報 | ルーターを越えたとき |
|---|---|
| 送信元MACアドレス | 新しいLAN区間に合わせて変わる |
| 宛先MACアドレス | 次に届ける機器のMACアドレスへ変わる |
| 送信元IPアドレス | 通常は変わらない |
| 宛先IPアドレス | 通常は変わらない |
NATやNAPTを使用している場合は、ルーターでIPアドレスやポート番号が変更されることがあります。 NATとNAPTは後の記事で詳しく学びます。
MACアドレスは区間ごと、IPアドレスは通信全体で使われる と考えると整理しやすくなります。
VLANタグ付きEthernetフレーム
スイッチ間で複数のVLANを運ぶ場合などは、 EthernetフレームへVLAN情報を追加することがあります。
IEEE 802.1Qでは、送信元MACアドレスとEtherTypeの間へ 4バイトのVLANタグを挿入します。
VLAN IDなど
VLANタグが4バイト追加されるため、 一般的なタグ付きEthernetフレームの最大サイズは 1,522バイトになります。
初級編では、「VLANタグを付けると、どのVLANに属するフレームか識別できる」 と理解できれば十分です。
VLANとIEEE 802.1Qは、中級編で詳しく学びます。
Wiresharkで確認するときのポイント
Wiresharkなどのパケットキャプチャーソフトを使うと、 Ethernetフレームの内容を確認できます。
表示される項目名は環境や通信によって異なりますが、 最初は次の部分を確認しましょう。
Destination
宛先MACアドレスです。 フレームを次に受信する機器を示します。
Source
送信元MACアドレスです。 現在のLAN区間でフレームを送信した機器を示します。
Type
フレーム内のデータがIPv4、ARP、IPv6などのどれであるかを示します。
Frame length
キャプチャーされたフレームの長さを確認できます。 FCSが含まれない場合もあります。
WiresharkにFCSが表示されないからといって、 Ethernet通信でFCSが使われていないとは限りません。
ネットワークインターフェースがFCSを確認し、 OSへ渡す前に取り除いている場合があります。
Ethernetフレームに関するよくある勘違い
IPパケットは、Ethernetフレームのデータ部分に格納されます。 フレームとパケットは同じ通信データを異なる階層で見たものです。
別ネットワークのサーバーへ通信するときは、 宛先MACアドレスにデフォルトゲートウェイのMACアドレスを設定します。
ルーターを越えるたびにEthernetフレームが作り直されるため、 送信元と宛先のMACアドレスはLAN区間ごとに変わります。
FCSの主な役割は誤りの検出です。 破損したフレームは一般的に破棄され、必要に応じて上位層の仕組みで再送されます。
1,500バイトは一般的なEthernet MTUであり、データ部分の最大値です。 MACヘッダーとFCSを含めたフレーム全体は最大1,518バイトです。
スイッチは送信元MACアドレスを学習し、 宛先MACアドレスをもとに転送先のポートを判断します。
理解度チェック
記事の内容を確認するため、次の5問に答えてください。 解答を見る前に一度自分で考えてみましょう。
問題1.Ethernetフレームの説明として最も適切なものはどれですか。
- WebサイトのURLだけを保存する形式
- LAN内でデータを届けるために、MACアドレスなどを付加した形式
- IPアドレスを自動配布する仕組み
- 通信経路を決定するルーティングテーブル
解答を見る
Ethernetフレームは、宛先・送信元MACアドレスなどの制御情報と データをまとめた形式です。
問題2.スイッチがフレームの転送先を判断するとき、主に確認する情報はどれですか。
- 宛先MACアドレス
- 宛先ポート番号
- URL
- ユーザー名
解答を見る
スイッチは宛先MACアドレスとMACアドレステーブルを使い、 フレームを転送するポートを判断します。
問題3.EtherTypeが示す情報はどれですか。
- フレームを受信した時刻
- LANケーブルの長さ
- データ部分に格納されているプロトコルの種類
- スイッチのポート番号
解答を見る
EtherTypeは、データ部分がIPv4、ARP、IPv6などの どのプロトコルであるかを示します。
問題4.一般的なEthernet IIフレームの最大サイズは何バイトですか。
- 64バイト
- 1,500バイト
- 1,514バイト
- 1,518バイト
解答を見る
宛先MACアドレスからFCSまでを含めた一般的な最大サイズは 1,518バイトです。 1,500バイトはデータ部分の一般的な最大値です。
問題5.PCから別ネットワークにあるWebサーバーへ通信します。 PCが最初に作るフレームの宛先MACアドレスには、どの機器のMACアドレスが入りますか。
- PC自身
- Webサーバー
- デフォルトゲートウェイ
- DNSサーバー
解答を見る
宛先が別ネットワークにある場合、 PCはまずデフォルトゲートウェイへフレームを届けます。 そのため、宛先MACアドレスにはデフォルトゲートウェイのMACアドレスが入ります。
実践演習:Ethernetフレームの中身を読み取ろう
PC-Aから別ネットワークにあるWebサーバーへ通信する場面を考えます。
演習用ネットワーク
課題1.最初のフレームを完成させる
PC-Aがルーターへ送信するEthernetフレームについて、 次の空欄を埋めてください。
宛先MACアドレス:______________
課題1の解答を見る
送信元MACアドレス: AA-AA-AA-AA-AA-AA
宛先MACアドレス: 11-11-11-11-11-11
Webサーバーは別ネットワークにあるため、 PC-Aはまずデフォルトゲートウェイであるルーターへフレームを届けます。
課題2.ルーター通過後の変化を考える
ルーターがWebサーバー側へ新しいEthernetフレームを送信するとき、 次の情報が変わるかどうか答えてください。
- 送信元MACアドレス
- 宛先MACアドレス
- 送信元IPアドレス
- 宛先IPアドレス
IPアドレス:______________
課題2の解答を見る
送信元MACアドレスと宛先MACアドレスは変わります。
ルーターは受信したフレームを取り外し、 次のLAN区間に合わせた新しいEthernetフレームを作成します。
送信元IPアドレスと宛先IPアドレスは、通常は変わりません。
ただし、NATやNAPTを使用する場合はIPアドレスなどが変更されることがあります。
課題3.フレームサイズを計算する
VLANタグを使用しないEthernet IIフレームで、 データ部分が1,000バイトだったとします。
宛先MACアドレス、送信元MACアドレス、EtherType、 データ、FCSを含むフレーム全体は何バイトでしょうか。
課題3の解答を見る
正解:1,018バイト
計算は次のとおりです。
6 + 6 + 2 + 1,000 + 4 = 1,018バイト
課題4.障害原因を考える
スイッチのインターフェースでFCSエラーが増加しているとします。 どのような原因が考えられるでしょうか。
課題4の解答例を見る
- LANケーブルが破損している
- コネクターの接触状態が悪い
- ネットワークインターフェースに異常がある
- 電気的なノイズの影響を受けている
- 光モジュールや光ケーブルに問題がある
FCSエラーは、フレームが通信経路上で破損した可能性を示します。 ただし、カウンターだけで原因を断定せず、 ケーブル、ポート、トランシーバー、発生方向などを確認します。
自分の言葉で説明する課題
最後に、次の質問へ自分の言葉で答えてください。
「Ethernetフレームとは何ですか?」と質問されました。 MACアドレス、データ、FCSという言葉を使って30秒程度で説明してください。
説明例を見る
Ethernetフレームとは、LAN内でデータを運ぶための形式です。 宛先と送信元のMACアドレス、IPパケットなどのデータ、 通信途中で壊れていないか確認するFCSなどが含まれています。 スイッチは宛先MACアドレスを確認して、フレームの転送先を判断します。
模範解答と一字一句同じである必要はありません。
「LAN内で運ぶ」「MACアドレスを使う」「データを格納する」「FCSで破損を確認する」 という内容を説明できれば、この記事の目標は達成です。
まとめ
- Ethernetフレームは、LAN内でデータを届けるための形式
- 宛先MACアドレスは届ける相手、送信元MACアドレスは送信した機器を示す
- EtherTypeは、データ部分がIPv4、ARP、IPv6などのどれかを示す
- データ部分にはIPパケットなどが格納される
- FCSは、フレームが通信途中で壊れていないかを検出する
- 一般的なEthernet IIフレームは64~1,518バイト
- 一般的なEthernet MTUは1,500バイトで、フレーム全体のサイズではない
- スイッチは送信元MACアドレスを学習し、宛先MACアドレスを見て転送する
- ルーターを越えるとEthernetフレームは作り直され、MACアドレスが変わる
- VLANタグ付きフレームは、通常のフレームより4バイト大きくなる
Ethernetフレームは、IPパケットをLAN内の次の機器へ届けるための入れ物です。
初級編では、ネットワークの全体像からIPアドレス、Ethernet、ARP、 TCP、DNS、基本コマンド、障害切り分けまでを順番に学びます。

コメント