イーサネットフレームフォーマット
イーサネットフレームのフォーマットの基礎について理解することは、
イーサネットテクノロジーについて議論するための必須事項です。
このページでは、以下のことについて説明します。
イーサネットの世界で使われる 4つのフレームフォーマット
イーサネットフレームのそれぞれのフィールドの目的
イーサネットフレームフォーマットがたくさんある理由
イーサネット、イーサネット、イーサネット、イーサネット !?
もし誰かが、「うちのネットワークはイーサネットなんだよ」と言ったとしたら、わたしは当然「どのイーサネット?」と聞くことでしょう。
現在、商業ベースイーサネットのフレームフォーマットには多種多様なものがあります。
すべてが少しずつ違っており、お互いに互換性があるとは限りません。
現在商業ベースのイーサネットフレームに様々なフォーマットがあるのは、イーサネットの歴史によります。
1972 年、オリジナルバージョンであるイーサネットバージョン1は、ゼロックスのパロアルト研究所で研究が始められました。
バージョン1は 1980 年に、DEC、Intel、Xerox の三社によってリリースされました。
同じ年に IEEE によるイーサネットのミーティングが始まりました。
1982 年に DIX( DEC、Intel、Xerox )はバージョン2のイーサネットをリリースしました。
以降、商業ベースではほとんどのバージョン1がバージョン2と置き換わりました。
1983 年、802.3 の予備リリースをベースとしたフォーマットをノベル NetWare '86 がリリースしました。
2年後、802.3 の最後のバージョンが発表され、802.2 の LLC ヘッダを含む形で修正され、NetWare のフォーマットと互換性がなくなりました。
最終的に、バージョン2と 802.3 との互換性を得るために 802.3 SNAP フォーマットが作られれました。
ここで見てきたように、イーサネットの世界に関わるいろいろな人が、いろんいろな異なった選択を行いました。
結果はこういうことです。特別なドライバは特別なフォーマットをサポートしている。またはしていない。
ノベルのステーションはいつも決まってどのフレームフォーマットもサポートしています。
一方、TCP/IP のステーションは一つしかサポートしていません。
しかし、ネットワーキングにおいては、難しい、はっきりとしたルールはないのです。
イーサネットフレームフォーマット
以下は異なったイーサネットフレームのフィールドの詳細な説明です。
フィールドの説明については「オフセット」ということばを使います。
オフセットというのは、フレームの最初(ゼロ)から数えて何バイト目であるかということです。
つまり、「宛先アドレスはオフセットゼロから5までです」というのは、宛先アドレスがフレームの最初の6バイトにあることを指しています。
プリアンブル
どのタイプのイーサネットフレームが使われようとも、
イーサネットネットワークのデジタル信号の符号化方式は同じです。
このページではマンチェスタ符号化方式の説明は範囲外ですが、次の説明で十分でしょう。
イーサネットネットワークの空き状態とは、信号のない状態のことです。
それぞれのステーションは自分の発振クロックを持っているので、
通信動作中のステーションは自らのクロックを何らかの方法で同期させなければなりません。
つまりそれは、1ビット分の時間がどれだけかを知ることです。
プリアンブルはこれを促進する役割を果たします。
プリアンブルは、「0」と「1」とが交互に現れる8バイトのパターンからなり、「11」で終了します。
イーサネットネットワーク上のステーションは、
他のステーションが通信を開始するときに起こる電圧の変化を検出し、
送信ステーションのクロック信号を「自動追跡」するためにプリアンブルを使います。
ステーションが「自動追跡」を行うためには、ある一定の時間がかかるので、
ステーションは何ビット分のプリアンブルが失われたのかを知ることはありません。
同期をとっている最中にプリアンブルが無くなるというのは、このことを指します。
この場合、プリアンブルがアダプタのメモリバッファに入ることは全くありません。
いったん自動追跡が始まったら、受信ステーションはイーサネットフレームが後に続く印である「11」を待ちます。
現在のほとんどのイーサネットアダプタは 14 ビット時間内で自動追跡ができることを保証しています。
イーサネットの異なる「味」
プリアンブルはイーサネットに共通のものですが、その後に続くパターンはそうではありません。
主要なイーサネットは以下の通りです。
ノベルによる 802.2 フレームは IEEE802.3 を参照しています。
"802.3 Raw" はノベルの独自フォーマットです。