MACアドレス
イーサネットは、イーサネットインタフェース間でデータを転送します。データを転送するには、転送先のイーサネットインタフェースを特定しなければなりません。特定する手段として、イーサネットインタフェースごとに割り当てられているのがMACアドレスです。
MACアドレスは48ビットの長さを持ち、先頭24ビットはOUI(Organizationally Unique Identifier)、その後の24ビットがシリアル番号という構成です。OUIはイーサネットインタフェースを製造しているベンダ(メーカ)の識別コードです。こちらの資料にまとめられています。一方、シリアル番号は、各ベンダが独自に割り当てています。
MACアドレスはイーサネットインタフェースに書き込まれており、基本的に変更できません[7]。そのため、MACアドレスのことを「物理アドレス」や「ハードウェアアドレス」と呼ぶこともあります。
MACアドレスは16進数で表記します。16進数なので「0」~「9」および「a」~「f」の組み合わせです。表記のパターンは1つでなく次のようにいろいろあって、少し紛らわしいです。
- 1バイトずつ16進数に変換して「:」で区切る
- 1バイトずつ16進数に変換して「-」で区切る
- 2バイトずつ16進数に変換して「.」で区切る
ちなみにシスコシステムズの機器では、2バイトずつ16進数に変換して「.」で区切る表記がよく利用されています。
イーサネットでは、データを転送したいイーサネットインタフェースをMACアドレスによって識別しているということをしっかりと押さえておきましょう。そして、MACアドレスは、この後に解説するイーサネットヘッダに記述されます。
注
[7]: MACアドレスを変更できるイーサネットインタフェースもあります。
イーサネットのフレームフォーマット
イーサネットでデータを転送するときには、イーサネットヘッダを付加します。また、データのエラーチェックのためにFCS(Frame Check Sequence)も付加します。イーサネットヘッダ、データ、FCSの全体をひっくるめてイーサネットフレームと呼びます。
図6はイーサネットのフレームフォーマット(イーサネットフレームのフォーマット)です[8]。
イーサネットヘッダは宛先MACアドレス、送信元MACアドレス、タイプコードから構成されます。レイヤ2スイッチは、イーサネットヘッダの宛先MACアドレスや送信元MACアドレスを参照して、イーサネットフレームの転送処理を行っています。タイプコードは、イーサネットの上位プロトコルを表す数値でIPv4であれば0x0800です。
データには、IPパケット(本連載の第2回を参照)が入ります。データ部分の最大サイズはMTU(Maximum Transmission Unit)と呼ばれ、イーサネットフレームでは1500バイトがデフォルトです。1つのイーサネットフレームでは1500バイト分のデータしか転送できないので、大きなサイズのデータは複数に分割しなければいけません[9]。なお、データ部分の最小サイズも決められています。データ部分の最小サイズは46バイトです。
注
[8]: 図6に挙げたのは最も一般的なフレームフォーマット(イーサネットver2)です。イーサネットのフレームフォーマットは、他にも3種類あります。
[9]: データの分割はたいていの場合、TCP/IPのトランスポート層プロトコルであるTCPで行います。