第7回 イーサネット(その2) - イーサネットのフレーム構造:詳説 TCP/IPプロトコル(1/3 ページ)
TCP/IPとともに広く普及したイーサネット。今回は、イーサネットのフレーム構造とMACアドレスについて解説。
IEEE 802では、データリンク層を、上位のLLC(論理リンク制御)副層と下位のMAC(メディアアクセス制御)副層に分けており、このうちイーサネットの規格に含まれるのがMAC副層である。今回は、そのMAC副層で送受信されるイーサネットのフレームの構造について見てみることにする。まずはMACアドレスについて解説し、その後フレームの構造を説明する。
MACアドレス
ネットワークに接続されているステーションを特定するために使うのが「MACアドレス(Media Access Control address)」で、「イーサネット・アドレス」や「物理アドレス」、「ハードウェア・アドレス」などとも呼ばれている。MACアドレスは、イーサネット・インターフェイスごとに割り当てられている番号で、1つのステーション(マシン)が複数のイーサネット・インターフェイスを持つ場合は、それぞれのインターフェイスごとに異なるMACアドレスが割り当てられている。イーサネット・アドレスは、もともとのDIX規格では48bit長として定義されていたが、IEEE 802.3では、48bit長のほかに16bit長の短い形式も定義していた。しかし現在では48bit長のアドレスのみが利用されている。MACアドレスは「12:34:56:78:9A:BC」または「12-34-56-78-9A-BC」というふうに、各オクテットを「:(コロン)」または「-(ハイフン)」で区切った16進数で表記するのが一般的である。
MACアドレスには「ユニキャスト・アドレス」と「マルチキャスト・アドレス」という2つの種類がある。ユニキャスト・アドレスはただ1つの宛先を表し、マルチキャスト・アドレスはグループ分けされた複数の宛先を表す。さらにマルチキャスト・アドレスの特別なタイプとして、すべてのビットが1になっている「ブロードキャスト アドレス」がある、これはネットワーク(イーサネット・フレームが到達できる範囲、以降「ネットワーク」はこの意味で使う)上のすべてのステーション宛であることを表す、特別なアドレスである。ユニキャスト・アドレスとマルチキャスト・アドレスは、MACアドレスを伝送するときの先頭のビット(第1ビット)である「I/Gビット」で判断する。I/Gビットの値が0であればユニキャスト・アドレス、1であればマルチキャスト・アドレスである。なおイーサネットでは(イーサネットに限らず、一般的なパラレル→シリアル伝送でも同様であるが)オクテット内のビットの伝送はLSB(Least Significant Bit:最下位ビット)からMSB(Most Significant Bit:最上位ビット)の順に行われる。そのため、I/Gビットは第1オクテットのLSBということになる。
MACアドレスのフォーマット
MACアドレスは、48bit(6オクテット)から構成されており、最初の3オクテットはOUIと呼ばれ、最後の3オクテットは各ベンダが管理する番号になっている。各オクテットを伝送する場合は、それぞれの最下位bitから順番に送信されるので、最初のビットは、第1オクテットの最下位ビット(「I/G」ビット)となる。「I/G」は802.3用語で「Individual Address(個別アドレス)/Group Address(グループ・アドレス)」の略。「G/L」はGlobalとLocalの略。I/Gが0なら個々のステーション宛、1なら複数のステーション宛であることを表す。すべて1ならば「ブロードキャスト・アドレス」となり、すべてのステーション宛になる。
ユニキャスト・アドレスにはさらに「グローバル・アドレス」と「ローカル・アドレス」という2つの分類がある。グローバル・アドレスとローカル・アドレスはMACアドレスを伝送するときの第2ビット(2番目に伝送されるビット)である「G/Lビット」の値で判断する。G/Lビットが0であればグローバル・アドレス、1であればローカル・アドレスである。
イーサネットはネットワーク上に同じMACアドレスを持つステーションが存在しないことを前提に設計されているため、MACアドレスは重複が起きないようにIEEEとベンダによって管理されている。MACアドレスの最初の24bitはOUI(Organizationally Unique Identifier)と呼ばれる、IEEEが管理するベンダごとの固有のコードで、「ベンダ・コード」とも呼ばれる。イーサネット・インターフェイスを販売するためには、IEEEに申請して自社のOUIを取得する必要がある。そしてMACアドレスの残りの24ビットを各ベンダが管理し、OUIと組み合わせて各インターフェイスごとにユニークなMACアドレスを割り振る。これがグローバル・アドレスである。
MACアドレスはイーサネット・インターフェイス上のEEPROMなどに書き込まれていて、通常書き換えはできないようになっているが、製品によってはMACアドレスを変更できるものがある。しかし、MACアドレスはテストやデバッグのために変更することはあっても、通常の使用では変更すべきではない。
ローカル・アドレスは、適当なアドレスをユーザーが割り当てて使う場合に使用するアドレスであるが、通常は使用しない。初期のイーサネット・カードでは、ローカル・アドレスをユーザーが割り当てて使うようになっていたものがあったが、MACアドレスの衝突などのトラブルが多発していた。そのため、現在ではそのようなネットワーク・カードは販売されていない。
ネットワークカード上のEEPROM
イーサネット・カードには、このようなEEPROMチップが載っており、ここにMACアドレス情報が書き込まれている。システムは起動時にここからMACアドレスを読み出してネットワーク制御チップ内にあるアドレス設定レジスタに書き込む。ネットワーク制御チップは、ネットワーク・ケーブル上のフレームを取り込んだ際に、宛先アドレスが、その設定されたアドレスと一致するかどうかを調べ、一致していればそのフレーム全体をキャプチャする。
(1)MACアドレスを設定するためのメモリ・チップ。これは128bytes(1Kbit)の容量を持つシリアルEEPROM(シリアル・インターフェイスを用いてデータの入出力を行う、小型のEEPROM)。
Copyright© Digital Advantage Corp. All Rights Reserved.