【図解】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アドレスの構成をもう少し細かく見ていきます。

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

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

1bit目: Individual/Group bit

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

2bit目: Universal/Local bit

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

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

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

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

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

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

タイプについて

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

タイプ番号
プロトコル
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)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする