
コンピュータネットワークにおいて、イーサネットフレームはデータリンク層プロトコルのデータユニットであり、基盤となるイーサネット物理層の伝送メカニズムを使用します。言い換えれば、イーサネットリンク上のデータユニットは、ペイロードとしてイーサネットフレームを伝送します。[ 2 ]
イーサネットフレームは、プリアンブルとスタートフレームデリミタ(SFD)によって始まります。これらはどちらも物理層のイーサネットパケットの一部です。各イーサネットフレームはイーサネットヘッダーで始まり、その最初の2つのフィールドには宛先MACアドレスと送信元MACアドレスが含まれます。フレームの中央部分はペイロードデータで、フレーム内で伝送される他のプロトコル(例えば、インターネットプロトコル)のヘッダーも含まれます。フレームはフレームチェックシーケンス(FCS)で終わります。FCSは、転送中のデータ破損を検出するために使用される32ビットの巡回冗長検査です。
回線上のデータパケットとそのペイロードであるフレームはバイナリデータで構成されます。イーサネットは最上位オクテット(バイト)から順にデータを送信しますが、各オクテット内では最下位ビットから先に送信されます。[ a ]
イーサネットフレームの内部構造は、IEEE 802.3 で規定されています。[ 2 ]下の表は、ペイロードサイズがMTU 1500 オクテットまでの場合の、送信された完全なイーサネットパケットと内部のフレームを示しています。[ b ]ギガビットイーサネットやその他の高速イーサネットのバリアントの実装の中には、ジャンボフレームと呼ばれるより大きなフレームをサポートするものがあります。
オプションの802.1Qタグは、フレーム内で追加のスペースを消費します。このオプションのフィールドサイズは、上記の表の括弧内に示されています。IEEE 802.1ad(Q-in-Q)では、各フレームに複数のタグを含めることができます。このオプションはここでは図示されていません。
イーサネットパケットは、7オクテット(56ビット)のプリアンブルと1オクテット(8ビット)のスタートフレームデリミタ(SFD)で始まります。[ d ]プリアンブルのビット値は1と0が交互に現れるため、受信側はビットレベルで送信側とクロックを同期させることができます。プリアンブルの後にはSFDが続き、SFDの末尾は0ではなく1で終わるため、プリアンブルのビットパターンが破られ、実際のフレームの開始が示されます。[ 1 ]:セクション4.2.5
イーサネットMACを物理媒体に接続するには、物理層トランシーバ回路(略してPHY)が必要です。PHYとMAC間の接続は物理媒体に依存せず、メディア非依存インターフェース(MII)ファミリ(GMII、RGMII、SGMII、XGMIIなど)のバスを使用します。プリアンブルとSFD表現はバスの幅に依存します。
SFDの直後には、イーサネットフレームの最初のフィールドである宛先MACアドレスが続きます。
ヘッダーには、宛先MACアドレスと送信元MACアドレス(それぞれ6オクテットの長さ)、EtherTypeフィールド、およびオプションでIEEE 802.1QタグまたはIEEE 802.1adタグが含まれます。
EtherTypeフィールドは2オクテットの長さで、2つの異なる目的で使用できます。1500以下の値はペイロードのサイズをオクテット単位で示すために使用され、1536以上の値はEtherTypeとして使用され、フレームのペイロードにカプセル化されているプロトコルを示すために使用されます。EtherTypeとして使用する場合、フレームの長さはパケット間ギャップと有効なフレームチェックシーケンス(FCS)の位置によって決まります。
IEEE 802.1QタグまたはIEEE 802.1adタグ(存在する場合)は、仮想 LAN (VLAN) メンバーシップとIEEE 802.1p優先度を示す 4 オクテットのフィールドです。タグの最初の 2 オクテットはタグ プロトコル識別子 (TPID) と呼ばれ、EtherType フィールドとしても機能し、フレームが 802.1Q または 802.1ad タグ付きであることを示します。802.1Q では TPID が 0x8100 になります。802.1ad では TPID が 0x88a8 になります。
ペイロードは可変長フィールドです。その最小サイズは、最小フレーム送信サイズが 64 オクテット (バイト) であるという要件によって決まります。[ e ]ヘッダーと FCS を考慮すると、802.1Q タグが存在する場合の最小ペイロードは 42 オクテット[ f ]、存在しない場合は 46 オクテットです。実際のペイロードが最小値より小さい場合は、それに応じてパディング オクテットが追加されます。IEEE 規格では、最大ペイロードは 1500 オクテットと規定されています。非標準のジャンボフレームを使用すると、それをサポートするように構築されたネットワークでより大きなペイロードが可能になります。
フレームチェックシーケンス(FCS)は、受信側で受信したフレーム全体における破損データの検出を可能にする4オクテットの巡回冗長検査(CRC)です。規格によれば、FCS値は、保護対象のMACフレームフィールド(送信元アドレス、宛先アドレス、長さ/タイプフィールド、ペイロードデータ、パディング(つまり、FCSを除くすべてのフィールド))の関数として計算されます。
標準によれば、この計算は左シフトCRC-32(多項式 = 0x04C11DB7、初期CRC = 0xFFFFFFFF、CRCは後補数、検証値 = 0x38FB2284)アルゴリズムを使用して行われます。標準では、データは最下位ビット(ビット0)から送信され、FCSは最上位ビット(ビット31)から送信されると規定されています。[ 1 ]:セクション3.2.9代替案として、右シフトCRC-32(多項式 = 0xEDB88320、初期CRC = 0xFFFFFFFF、CRCは後補数、検証値 = 0x2144DF1C)を使用してCRCを計算する方法があります。この場合、FCSのビット反転であるCRCが生成され、データとCRCの最下位ビットの両方が最初に送信されるため、送信は同一になります。
規格では、受信側はデータを受信するたびに新しい FCS を計算し、受信した FCS を受信側が計算した FCS と比較する必要があると規定されています。別の方法として、受信データと FCS の両方に対して CRC を計算する方法があり、その結果、固定の非ゼロの検証値が得られます。(CRC 生成時に CRC が後補数化されるため、結果は非ゼロになります)。データは最下位ビットから受信されるため、データのオクテットをバッファリングする必要がないように、受信側は通常、右シフト CRC-32 を使用します。これにより、検証値(マジックチェックと呼ばれることもあります)は 0x2144DF1C になります。[ 5 ]
ただし、論理的に右シフトするCRCのハードウェア実装では、CRCの計算の基準として左シフトする線形フィードバックシフトレジスタを使用し、ビットを反転させて検証値0x38FB2284を得る場合があります。CRCの補数は計算後、送信中に実行される可能性があるため、ハードウェアレジスタに残るのは補数化されていない結果です。したがって、右シフト実装の場合の剰余は0x2144DF1Cの補数0xDEBB20E3となり、左シフト実装の場合は0x38FB2284の補数0xC704DD7Bとなります。
フレームの終了( EOF) は通常、物理層でのデータストリーム終了シンボルまたは搬送波信号の消失によって示されます。例として10BASE-Tがあり、受信局は搬送波の消失によって送信されたフレームの終了を検出します。より新しい物理層では、特に搬送波がフレーム間で継続的に送信される場合に、曖昧さを避けるために明示的なデータ終了またはストリーム終了シンボルまたはシーケンスを使用します。例として、フレームの送信前と送信後に送信される特別なシンボルを使用する8b/10bエンコーディング方式のギガビットイーサネットがあります。[ 6 ] [ 7 ]
パケット間ギャップ(IPG)とは、パケット間のアイドル時間のことです。送信機は、パケット送信後、次のパケットを送信する前に、最低96ビット(12オクテット)のアイドル状態の回線状態を送信する必要があります。
イーサネットフレームにはいくつかの種類があります。
フレームの種類によってフォーマットやMTU値は異なりますが、同じ物理媒体上に共存できます。フレームの種類は、右側の表に基づいて区別できます。
さらに、4種類のイーサネットフレームすべてに、所属するVLANとその優先度(サービス品質)を識別するためのIEEE 802.1Qタグをオプションで付加することができます。このカプセル化はIEEE 802.3ac規格で定義されており、最大フレームサイズを4オクテット増加させます。
IEEE 802.1Q タグが存在する場合、送信元アドレスと EtherType または Length フィールドの間に配置されます。タグの最初の 2 オクテットは、タグ プロトコル識別子 (TPID) 値 0x8100 です。これは、タグなしフレームの EtherType/Length フィールドと同じ場所に配置されます。したがって、EtherType 値が 0x8100 の場合、フレームはタグ付きであり、実際の EtherType/Length は Q タグの後に配置されます。TPID の後には、タグ制御情報 (TCI) (IEEE 802.1p 優先度 (サービス品質) と VLAN ID) を含む 2 オクテットが続きます。Q タグの後には、上記で説明したいずれかのタイプを使用して、フレームの残りの部分が続きます。
Ethernet II フレーミング( DIX Ethernetとも呼ばれ、その設計に大きく関わったDEC、Intel、Xeroxにちなんで命名されました[ 8 ] ) ) は、宛先 MAC アドレスと送信元 MAC アドレスに続くEthernetフレーム内の2 オクテットのEtherTypeフィールドを定義し、フレーム データによってカプセル化された上位レイヤ プロトコルを識別します。特に、EtherType 値が 0x0800 の場合はフレームにIPv4データグラムが含まれていることを示し、0x0806 の場合はARPデータグラム、0x86DD の場合はIPv6データグラムが含まれていることを示します。詳しくは、 EtherType §値を参照してください。

この業界で開発された標準が正式なIEEE標準化プロセスを経るにつれて、EtherType フィールドは新しい 802.3 標準で (データ) 長さフィールドに変更されました。[ h ]受信側はフレームの解釈方法を知る必要があるため、標準では長さの後にタイプを指定するIEEE 802.2ヘッダーが必要でした。何年も後、802.3x-1997 標準、および 802.3 標準の後の版では、両方のタイプのフレーミングが正式に承認されました。イーサネット II フレーミングは、そのシンプルさと低いオーバーヘッドのため、イーサネット ローカル エリア ネットワークで最も一般的です。
イーサネット II フレーミングを使用するフレームと、オリジナルの 802.3 フレーミングを使用するフレームを同じイーサネット セグメントで使用できるようにするには、EtherType の値が 1536 (0x0600) 以上である必要があります。この値は、イーサネット 802.3 フレームのペイロード フィールドの最大長が 1500 オクテット (0x05DC) であるため選択されました。したがって、フィールドの値が 1536 以上であれば、そのフレームは Ethernet II フレームであり、そのフィールドはタイプ フィールドである必要があります。[ 9 ] 1500 以下であれば、そのフレームは IEEE 802.3 フレームであり、そのフィールドは長さフィールドである必要があります。1500 から 1536 の間の値 (排他的) は未定義です。[ 10 ]この規約により、ソフトウェアはフレームがイーサネット II フレームか IEEE 802.3 フレームかを判別でき、同じ物理媒体上で両方の規格が共存することが可能になります。
Novellの生の802.3フレームフォーマットは、初期のIEEE 802.3の取り組みに基づいていました。Novellはこれを出発点として、イーサネット上で独自のIPXネットワークプロトコルの最初の実装を作成しました。LLCヘッダーは使用せず、IPXパケットを長さフィールドの直後に開始しました。これはIEEE 802.3規格に準拠していませんが、IPXは常に最初の2オクテットがFFであるため(IEEE 802.2 LLCでは理論的には可能ですが、極めてまれです)、実際には、このパターンによって混乱した初期のDECnetの一部を除いて、他のイーサネット実装とワイヤ上で共存することが一般的です。
Novell NetWare は、1990 年代半ばまでこのフレーム タイプをデフォルトで使用していました。当時 NetWare は非常に普及していましたが、IP は普及していなかったため、ある時点で世界の Ethernet トラフィックの大部分は、IPX を伝送する生の 802.3 上で動作していました。NetWare 4.10 以降、NetWare は IPX を使用する場合、デフォルトで IEEE 802.2 with LLC (NetWare フレーム タイプ Ethernet_802.2) を使用します。[ 11 ]
OSIスタック向けに設計されたプロトコルなど、一部のプロトコルは、コネクション指向型とコネクションレス型の両方のネットワークサービスを提供するIEEE 802.2 LLCカプセル化の上で直接動作します。
IEEE 802.2 LLCカプセル化は、現在、一般的なネットワークでは広く使用されていません。ただし、 NetWare over IPへの移行が完了していない大規模な企業向けNetWareシステムでは例外的に使用されています。過去には、多くの企業ネットワークで、イーサネットとトークンリングまたはFDDIネットワーク間の透過的な変換ブリッジをサポートするためにIEEE 802.2が使用されていました。
IPv4 トラフィックを IEEE 802.2 LLC SAP/SNAP フレームにカプセル化するためのインターネット標準が存在します。 [ 12 ]これは、FDDI、トークンリング、IEEE 802.11 ( 5.9 GHz 帯域を除く。5.9 GHz 帯域では EtherType を使用) [ 13 ]、およびその他のIEEE 802 LAN で使用されていますが、イーサネットで実装されることはほとんどありません。IPv6 も IEEE 802.2 LLC SAP/SNAP を使用してイーサネット経由で送信できますが、これもほとんど使用されていません。
802.2 LLCヘッダーを調べることで、その後にSNAPヘッダーが続くかどうかを判断できます。LLCヘッダーには、 OSI用語でサービスアクセスポイント(SAP)と呼ばれる2つの8ビットアドレスフィールドが含まれています。送信元SAPと宛先SAPの両方が0xAAに設定されている場合、LLCヘッダーの後にはSNAPヘッダーが続きます。SNAPヘッダーを使用すると、すべてのIEEE 802プロトコルでEtherType値を使用できるほか、プライベートプロトコルID空間もサポートできます。
IEEE 802.3x-1997では、MACアドレスの後の16ビットフィールドを長さフィールドまたはタイプフィールドとして使用することを明示的に許可するように、IEEEイーサネット規格が変更されました。
Ethernet 上の AppleTalk v2 プロトコル スイート (「EtherTalk 」 ) は、 IEEE 802.2 LLC + SNAP カプセル化を使用します。
イーサネットのプロトコルオーバーヘッドは、パーセンテージ(IPGを含むパケットサイズ)として計算できます。
イーサネットのプロトコル効率を計算することができます
最大の効率は、許容される最大積載量で達成され、それは次のとおりです。
タグなしフレームの場合、パケットサイズは最大1500オクテットのペイロード + 8オクテットのプリアンブル + 14オクテットのヘッダー + 4オクテットのトレーラー + 12オクテットに対応する最小パケット間ギャップ = 1538オクテットです。最大効率は次のとおりです。
802.1Q VLANタギングを使用する場合。
スループットは効率から計算できます
物理層のネットビットレート(ワイヤビットレート)はイーサネット物理層規格によって異なり、10 Mbit/s、100 Mbit/s、1 Gbit/s 、または10 Gbit/sとなる場合があります。したがって、100BASE-TXイーサネットの最大スループットは、802.1Qを使用しない場合は97.53 Mbit/s、802.1Qを使用する場合は97.28 Mbit/sとなります。
チャネル利用率は、プロトコル効率と混同されがちな概念です。これは、送信されるデータの性質(ペイロードかオーバーヘッドか)を考慮せず、チャネルの使用のみを考慮します。物理層では、リンクチャネルと機器はデータフレームと制御フレームの違いを認識しません。チャネル利用率は次のように計算できます。
合計時間には、チャネルを往復する時間、ホスト側での処理時間、データと確認応答の送信時間が含まれます。データ送信時間には、データと確認応答の両方が含まれます。
ランツフレームとは、IEEE 802.3 の最小長である 64 オクテットよりも短いイーサネットフレームのことです。ランツフレームは、衝突によって発生することが最も一般的ですが、その他の原因としては、ネットワークカードの不具合、バッファアンダーラン、デュプレックスの不一致、ソフトウェアの問題などが考えられます。[ 14 ]
オペコードは上位オクテットから順に送信されます。各オクテット内では、ビットは最下位ビットから順に送信されます。[...] FCSを除くMACフレームの各オクテットは、最下位ビットから順に送信されます。