イーサネットフレーム

イーサネットパケット。SFD(開始フレームデリミタ)はパケットプリアンブルの終了を示す。その直後に、宛先MACアドレスで始まるイーサネットフレームが続く。[1]

コンピュータネットワークにおいてイーサネットフレームはデータリンク層の プロトコルデータユニットあり、基盤となるイーサネット物理層のトランスポートメカニズムを使用します。言い換えれば、イーサネットリンク上のデータユニットは、そのペイロードとしてイーサネットフレームを転送します。[2]

イーサネットフレームの先頭には、プリアンブルと開始フレームデリミタ(SFD)が配置されます。これらはどちらも物理層におけるイーサネットパケットの一部です。各イーサネットフレームはイーサネットヘッダーで始まり、その最初の2つのフィールドには宛先MACアドレスと送信元MACアドレスが含まれます。フレームの中央部分はペイロードデータで、フレームに含まれる他のプロトコル(インターネットプロトコルなど)のヘッダーも含まれます。フレームはフレームチェックシーケンス(FCS)で終わります。FCSは、転送中のデータ破損を検出するために使用される32ビットの巡回冗長検査です。

構造

回線上のデータパケットとそのペイロードであるフレームは、バイナリデータで構成されます。イーサネットは、最上位オクテット(バイト)からデータを送信します。ただし、各オクテット内では、最下位ビットから送信します。[a]

イーサネットフレームの内部構造はIEEE 802.3で規定されています。[2]以下の表は、ペイロードサイズが最大1500オクテットのMTUの場合の、送信時の完全なイーサネットパケットと内部のフレームを示しています。 [b]ギガビットイーサネットやその他の高速イーサネットの派生型の一部の実装では、ジャンボフレームと呼ばれるより大きなフレームをサポートしています。

802.3 イーサネットパケットとフレーム構造
前文開始フレーム区切り文字(SFD)MAC宛先MACソース802.1Qタグ(オプション)イーサタイプイーサネットII)または長さ(IEEE 802.3ペイロードフレームチェックシーケンス(32ビットCRCパケット間ギャップ(IPG)
長さ(オクテット7166(4)242–1500 [c]412
レイヤー2イーサネットフレーム(フレームの一部ではありません)← 64~1522オクテット →(フレームの一部ではありません)
レイヤー1イーサネットパケットとIPG← 72~1530オクテット →← 12オクテット →

オプションの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 (メディア独立インターフェース)ファミリ(GMIIRGMIISGMIIXGMIIなど)のバスを使用します。プリアンブルとSFDの表現は、バス幅によって異なります。

プリアンブルとSFDのビット、10進数、バイト、ニブルでの表現
表現56ビット(7バイト)のプリアンブルSFDバイト
左から右に送信される符号化されていないオンザワイヤビットパターン(大きなシンボルの代わりにシリアルビットを送信するイーサネットバリアントで使用される[1] :セクション4.2.5および3.2.2 1010101010101010101010101010101010101010101010101010101010101011
イーサネットLSb優先順序における10進数[1] :セクション3.2.2、3.3、および4.2.6 85858585858585213
8ビット幅バスの16進LSBファーストバイト

ギガビット イーサネットトランシーバー用のGMII バス)

0x550x550x550x550x550x550x550xD5
4ビット幅バス(ファストイーサネットの場合はMIIバスギガビットトランシーバーの場合はRGMII )の16進LSbファーストニブル0x50x50x50x50x50x50x50x50x50x50x50x50x50x50x50xD

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(多項式= 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となります。

フレームの終了 – 物理層

フレームの終了通常、物理層におけるデータストリーム終了シンボル、または搬送波信号の消失によって示されます。例えば10BASE-Tでは、受信局は搬送波の消失によって送信フレームの終了を検出します。以降の物理層では、特にフレーム間で搬送波が継続的に送信される場合、曖昧さを回避するために明示的なデータ終了シンボルまたはストリーム終了シンボルまたはシーケンスが使用されます。例えば、ギガビットイーサネットの8b/10b符号化方式では、フレームの送信前後に特別なシンボルが送信されます。[6] [7]

パケット間ギャップ – 物理層

パケット間ギャップ(IPG)は、パケット間のアイドル時間です。パケットが送信された後、送信機は次のパケットを送信する前に、少なくとも96ビット(12オクテット)のアイドルラインステートを送信する必要があります。

種類

イーサネットフレームの差別化
フレームタイプエーテルタイプまたは長さペイロード開始2バイト
イーサネット II≥ 1536どれでも
Novell 生の IEEE 802.3≤ 15000xFFFF
IEEE 802.2 LLC≤ 1500他の
IEEE 802.2 スナップ≤ 15000xAAAA

イーサネット フレームにはいくつかの種類があります。

異なるフレームタイプはそれぞれ異なるフォーマットと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とも呼ばれ設計における主要な参加者であるDECIntelXeroxにちなんで名付けられました[8] )は、 Ethernetフレーム内の2オクテットのEtherTypeフィールドを定義します。このフィールドの先頭には宛先MACアドレスと送信元MACアドレスが続き、フレームデータによってカプセル化されている上位層プロトコルを識別します。特に、EtherType値0x0800はフレームにIPv4データグラムが含まれていることを示し、0x0806はARPデータグラム、0x86DDはIPv6データグラムであることを示します。詳細については 、 EtherType § 値を参照してください。

最も一般的なイーサネットフレームフォーマット、タイプII

この業界で開発された規格が正式なIEEE標準化プロセスを経るにつれ、新しい802.3規格ではEtherTypeフィールドが(データ)長さフィールドに変更されました。[h]受信者は依然としてフレームの解釈方法を知る必要があるため、規格では長さの後にIEEE 802.2ヘッダーを追加し、タイプを指定することが義務付けられました。数年後、802.3x-1997規格とそれ以降の802.3規格では、両方のタイプのフレーミングが正式に承認されました。Ethernet IIフレーミングは、そのシンプルさと低いオーバーヘッドにより、イーサネットLANで最も一般的に使用されています。

Ethernet IIフレーミングを使用するフレームと、オリジナルバージョンの802.3フレーミングを使用するフレームを同じEthernetセグメントで使用できるようにするためには、EtherType値は1536(0x0600)以上である必要があります。この値が選択されたのは、Ethernet 802.3フレームのペイロードフィールドの最大長が1500オクテット(0x05DC)であるためです。したがって、フィールドの値が1536以上の場合、フレームはEthernet IIフレームであり、そのフィールドはタイプフィールドである必要があります。[9] 1500以下の場合、フレームはIEEE 802.3フレームであり、そのフィールドは長さフィールドである必要があります。1500から1536までの値は未定義です。[10]この規則により、ソフトウェアはフレームがイーサネットIIフレームであるかIEEE 802.3フレームであるかを判断できるようになり、同じ物理媒体上で両方の規格を共存させることができます。

Novell 生の IEEE 802.3

Novellの802.3フレームフォーマットは、初期のIEEE 802.3の成果に基づいていました。Novellはこれを出発点として、Ethernet上で独自のIPXネットワークプロトコルを初めて実装しました。LLCヘッダーは使用せず、IPXパケットを長さフィールドの直後から開始しました。これはIEEE 802.3規格には準拠していませんが、IPXの最初の2オクテットは常にFFであるため(IEEE 802.2 LLCではこのパターンは理論的には可能ですが、極めて稀です)、実際には他のEthernet実装と共存することが一般的です。ただし、初期のDECnetの一部は、この仕様によって混乱を招きました。

Novell NetWareは1990年代半ばまでこのフレームタイプをデフォルトで使用していました。当時NetWareは非常に普及していましたが、IPはまだ普及していませんでした。そのため、ある時点では世界中のイーサネットトラフィックの大部分がIPXを伝送する802.3規格で伝送されていました。NetWare 4.10以降、NetWareはIPXを使用する際にLLC付きIEEE 802.2(NetWareフレームタイプ:Ethernet_802.2)をデフォルトとしています。[11]

IEEE 802.2 LLC

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 ( 5.9GHz帯ではEtherTypeを使用)[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ヘッダーにより、EtherType値をすべてのIEEE 802プロトコルで使用できるようになり、プライベートプロトコル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/s100 Mbit/s1 Gbit/s 、または10 Gbit/sのいずれかとなります。したがって、 100BASE-TXイーサネットの最大スループットは、802.1Qを使用しない場合は97.53 Mbit/s、 802.1Qを使用する場合は97.28 Mbit/sとなります。

チャネル利用率は、プロトコル効率と混同されやすい概念です。チャネル利用率は、伝送されるデータの性質(ペイロードかオーバーヘッドか)を無視し、チャネルの使用のみを考慮します。物理層では、リンクチャネルと機器はデータフレームと制御フレームの違いを認識しません。チャネル利用率は次のように計算できます。

合計時間は、チャネルを介した往復時間、ホストでの処理時間、そしてデータと確認応答の送信時間を考慮した時間です。データ送信時間には、データと確認応答が含まれます。

ラントフレーム

ラントフレームとは、IEEE 802.3の最小長である64オクテット未満のイーサネットフレームです。ラントフレームは、衝突によって最も頻繁に発生しますが、ネットワークカードの故障バッファアンダーランデュプレックスの不一致、ソフトウェアの問題なども原因として考えられます。[14]

注記

  1. ^ フレームチェックシーケンス(FCS)は異なるビット順序を使用します。[3]
  2. ^ プリアンブルとフレーム開始デリミタ内のビットパターンはビット文字列として記述され、最初のビットが左側に送信されます(イーサネットでは最下位ビットから送信されるオクテット値としてではなく)。この表記法はIEEE 802.3規格で使用されている表記法と一致しています。
  3. ^ 802.1Qタグが存在する場合、ペイロードは42オクテットまで可能です。タグがない場合は、最小46オクテットです。
  4. ^ プリアンブルと開始フレームデリミタは、パケットスニファーソフトウェアでは表示されません。これらのビットは、OSIレイヤ1でネットワークインターフェースコントローラ(NIC)によって削除された後、 OSIレイヤ2に渡され、パケットスニファーがデータを収集する場所となるためです。プリアンブルと開始フレームデリミタをキャプチャして表示できるレイヤ2スニファーもありますが、高価であり、主に物理的な接続に関連する問題の検出に使用されます。
  5. ^ 最小ペイロード サイズは、イーサネット LAN アーキテクチャでの衝突検出に使用される 512 ビットのスロット時間によって決まります。
  6. ^ 802.1Qが存在する場合、42オクテットと46オクテットの最小値の両方が有効です。[4]
  7. ^ バージョン 1 イーサネット フレームは初期のイーサネット プロトタイプに使用され、8 ビットの MAC アドレスを特徴としていましたが、商用化されることはありませんでした。
  8. ^ オリジナルのイーサネット フレームは、明示的な長さのカウントではなく、フレームを囲むフレーミングによって長さを定義します。

参考文献

  1. ^ abcde 802.3-2018 – イーサネットの IEEE 標準IEEE。 2018 年 6 月 14 日。土井:10.1109/IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4
  2. ^ ab "3.1.1 パケットフォーマット". 802.3-2018 – IEEE Ethernet標準. IEEE . 2018年6月14日. doi :10.1109/IEEESTD.2018.8457469. ISBN 978-1-5044-5090-4
  3. ^ 802.3-2018 – IEEEイーサネット標準。IEEE 。2018年6月14日セクション3.3および付録31A。doi :10.1109/ IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4オペコードは上位オクテットから順に送信されます。各オクテット内では、ビットは最下位ビットから順に送信されます。[...] MACフレームの各オクテットは、FCSを除き、最下位ビットから順に送信されます
  4. ^ 「付録G」。IEEE標準ローカルエリアネットワークおよびメトロポリタンエリアネットワーク - メディアアクセス制御(MAC)ブリッジおよび仮想ブリッジローカルエリアネットワーク。doi : 10.1109/IEEESTD.2011.6009146。ISBN 978-0-7381-6708-4
  5. ^ 「CRCルーチンの仕様 V4.5.0 R4.1 Rev 3」(PDF) . AUTOSAR . p. 24. 2020年6月11日時点のオリジナル(PDF)からアーカイブ。 2020年1月30日閲覧
  6. ^ Charles E. Spurgeon (2000年2月). Ethernet: The Definitive Guide . O'Reilly. pp. 41, 47. ISBN 9780596552824. 2014年6月30日閲覧
  7. ^ "40.1.3.1 物理コーディングサブレイヤー(PCS)". 802.3-2018 – IEEE Ethernet標準規格. IEEE . 2018年6月14日. doi :10.1109/IEEESTD.2018.8457469. ISBN 978-1-5044-5090-4
  8. ^ ドリュー・ヘイウッド、ズバイル・アフマド (2001). 『ドリュー・ヘイウッドのWindows 2000ネットワークサービス』 サムズ社 p. 53. ISBN 978-0-672-31741-5
  9. ^ IEEEコンピュータ協会LAN MAN標準化委員会(1997年3月20日)。IEEE Std 802.3x-1997およびIEEE Std 802.3y-1997。米国電気電子学会(The Institute of Electrical and Electronics Engineers, Inc.)pp.  28– 31。
  10. ^ 「3.2.6 長さ/タイプフィールド」。802.3-2018 – IEEE Ethernet標準。2018年6月14日。doi : 10.1109/ IEEESTD.2018.8457469。ISBN 978-1-5044-5090-4
  11. ^ Don Provan (1993年9月17日). 「イーサネットフレーミング」.ニュースグループ: comp.sys.novell. Usenet:  [email protected].(HTML 形式バージョンはWayback Machineで 2015 年 4 月 18 日にアーカイブされています) — Novell の Don Provan による一連の古典的な Usenet 投稿は、多数の FAQ に掲載されており、Novell フレーム タイプの使用に関する決定的な回答であると広く考えられています。
  12. ^ IEEE 802ネットワークにおけるIPデータグラムの伝送に関する標準。IETFネットワークワーキンググループ。1988年2月。doi : 10.17487 / RFC1042。RFC 1042
  13. ^ 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.
  14. ^ 「イーサネットのトラブルシューティング」. Cisco Systems . 2016年8月13日閲覧

さらに読む

「https://en.wikipedia.org/w/index.php?title=Ethernet_frame&oldid=1320443125#Ethernet_II」から取得