【図解】Ethernetの仕組み〜LANとの違い, MACアドレスの構成, フレーム構造やタイプについて〜

Ethernet とは

Ethernet とは現在の代表的なレイヤー 2 の通信プロトコルです。Ethernetの通信データ単位は"フレーム"と呼ぶことが多く、ここでもそれに倣うことにします。

Ethernet は LAN (Local Area Network: ローカルエリアネットワーク)の一種です(LANはWindowsではローカルエリア接続とも呼ばれています)。LANとは家の中や社内等の近距離を繋ぐネットワークを意味します。LAN の対義語は WAN ( Wide Area Network )で、主にプロバイダへ接続するための回線 ( ONU 以降)を意味します。

ですがともに L2 通信のことを意味することもあり、特に LAN 用の L2 通信は今は Ethernet が主流であるため、LAN = Ethernet と解釈されることも多いです。

レイヤー2 (L2) 通信の役割

L2 通信の役割は、『通信主体の L3 通信( IP 等)を届ける物理ケーブルに対し、物理的な電気信号を論理的な 0/1 ビットに解釈するための決まり事を提供する』ことであったり、『その L2 通信を行う範囲でのローカルな宛先を決める』ことです。

今でこそ L2 通信プロトコルのデファクトスタンダードは Ethernet であり、若い世代の人はむしろ他の L2 通信の実装を見たことが無いのが多数派でしょう。ですが昔使われていた L2 通信プロトコルの例として PPP や Frame-relay、トークンリング、FDDI 等があります。

IP パケットはケーブル媒体が変わるたびにプロトコルが変わりますが、L2 通信の宛先/送信元アドレスが変わっても、通信主体の L3 通信 (IP) の宛先/送信元アドレスは変わりません。下図にその例を示します。

Ethernet のフレームフォーマット

下記にEthernetのフレームのフォーマットを示します。

プリアンブル

クロック同期用で、開始タイミングを知らせるのと、受信端末がビット判断のタイミングを合わせるためにあります。

MACアドレス

Ethernet(LAN)インタフェース(NIC)に振られている、(基本的に)世界唯一の識別番号で、6Byteで表現されます。宛先MACアドレスはL2上でのデータを送信したいNICの住所で、送信元MACアドレスは送信したNICの住所です。ただし、OSレベルで設定変更も可能=詐称も可能です。

タイプ(Type)/長さ(Length)

0-1500(Ox0000-05DC)の場合は長さ、それ以外はタイプとして認識されます。現在の通信のほとんどはタイプが使われます。CDPなど一部特殊なもののみ、長さが使われます。

データ

伝送する内容が格納されます。IP パケットARP が格納されることがほとんどです。

FCS

Frame Check Sequence の略で、フレームをチェックし破損していた場合は破棄する仕組みを持っています。 Ethernet では破棄されたフレームを再送する仕組みはありません(コリジョン検知の場合は再送しますが)ので、 TCP などの上位プロトコルにより再送をする必要があります。

MAC アドレスについて

MAC アドレスの構成をもう少し細かく見ていきます。

上位 3 Byte (24bit) OUI ( Organizationally Unique Identifier )と呼ばれ、IEEE が管理しています。後述の通り、この OUI からその機器を作ったメーカが分かります。例えば "00-00-0C" であれば Cisco 製だと分かります( Cisco はこれ以外にも OUI を持っています)。

OUI の bit の意味は以下のように定められています。なお、Ethernet 通信は 1 Byte 毎に、後ろから 1 bit ずつ送られますので、1 bit 目は 10 進数の 1 を表す bit、8 bit 目は 10 進数の 128 を表す bit になります。

1 bit 目: Individual/Group bit

0 ならばユニキャスト(個別)、1 ならばマルチキャスト(グループ)、もしくはブロードキャスト

2 bit 目: Universal/Local bit

0 ならば世界唯一性を保証しなければならない、1 ならば保証されなくてよい

3 - 24 bit 目: ベンダーコード

ベンダー企業を表す (Cisco や Xerox 等)。

OUI がどの企業に割り当てられているかは、 IEEE.org のこのページで見ることができます。

下位の 3 Byte は各ベンダーが管理し、NW 機器の Ethernet (LAN) インタフェース(NIC)に割り当てる仕組みになっています。

上位 3 Byte (OUI)
下位 3 Byte
管理組織IEEE各ベンダー
内容I/G
bit
U/L
bit
ベンダー識別子ベンダー内管理番号
ビット数1 bit1 bit22 bit24 bit

タイプについて

タイプフィールドに入る代表的なプロトコルを以下に示します。

タイプ番号
プロトコル
Ox0000 - 05DCLength
Ox0800IPv4
Ox0806ARP
Ox0842Wake on LAN
Ox8100IEEE802.1q
Ox86DDIPv6
Ox8808Flow Control (802.3X PAUSE)
Ox8809Slow Protocol (LACP, EFM OAM)
Ox8847MPLS-IPv4 unicast
Ox8848MPLS-IPv4 multicast
Ox8863PPPoE Discovery Stage
Ox8864PPPoE Session Stage
Ox888EEAP over LAN (IEEE802.1x)
Ox88A8IEEE802.1ad (Q-in-Q) / IEEE802.1aq (SPB)
Ox88CCLLDP
Ox88E7IEEE802.1ah (PBB)
Ox8902CFM (L2ping/L2traceroute)

ちなみに、cisco の CDP や VTP は タイプ/長さの Field は 長さが入るほうで、LLC ヘッダがつきます。例えば CDP の LCC ヘッダは以下の通りです。

DSAP : Oxaa (SNAP)
SSAP : Oxaa (SNAP)
制御部 : Ox03 (Unnumbered frame)
OUI : Ox00000c (Cisco)
PID : Ox2000 (CDP)

フォローする