イーサネットフレームとは何か
イーサネットフレームとは、LANの中でコンピュータ同士がやり取りする際に使われる「データの入れ物」のようなものです。インターネットで使う言葉では「パケット」と呼ばれますが、イーサネットでは「フレーム」という呼び方をします。
フレームにはいくつかの種類がありますが、特に重要なのが EthernetⅡフレーム(DIX仕様) と IEEE802.3フレーム です。今日最も広く使われているのは EthernetⅡフレームで、一般的に「イーサネットフレーム」と言えばこちらを指します。TCP/IPの通信ではほぼ必ず EthernetⅡ が使われますが、古い環境(Netware や NetBIOS)では IEEE802.3 が登場することもあります。
フレームの構造
フレームは、手紙の封筒のようにいくつかの「欄」で構成されています。それぞれの欄には、誰宛てなのか、誰から送られたのか、どんな内容が入っているのかといった情報が書き込まれます。
| フィールド | 説明 |
|---|---|
| プリアンブル | フレームの始まりを知らせるビット列。IEEE802.3では7バイトがプリアンブル、最後の1バイトがSFD。通信のタイミングを合わせる役割がある。 |
| 宛先MACアドレス | 送り先のコンピュータのMACアドレスが入る。ユニキャスト(1対1)、マルチキャスト(グループ宛)、ブロードキャスト(全員宛)がここで判別される。 |
| 送信元MACアドレス | 送信したコンピュータのNICのMACアドレス。 |
| タイプ/長さ | EthernetⅡでは「タイプ」として上位層のプロトコルを識別(例: 0x0800=IPv4、0x0806=ARP)。IEEE802.3では「長さ」を示す。 |
| データ | 実際の中身。46バイト以上1500バイト以下でなければならない。短い場合は「パディング」と呼ばれる0を追加する。 |
| FCS | 受信データに誤りがないかをチェックするための領域。CRCという計算値が入る。 |
ここで試験に出やすいのは 最小64バイト・最大1518バイト というフレームサイズの規則です。もし64バイトに満たないと、衝突検出の仕組みが正しく働かないため、必ずパディングで調整されます。
タイプフィールドの代表例
タイプフィールドは「このフレームの中身は何の通信か」を知らせる大事な欄です。特に以下の値は試験で覚えておく必要があります。
| タイプコード | プロトコル |
|---|---|
| 0x0800 | IPv4 |
| 0x0806 | ARP |
| 0x86dd | IPv6 |
| 0x8100 | VLAN(IEEE802.1Q) |
| 0x8137 | IPX |
IPv4(0x0800)、ARP(0x0806)、IPv6(0x86dd)は必ず覚えておきましょう。
MACアドレスとは
MACアドレスは、イーサネット機器に割り当てられた世界に一つだけの番号で、まるで「機器の指紋」のようなものです。PCのLANカード、スイッチ、ルータのポートなど、それぞれのネットワーク機器が持っています。
MACアドレスは48ビット(6バイト)でできており、16進数で表されます。例えば「00-17-94-xx-xx-xx」のように書かれ、上位24ビットはメーカーを示す ベンダーコード(OUI)、下位24ビットはメーカーが個別に割り当てる番号です。
例えば「00-17-94」を調べると Cisco Systems だと分かるように、OUIをたどることで機器のメーカーを特定できます。大企業は複数のOUIを持っているのが一般的です。
U/LビットとI/Gビット
MACアドレスの最初のバイトには特別な意味を持つビットがあります。
- U/Lビット(7ビット目)
0 の場合は「世界共通(グローバル)」、1 の場合は「ローカル(管理者が独自に設定可能)」を示します。通常は 0 です。 - I/Gビット(8ビット目)
0 の場合は「ユニキャスト(1対1の通信)」、1 の場合は「マルチキャストまたはブロードキャスト(1対多の通信)」を示します。
特に「FFFF.FFFF.FFFF」は全てのビットが1で、ブロードキャストアドレスとして使われます。また「0100.5E」で始まるアドレスはマルチキャスト用です。
この仕組みを覚えておくと、試験で「このMACアドレスはどんな通信を表しているか」と問われたときにスムーズに判断できます。