
コンピュータネットワークにおいて、イーサネットフレームはデータリンク層 プロトコルデータユニットであり、基礎となるイーサネット物理層トランスポートメカニズムを使用します。言い換えれば、イーサネットリンク上のデータユニットは、そのペイロードとしてイーサネットフレームを転送します。[2]
イーサネットフレームの前には、プリアンブルと開始フレーム デリミタ (SFD) があり、これらは両方とも物理層のイーサネット パケットの一部です。各イーサネット フレームは、最初の 2 つのフィールドに宛先 MAC アドレスと送信元MAC アドレスを含むイーサネット ヘッダーで始まります。フレームの中央部分は、フレームで伝送される他のプロトコル (インターネット プロトコルなど) のヘッダーを含むペイロード データです。フレームは、転送中のデータ破損を検出するために使用される 32 ビットの巡回冗長検査であるフレーム チェック シーケンス(FCS) で終わります。
構造
回線上のデータ パケットとそのペイロードであるフレームは、バイナリ データで構成されます。イーサネットは、最上位オクテット(バイト) からデータを送信します。ただし、各オクテット内では、最下位ビットが最初に送信されます。[a]
イーサネットフレームの内部構造はIEEE 802.3で規定されています。[2]以下の表は、ペイロードサイズが最大1500オクテットのMTUの場合、送信される完全なイーサネットパケットと内部のフレームを示しています。[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
物理層トランシーバー回路(略して PHY) は、イーサネット MAC を物理メディアに接続するために必要です。PHY と MAC 間の接続は物理メディアとは独立しており、メディア独立インターフェイス ファミリ ( MII、GMII、RGMII、SGMII、XGMII ) のバスを使用します。プリアンブルと SFD の表現は、バスの幅によって異なります。
SFD の直後には、イーサネット フレームの最初のフィールドである 宛先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 オクテットは、タグ プロトコルIDエンティファイア(TPID) と呼ばれ、フレームが 802.1Q または 802.1ad のタグ付きであることを示す EtherType フィールドとしても機能します。802.1Q は 0x8100 の TPID を使用します。802.1ad は 0x88a8 の TPID を使用します。
ペイロード
ペイロードは可変長フィールドです。最小サイズは、64 オクテット (バイト) の最小フレーム送信要件によって決まります。[e]ヘッダーと FCS を考慮すると、802.1Q タグが存在する場合の最小ペイロードは 42 オクテット[f]、存在しない場合は 46 オクテットです。実際のペイロードが最小値より小さい場合は、それに応じてパディング オクテットが追加されます。IEEE 標準では、最大ペイロードを 1500 オクテットに指定しています。非標準のジャンボ フレームを使用すると、それをサポートするように構築されたネットワークでより大きなペイロードが可能になります。
フレームチェックシーケンス
フレームチェック シーケンス(FCS) は、受信側で受信されたフレーム全体内の破損したデータを検出できる 4 オクテットの巡回冗長検査(CRC) です。標準に従って、FCS 値は、保護された MAC フレーム フィールド (送信元アドレスと宛先アドレス、長さ/タイプ フィールド、MAC クライアント データ、パディング (つまり、FCS 以外のすべてのフィールド)) の関数として計算されます。
規格によれば、この計算は左シフトCRC-32(多項式= 0x4C11DB7、初期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 となります。
フレームの終了 – 物理層
フレームの終了は通常、物理層のデータストリーム終了シンボルまたはキャリア信号の損失によって示されます。10BASE -Tがその例で、受信局はキャリアの損失によって送信フレームの終了を検出します。後の物理層では、特にフレーム間でキャリアが継続的に送信される場合に、あいまいさを避けるために明示的なデータ終了またはストリーム終了シンボルまたはシーケンスを使用します。例としては、フレームが送信される前と後に送信される特別なシンボルを使用する8b/10bエンコード方式のギガビットイーサネットがあります。 [6] [7]
パケット間ギャップ – 物理層
パケット間ギャップ(IPG) は、パケット間のアイドル時間です。パケットが送信された後、送信機は次のパケットを送信する前に、最低 96 ビット (12 オクテット) のアイドル ライン状態を送信する必要があります。
種類
イーサネット フレームにはいくつかの種類があります。
- イーサネット II フレーム、またはイーサネット バージョン 2、[g]または DIX フレームは、インターネット プロトコルによって直接使用されることが多いため、現在使用されている最も一般的なタイプです。
- Novell生のIEEE 802.3非標準バリエーション フレーム
- IEEE 802.2 論理リンク制御(LLC) フレーム
- IEEE 802.2 サブネットワーク アクセス プロトコル(SNAP) フレーム
異なるフレーム タイプはフォーマットとMTU値が異なりますが、同じ物理メディア上で共存できます。フレーム タイプ間の区別は、右側の表に基づいて行うことができます。
さらに、4 つのイーサネット フレーム タイプすべてに、オプションで IEEE 802.1Q タグを含めることができ、どの VLAN に属しているか、およびその優先度 (サービス品質) を識別できます。このカプセル化はIEEE 802.3ac仕様で定義されており、最大フレームが 4 オクテット増加します。
IEEE 802.1Q タグは、存在する場合、送信元アドレスと EtherType または長さフィールドの間に配置されます。タグの最初の 2 オクテットは、タグ プロトコル識別子 (TPID) 値 0x8100 です。これは、タグなしフレームの EtherType/長さフィールドと同じ場所に配置されます。したがって、EtherType 値 0x8100 はフレームがタグ付けされていることを意味し、実際の EtherType/長さは Q タグの後に配置されます。TPID の後には、タグ制御情報 (TCI) (IEEE 802.1p 優先度 (サービス品質) と VLAN ID) を含む 2 オクテットが続きます。Q タグの後には、上記のいずれかのタイプを使用して、フレームの残りの部分が続きます。
イーサネット II
Ethernet II フレーミング( DIX Ethernetとも呼ばれ、設計における主要な参加者であるDEC、Intel、Xeroxにちなんで名付けられました[8] ) は、 Ethernetフレーム内の2 オクテットのEtherTypeフィールドを定義します。このフィールドは、送信元と宛先の MAC アドレスに続き、フレーム データによってカプセル化されている上位層プロトコルを識別します。特に注目すべきは、EtherType 値 0x0800 はフレームにIPv4データグラムが含まれていることを示し、0x0806 はARPデータグラム、0x86DD はIPv6データグラムが含まれていることを示します。詳細については、 EtherType § 値を参照してください。

この業界で開発された標準が正式なIEEE標準化プロセスを経るにつれて、EtherType フィールドは新しい 802.3 標準の (データ) 長さフィールドに変更されました。[h]受信者は依然としてフレームの解釈方法を知る必要があるため、標準では長さの後にIEEE 802.2ヘッダーが続き、タイプを指定することが求められました。何年も経ってから、802.3x-1997 標準とそれ以降のバージョンの 802.3 標準では、両方のタイプのフレーミングが正式に承認されました。Ethernet II フレーミングは、そのシンプルさと低いオーバーヘッドのため、Ethernet ローカル エリア ネットワークで最も一般的です。
イーサネット II フレーミングを使用するフレームと、元のバージョンの 802.3 フレーミングを使用するフレームを同じイーサネット セグメントで使用できるようにするには、EtherType 値が 1536 (0x0600) 以上である必要があります。この値が選択されたのは、イーサネット 802.3 フレームのペイロード フィールドの最大長が 1500 オクテット (0x05DC) であるためです。したがって、フィールドの値が 1536 以上の場合、フレームはイーサネット II フレームであり、そのフィールドはタイプ フィールドである必要があります。[9] 1500 以下の場合、フレームは IEEE 802.3 フレームであり、そのフィールドは長さフィールドである必要があります。1500 から 1536 までの値は未定義です。[10]この規則により、ソフトウェアはフレームがイーサネットIIフレームであるかIEEE 802.3フレームであるかを判断できるようになり、同じ物理媒体上で両方の規格を共存させることができます。
Novell 生の 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 は90 年代半ばまでこのフレーム タイプをデフォルトで使用していましたが、当時は NetWare が非常に普及していたのに対し IP は普及していなかったため、ある時点では世界のイーサネット トラフィックのほとんどが IPX を運ぶ「生の」802.3 で実行されていました。NetWare 4.10 以降、NetWare は IPX を使用する場合、LLC 付き IEEE 802.2 (NetWare フレーム タイプ Ethernet_802.2) をデフォルトとしています。[11]
IEEE 802.2 の
OSI スタック用に設計されたプロトコルなど、一部のプロトコルは、コネクション指向とコネクションレスの両方のネットワーク サービスを提供する IEEE 802.2 LLC カプセル化の上で直接動作します。
IEEE 802.2 LLC カプセル化は、まだ NetWare over IPに移行していない大企業のNetWareインストールを除き、現在一般的なネットワークでは広く使用されていません。過去には、多くの企業ネットワークが IEEE 802.2 を使用して、イーサネットとトークン リングまたはFDDIネットワーク間の透過的な変換ブリッジをサポートしていました。
IPv4トラフィックをIEEE 802.2 LLC SAP/SNAPフレームにカプセル化するインターネット標準が存在します。 [12]これは、FDDI、トークンリング、IEEE 802.11 (EtherTypeを使用する5.9GHz帯を除く)[13]およびその他のIEEE 802 LANでは使用されていますが、イーサネットではほとんど実装されていません。 IPv6もIEEE 802.2 LLC SAP/SNAPを使用してイーサネット経由で送信できますが、これもほとんど使用されていません。
IEEE 802.2 スナップ
802.2 LLC ヘッダーを調べると、その後に SNAP ヘッダーが続くかどうかを判断できます。LLC ヘッダーには、 OSI 用語でサービス アクセス ポイント(SAP) と呼ばれる 2 つの 8 ビット アドレス フィールドが含まれています。送信元と送信先の両方の SAP が値 0xAA に設定されている場合、LLC ヘッダーの後には SNAP ヘッダーが続きます。SNAP ヘッダーにより、すべての IEEE 802 プロトコルで EtherType 値を使用でき、プライベート プロトコル ID スペースもサポートされます。
IEEE 802.3x-1997 では、IEEE イーサネット標準が変更され、MAC アドレスの後の 16 ビット フィールドを長さフィールドまたはタイプ フィールドとして使用することが明示的に許可されました。
イーサネット上の 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)は異なるビット順序を使用します。[3]
- ^ プリアンブルとフレーム区切り文字の開始のビットパターンは、ビット文字列として記述され、最初のビットが左側に送信されます(イーサネットでは最下位ビットが最初に送信されるオクテット値としてではありません)。この表記は、IEEE 802.3 標準で使用されている表記と一致します。
- ^ 802.1Q タグが存在する場合、ペイロードは 42 オクテットになります。タグがない場合は、最小 46 オクテットになります。
- ^プリアンブルと開始フレーム区切り文字は、 パケット スニファーソフトウェアでは表示されません。これは、これらのビットが、パケット スニファーがデータを収集するOSI レイヤー 2に渡される前に、ネットワーク インターフェイス コントローラー(NIC) によって OSI レイヤー 1 で削除されるためです。プリアンブルと開始フレーム区切り文字をキャプチャして表示できるレイヤー 2 スニファーもありますが、高価であり、主に物理的な接続に関連する問題を検出するために使用されます。
- ^ 最小ペイロード サイズは、イーサネット LAN アーキテクチャでの衝突検出に使用される 512 ビットのスロット時間によって決まります。
- ^ 802.1Qが存在する場合、42オクテットと46オクテットの最小値の両方が有効です。[4]
- ^ バージョン 1 イーサネット フレームは初期のイーサネット プロトタイプに使用され、8 ビットの MAC アドレスを特徴としていましたが、商用化されることはありませんでした。
- ^ オリジナルのイーサネット フレームは、明示的な長さのカウントではなく、フレームを囲むフレーミングによって長さを定義します。
参考文献
- ^ abcde 802.3-2018 – イーサネットの IEEE標準。IEEE 。2018年6月14日。doi : 10.1109 /IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4。
- ^ ab "3.1.1 パケットフォーマット" 。802.3-2018 – イーサネットのIEEE標準。IEEE 。2018年6月14日。doi : 10.1109/ IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4。
- ^ 802.3-2018 – IEEEイーサネット標準。IEEE。2018年 6 月14日。セクション 3.3 および付録 31A。doi :10.1109/ IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4オペコード
は上位オクテットから先に送信されます。各オクテット内では、ビットは最下位ビットから先に送信されます。[...] FCS を除く MAC フレームの各オクテットは、最下位ビットから先に送信されます。
- ^ 「付録 G」。ローカルおよびメトロポリタン エリア ネットワークの IEEE標準- メディア アクセス制御 (MAC) ブリッジおよび仮想ブリッジ ローカル エリア ネットワーク。doi :10.1109 / IEEESTD.2011.6009146。ISBN 978-0-7381-6708-4。
- ^ 「CRCルーチンの仕様 V4.5.0 R4.1 Rev 3」(PDF)。AUTOSAR。p . 24。 2020年6月11日時点のオリジナル(PDF)からアーカイブ。 2020年1月30日閲覧。
- ^ Charles E. Spurgeon (2000 年 2 月)。イーサネット: 決定版ガイド。O'Reilly。pp. 41、47。ISBN 9780596552824. 2014年6月30日閲覧。
- ^ 「 40.1.3.1 物理コーディングサブレイヤー (PCS)」。 802.3-2018 – イーサネットのIEEE標準。IEEE。2018年 6 月 14 日。doi : 10.1109/IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4。
- ^ Drew Heywood、Zubair Ahmad (2001)。Drew Heywood の Windows 2000 ネットワーク サービス。Sams。p. 53。ISBN 978-0-672-31741-5。
- ^ IEEEコンピュータ協会のLAN MAN標準化委員会(1997年3月20日)。IEEE Std 802.3x-1997およびIEEE Std 802.3y-1997。米国電気電子学会、pp. 28~31。
- ^ 「3.2.6 長さ/タイプフィールド」。802.3-2018 – イーサネットのIEEE標準。2018年6月14日。doi : 10.1109/ IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4。
- ^ Don Provan (1993 年 9 月 17 日)。「イーサネット フレーミング」。ニュースグループ: comp.sys.novell。Usenet : 1993Sep17.190654.13335@novell.com。(HTML 形式バージョンはWayback Machineで 2015 年 4 月 18 日にアーカイブされています) — Novell の Don Provan による一連の古典的な Usenet 投稿は、多数の FAQ に掲載されており、Novell フレーム タイプの使用に関する決定的な回答であると広く考えられています。
- ^ IEEE 802 ネットワーク 上での IP データグラムの伝送に関する標準。IETF のネットワーク ワーキング グループ。1988 年 2 月。doi : 10.17487 /RFC1042。RFC 1042。
- ^ Computer Society, IEEE (2016). IEEE Std 802.11-2016: Part 11: Wireless LAN Medium Access Control IEEE (MAC) and Physical Layer (PHY) Specifications . New York, NY: IEEE. p. 249.
- ^ 「イーサネットのトラブルシューティング」。Cisco Systems 。 2016年8月13日閲覧。
さらに読む
-
イーサネットフレームの構築方法を説明するビデオ
-
イーサネットの最小フレーム長の説明
