ネットワーク通信において、私たちが意識することなく利用しているデータのやり取りを支えているのが「イーサネット」という規格です。
コンピューター同士が同じネットワーク内でデータを正しく届けるためには、データ本体に加えて「どこからどこへ送るのか」といった制御情報が必要になります。
この制御情報を格納したものがイーサネットヘッダであり、データリンク層(レイヤー2)における通信の要といえます。
本記事では、イーサネットヘッダの構造から各フィールドの役割、通信の仕組みまで、初心者の方にもわかりやすく詳しく解説します。
イーサネットヘッダとは?データ通信における役割
イーサネットヘッダとは、イーサネット規格に基づいた通信において、データの先頭に付与される制御用の情報のことです。
OSI参照モデルにおける第2層(データリンク層)で動作し、物理的なケーブルでつながれた同一ネットワーク内の機器同士が通信するために利用されます。
私たちがインターネットやLANを利用してデータを送信する際、データはパケットやフレームといった単位に分割されます。
この最小単位である「フレーム」の先頭に、宛先や送信元の情報を記した「ヘッダ」を付けることで、スイッチングハブなどのネットワーク機器が正しくデータを配送できるようになります。
イーサネットヘッダは、いわば郵便物における「封筒」の表面に書かれた宛名と差出人のような役割を果たしているのです。
このヘッダ情報があるおかげで、ネットワーク上の多くの端末の中から特定の相手を見つけ出し、確実にデータを届けることが可能になります。
イーサネットフレームの全体構造
イーサネットでやり取りされるデータの塊を「イーサネットフレーム」と呼びます。
フレームは、大きく分けて「プリアンブル」「ヘッダ」「データ(ペイロード)」「FCS(トレーラ)」の4つの要素で構成されています。
一般的に「イーサネットヘッダ」と呼ぶ場合は、宛先MACアドレス、送信元MACアドレス、タイプ(または長さ)の3つのフィールドを指すことが多いです。
まずは、フレーム全体の構成を以下の表にまとめました。
| フィールド名 | サイズ(バイト) | 役割 |
|---|---|---|
| プリアンブル (Preamble) | 7バイト | 通信の同期を取るための信号 |
| SFD (Start Frame Delimiter) | 1バイト | フレームの開始を知らせる区切り |
| 宛先MACアドレス | 6バイト | データの受け取り手の物理アドレス |
| 送信元MACアドレス | 6バイト | データの送り主の物理アドレス |
| タイプ (EtherType) | 2バイト | 上位プロトコル(IPv4, IPv6等)の識別 |
| データ (Data / Payload) | 46~1500バイト | 実際に送るデータの中身(IPパケット等) |
| FCS (Frame Check Sequence) | 4バイト | データの破損をチェックするためのエラー検知用 |
このように、一つのフレームを構成するために細かく役割が分かれています。
次に、各フィールドの詳細な役割について掘り下げていきましょう。
各フィールドの詳細解説
プリアンブルとSFD:通信の「合図」
プリアンブル(Preamble)は、データの送信が始まることを受信側に知らせ、通信のタイミングを同期させるための特別なビットパターンです。
「10101010」というパターンが7バイト分続き、これを受け取った受信機は「これからデータが来るぞ」と準備を整えます。
プリアンブルの直後にある1バイトの信号がSFD(Start Frame Delimiter)です。
SFDは「10101011」という値を持っており、最後のビットが「1」になることで、次から実際のヘッダ情報が始まることを宣言します。
厳密にはこれらは物理層の信号の一部として扱われることもありますが、フレームの開始を知る上で不可欠な要素です。
宛先MACアドレス:データの届け先
イーサネットヘッダの最初にある重要な情報が「宛先MACアドレス(Destination MAC Address)」です。
MACアドレスは、ネットワークカードなどの通信機器に書き込まれた世界で唯一の識別番号であり、48ビット(6バイト)で構成されています。
スイッチングハブは、この宛先MACアドレスを見て、どのポートにデータを転送すべきかを判断します。
もし宛先が自分ではないMACアドレスだった場合、通常のコンピュータはそのフレームを破棄します。
また、特定の1台ではなくネットワーク内の全員に送る「ブロードキャスト」の場合は、すべてのビットが1であるFF:FF:FF:FF:FF:FFが指定されます。
送信元MACアドレス:データの送り主
宛先MACアドレスの次には、送信元MACアドレス(Source MAC Address)が続きます。
これは文字通り、そのフレームを送信した機器の物理アドレスを指します。
受信側はこの情報を確認することで、どの機器からデータが送られてきたのかを知ることができます。
また、ネットワークスイッチはこの送信元MACアドレスを学習し、どのポートにどのMACアドレスを持つ機器が繋がっているかを「MACアドレステーブル」として記録します。
この学習機能のおかげで、次回の通信からは効率的なデータ転送が可能になります。
タイプフィールド(EtherType):上位層の橋渡し
タイプフィールド(Type)は、データ部分に含まれるプロトコルの種類を指定する2バイトの情報です。
イーサネットは、その上の階層であるネットワーク層(レイヤー3)で使われるプロトコルを選びません。
そのため、受け取ったデータを次にどのプロトコル処理に渡すべきかを判断するための「ラベル」が必要になります。
代表的なタイプ値には以下のようなものがあります。
0x0800:IPv4 (Internet Protocol version 4)0x86DD:IPv6 (Internet Protocol version 6)0x0806:ARP (Address Resolution Protocol)
このように、0xから始まる16進数で定義されており、これによってコンピューターは受け取ったデータがIPパケットなのか、それとも別の何かなのかを瞬時に識別できます。
データ(ペイロード):情報の本体
ヘッダの次に来るのが、実際に送信したいデータ本体である「データフィールド(Payload)」です。
ここにはIPヘッダやTCPヘッダ、そして実際のアプリケーションデータなどが格納されます。
イーサネットフレームにおけるデータサイズには制約があり、通常は46バイトから1500バイトの間でなければなりません。
もしデータが46バイトに満たない場合は、パディング(Padding)と呼ばれる無意味なデータを追加してサイズを調整します。
この最大値である1500バイトのことを「MTU (Maximum Transmission Unit)」と呼びます。
FCS:エラーの有無を確認する
フレームの最後尾に付けられるのがFCS(Frame Check Sequence)です。
これは「トレーラ」とも呼ばれ、通信途中でデータの内容が壊れていないかをチェックするために使用されます。
送信側は、フレーム内のデータをもとに計算した値をFCSとして付与します。
受信側も同じ計算を行い、届いたFCSの値と比較することで、1ビットの誤りも許さない厳密なエラーチェックを行います。
もし計算結果が一致しなかった場合、そのフレームは壊れたものとして破棄されます。
イーサネット規格による違い:DIX仕様とIEEE 802.3
現在一般的に使われているイーサネットには、実は2つの微細な規格の違いが存在します。
一つは、ゼロックス社などが開発した「DIX仕様(イーサネットII)」で、もう一つは国際標準化団体が策定した「IEEE 802.3」です。
現代のインターネット(TCP/IP)環境で主に使用されているのはDIX仕様(イーサネットII)の方です。
IEEE 802.3では、前述した「タイプ」のフィールドが「長さ(Length)」として定義されています。
ただし、どちらの規格であっても、値が1536(0x0600)以上であれば「タイプ」、それ未満であれば「長さ」として解釈するというルールがあるため、同じネットワーク内で混在していても基本的には問題なく通信できるよう設計されています。
VLANタグが付与されたイーサネットヘッダ
企業ネットワークなどでよく使われる「VLAN(Virtual LAN)」を利用する場合、イーサネットヘッダに特別な情報が追加されます。
これを「VLANタグ(IEEE 802.1Q)」と呼び、送信元MACアドレスとタイプフィールドの間に4バイト分挿入されます。
このタグには「VLAN ID」と呼ばれる識別番号が含まれており、一つの物理的なスイッチの中で仮想的にネットワークを分割するために使われます。
VLANタグが追加されると、フレーム全体の最大サイズも4バイト分拡張されます。
ネットワークエンジニアを目指す方は、このタグ付きフレームの構造も理解しておくことが重要です。
イーサネットヘッダを確認する方法
実際にイーサネットヘッダの中身を見てみたい場合、パケットキャプチャツールを使用するのが最適です。
代表的なツールである「Wireshark」を使用すれば、自分のパソコンが送受信しているリアルタイムのフレームを解析できます。
解析画面では、宛先MACアドレスや送信元MACアドレス、タイプ値などが階層構造でわかりやすく表示されます。
理論として学ぶだけでなく、実際のデータを可視化してみることで、イーサネットヘッダの重要性をより深く実感できるでしょう。
Frame 1: 64 bytes on wire (512 bits)
Ethernet II, Src: Apple_a1:b2:c3 (a1:b2:c3:d4:e5:f6), Dst: Google_f1:e2:d3 (f1:e2:d3:c4:b5:a6)
Destination: Google_f1:e2:d3 (f1:e2:d3:c4:b5:a6)
Source: Apple_a1:b2:c3 (a1:b2:c3:d4:e5:f6)
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.1.10, Dst: 8.8.8.8
上記はキャプチャデータの例ですが、このようにEthernet IIとしてヘッダ情報が抽出されます。
イーサネットヘッダを学ぶ重要性
なぜエンジニアにとって、イーサネットヘッダの構造を知ることが重要なのでしょうか。
それは、トラブルシューティングの際に「どこで問題が起きているか」を切り分けるために不可欠な知識だからです。
例えば、IPアドレスは合っているのに通信ができない場合、MACアドレスの解決(ARP)に失敗している可能性があります。
また、ネットワークの遅延や切断が頻発する場合、FCSのエラーが多発してフレームが破棄されているかもしれません。
物理的な結線からアプリケーションの動作まで、ネットワークは多層的な構造で成り立っています。
その基盤となる第2層のヘッダ構造を理解していることは、高度なネットワーク運用や設計を行うための第一歩となります。
まとめ
イーサネットヘッダは、ネットワーク通信における「運送の指示書」とも言える極めて重要な要素です。
宛先と送信元のMACアドレスを指定し、上位プロトコルの種類を伝え、データの整合性をチェックするという、シンプルながらも完璧な役割分担がなされています。
普段私たちが何気なく利用しているWi-Fiや有線LANの裏側では、これらのフィールドが瞬時に読み取られ、適切な宛先へとデータが運ばれています。
MACアドレス、EtherType、そしてFCSといった用語を正しく理解することで、ネットワーク全体の仕組みがより鮮明に見えてくるはずです。
今回の解説をきっかけに、ぜひ実際のネットワークトラフィックを観察し、イーサネットヘッダの働きを体感してみてください。
