DIX 規格とは
DIX 規格とは、現在最も使用されているイーサーネットフレームである。(Ethernet II フレーム)
インターネットで利用するホストについて定義されている RFC 1122 では DIX 規格への適合が必須とされていることより、TCP/IP 通信では DIX 規格が利用されている。
加えて、フロー制御やリンクアグリゲーションの制御用フレームにも DIX 規格が使用されている。
他には IEEE802.3 フレームが存在する。
DIX 規格のフレームフォーマット
以下に DIX 規格のフレームフォーマットを示す。
プリアンブル
フレームを受信するステーションが、送信ステーション側のクロック周波数と同期をとることができるようにするため、プリアンブルを先頭に付加する。
プリアンブルのデータ長は 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 を用いて誤りを検出し、正常であれば上位層にデータを渡す。
誤りがある場合はフレームを破棄し、再送要求は行わない。