DIX 規格のフレームフォーマット

July 10, 2018

DIX 規格とは

DIX 規格とは、現在最も使用されているイーサーネットフレームである。(Ethernet II フレーム)
インターネットで利用するホストについて定義されている RFC 1122 では DIX 規格への適合が必須とされていることより、TCP/IP 通信では DIX 規格が利用されている。
加えて、フロー制御やリンクアグリゲーションの制御用フレームにも DIX 規格が使用されている。
他には IEEE802.3 フレームが存在する。

DIX 規格のフレームフォーマット

以下に DIX 規格のフレームフォーマットを示す。

f:id:shiro_kochi:2018××××××××:plain:w100:left

プリアンブル

フレームを受信するステーションが、送信ステーション側のクロック周波数と同期をとることができるようにするため、プリアンブルを先頭に付加する。
プリアンブルのデータ長は 64 bit で、その中身は「 AA-AA-AA-AA-AA-AA-AA-AB 」である。つまり 2 進表記で 101010…11 という形となっている。
最後の 11 がプリアンブルの切れ目を表しており、SFD (Start Frame Delimiter) と呼ばれている。

宛先/送信元 MAC アドレス

MAC アドレスはステーションを識別するアドレスであり、イーサネットアドレスもしくはステーションアドレスと呼ばれ、 バイトで構成される。
前半の 3 バイトは OUI (Organizationally Unique Identifier) と言われ、組織に固有の ID であり、IEEE によって管理されている。(IANA は 00-00-5E など)
後半の 3 バイトはイーサネットインターフェイスごとに固有な番号がベンダによって割り振られる。
さらに上位 1 ビット目の I/G (Indivisual/Group) ビット、上位 2 ビット目の G/L (Global/Local) ビット、上位 25 ビット目の I ビットが規格化されている。

0 のとき 1 のとき
I/G ビット 単独のステーションアドレス マルチキャストアドレス
G/L ビット グローバル (IEEE 管理) ローカル
I ビット インターネット/マルチキャスト それ以外

全てのビットを 1 にセットした FF-FF-FF-FF-FF-FF はブロードキャストアドレスで、全てのイーサーネットインターフェースに送信するときに用いられる。

宛先がマルチキャスト IPv4 アドレスの場合、宛先 MAC アドレスの上位 3 バイトは IANA の OUI を指定した上で、I/G ビットを 1 に、G/L ビットを 0 、また I ビットを 0 にセットする。
宛先がアルチキャスト IPv6 の場合、宛先 MAC アドレスの上位 2 バイトは 33-33 を指定し、下位 4 バイトは IPv6 アドレスの下位 4 バイトをそのまま埋め込む。

イーサネットではバイト内のビット転送は LSB (Least Significant Bit) から MSB (Most Significant Bit) の順に行われる。よって、第一バイトの LSB である I/G ビットから伝送がされることになる。

タイプ

タイプ領域は、上層位のプロトコル種別を表している。
代表例は以下。

タイプ (16 進数表記) 意味
0x0000 ~ 05DC IEEE802.3 規格のデータ長 (DIX 規格では未使用)
0x05DD ~ 05FF 未使用
0x0800 IPv4
0x86DD IPv6
0x0806 ARP
0x8035 RARP
0x8100 IEEE802.1Q (VLAN)
0x8808 IEEE802.3x (フロー制御)
0x8809 IEEE802.3ad (リングアグリゲーション)
0x8137 PPPoE Discovery Stage
0x8864 PPPoE Session Stage

FCS

FCS (Frame Check Sequence) は、宛先 MAC アドレスからデータ領域までのビット列に基づいて生成される、誤り検出用のデータとなる。
このデータには 32 ビットの CRC (巡回冗長検査) が用いられ、受信ステーションは FCS を用いて誤りを検出し、正常であれば上位層にデータを渡す。
誤りがある場合はフレームを破棄し、再送要求は行わない。


 © 2023, Dealing with Ambiguity